diff --git a/apps/manacore/apps/web/package.json b/apps/manacore/apps/web/package.json index 2c4fecea6..f988a0043 100644 --- a/apps/manacore/apps/web/package.json +++ b/apps/manacore/apps/web/package.json @@ -42,7 +42,7 @@ "vitest": "^4.0.14" }, "dependencies": { - "@manacore/credit-operations": "workspace:^", + "@manacore/credits": "workspace:^", "@manacore/qr-export": "workspace:*", "@manacore/shared-auth": "workspace:*", "@manacore/shared-auth-ui": "workspace:*", diff --git a/packages/credit-operations/package.json b/packages/credit-operations/package.json deleted file mode 100644 index 22af8fcae..000000000 --- a/packages/credit-operations/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@manacore/credit-operations", - "version": "1.0.0", - "private": true, - "description": "Central credit operation definitions and costs for all Mana apps", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "scripts": { - "build": "tsc", - "dev": "tsc --watch", - "clean": "rm -rf dist", - "type-check": "tsc --noEmit" - }, - "devDependencies": { - "typescript": "^5.0.0" - }, - "files": [ - "dist" - ] -} diff --git a/packages/credit-operations/tsconfig.json b/packages/credit-operations/tsconfig.json deleted file mode 100644 index 08822bebd..000000000 --- a/packages/credit-operations/tsconfig.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "module": "commonjs", - "lib": ["ES2020"], - "declaration": true, - "strict": true, - "noImplicitAny": true, - "strictNullChecks": true, - "noImplicitThis": true, - "alwaysStrict": true, - "noUnusedLocals": false, - "noUnusedParameters": false, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": false, - "moduleResolution": "node", - "baseUrl": ".", - "esModuleInterop": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "outDir": "./dist", - "rootDir": "./src" - }, - "include": ["src/**/*"], - "exclude": ["node_modules", "dist"] -} diff --git a/packages/credits/package.json b/packages/credits/package.json new file mode 100644 index 000000000..11f9d1d36 --- /dev/null +++ b/packages/credits/package.json @@ -0,0 +1,27 @@ +{ + "name": "@manacore/credits", + "version": "1.0.0", + "private": true, + "description": "Unified credit package — operations, service, and UI components", + "type": "module", + "main": "./src/index.ts", + "types": "./src/index.ts", + "exports": { + ".": "./src/index.ts", + "./web": { + "svelte": "./src/web/index.ts", + "default": "./src/web/index.ts" + }, + "./mobile": "./src/mobile/index.ts" + }, + "scripts": { + "type-check": "tsc --noEmit" + }, + "devDependencies": { + "svelte": "^5.0.0", + "typescript": "^5.9.3" + }, + "peerDependencies": { + "svelte": "^5.0.0" + } +} diff --git a/packages/shared-credit-service/src/createCreditService.ts b/packages/credits/src/createCreditService.ts similarity index 98% rename from packages/shared-credit-service/src/createCreditService.ts rename to packages/credits/src/createCreditService.ts index 2047ac2e0..767406f4c 100644 --- a/packages/shared-credit-service/src/createCreditService.ts +++ b/packages/credits/src/createCreditService.ts @@ -6,7 +6,7 @@ * * @example * ```ts - * import { createCreditService } from '@manacore/shared-credit-service'; + * import { createCreditService } from './createCreditService'; * import { auth } from '$lib/stores/auth'; * * export const creditService = createCreditService({ @@ -29,8 +29,8 @@ import type { PricingResponse, CreditUpdateCallback, StandardOperationType, -} from './types'; -import { DEFAULT_OPERATION_PRICING } from './types'; +} from './service-types'; +import { DEFAULT_OPERATION_PRICING } from './service-types'; /** * Create a credit service instance diff --git a/packages/credits/src/index.ts b/packages/credits/src/index.ts new file mode 100644 index 000000000..1487a8fc4 --- /dev/null +++ b/packages/credits/src/index.ts @@ -0,0 +1,45 @@ +/** + * @manacore/credits — Unified credit package + * + * Consolidates credit-operations + shared-credit-service + shared-credit-ui. + * + * Usage: + * - Operations/costs: import { CreditOperationType, CREDIT_COSTS } from '@manacore/credits' + * - Service: import { createCreditService } from '@manacore/credits' + * - Web UI: import { CreditBalance } from '@manacore/credits/web' + * - Mobile UI: import { CreditBalance } from '@manacore/credits/mobile' + */ + +// === Operations (costs, types, metadata) === +export { + CreditOperationType, + CreditCategory, + CREDIT_COSTS, + OPERATION_METADATA, + FREE_OPERATIONS, + getCreditCost, + getOperationMetadata, + getOperationsForApp, + getOperationsByCategory, + calculateBulkCost, + isFreeOperation, + isMicroCreditOperation, + isAiOperation, + formatCreditCost, + getPricingTable, + isFreeAction, + type OperationMetadata, +} from './operations'; + +// === Service (client-side credit management) === +export { createCreditService, type CreditService } from './createCreditService'; +export type { + CreditServiceConfig, + CreditBalance, + CreditCheckResponse, + CreditConsumptionResponse, + PricingResponse, + CreditUpdateCallback, + StandardOperationType, +} from './service-types'; +export { DEFAULT_OPERATION_PRICING } from './service-types'; diff --git a/packages/shared-credit-ui/src/mobile/CreditBalance.tsx b/packages/credits/src/mobile/CreditBalance.tsx similarity index 98% rename from packages/shared-credit-ui/src/mobile/CreditBalance.tsx rename to packages/credits/src/mobile/CreditBalance.tsx index 1b6fd218b..30c9118bb 100644 --- a/packages/shared-credit-ui/src/mobile/CreditBalance.tsx +++ b/packages/credits/src/mobile/CreditBalance.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { View, Text, TouchableOpacity, ActivityIndicator, StyleSheet } from 'react-native'; -import { formatCreditCost } from '@manacore/credit-operations'; +import { formatCreditCost } from './operations'; interface CreditBalanceProps { /** Current credit balance */ diff --git a/packages/shared-credit-ui/src/mobile/CreditToast.tsx b/packages/credits/src/mobile/CreditToast.tsx similarity index 98% rename from packages/shared-credit-ui/src/mobile/CreditToast.tsx rename to packages/credits/src/mobile/CreditToast.tsx index 1e507f29a..feb7ac762 100644 --- a/packages/shared-credit-ui/src/mobile/CreditToast.tsx +++ b/packages/credits/src/mobile/CreditToast.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from 'react'; import { View, Text, TouchableOpacity, StyleSheet, Animated } from 'react-native'; -import { formatCreditCost } from '@manacore/credit-operations'; +import { formatCreditCost } from './operations'; interface CreditToastProps { /** The operation name or description */ diff --git a/packages/credits/src/mobile/index.ts b/packages/credits/src/mobile/index.ts new file mode 100644 index 000000000..a90fd38db --- /dev/null +++ b/packages/credits/src/mobile/index.ts @@ -0,0 +1,2 @@ +export { CreditBalance } from './CreditBalance'; +export { CreditToast } from './CreditToast'; diff --git a/packages/credit-operations/src/index.ts b/packages/credits/src/operations.ts similarity index 100% rename from packages/credit-operations/src/index.ts rename to packages/credits/src/operations.ts diff --git a/packages/shared-credit-service/src/types.ts b/packages/credits/src/service-types.ts similarity index 100% rename from packages/shared-credit-service/src/types.ts rename to packages/credits/src/service-types.ts diff --git a/packages/shared-credit-ui/src/web/CreditBalance.svelte b/packages/credits/src/web/CreditBalance.svelte similarity index 99% rename from packages/shared-credit-ui/src/web/CreditBalance.svelte rename to packages/credits/src/web/CreditBalance.svelte index abc5932e5..1f7762f9b 100644 --- a/packages/shared-credit-ui/src/web/CreditBalance.svelte +++ b/packages/credits/src/web/CreditBalance.svelte @@ -1,5 +1,5 @@