@proximafortedev/payxy-payment-gateway-core 1.0.0

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/README.md ADDED
@@ -0,0 +1,165 @@
1
+ # Payxy Payment Gateway Core
2
+
3
+ `payxy-payment-gateway-core` is a high-performance, multi-flavor React-based payment gateway designed to handle card, bank transfer, and USSD payments. It is architected for maximum flexibility, supporting both standalone deployment (via Docker) and runtime configuration as an NPM package.
4
+
5
+ ---
6
+
7
+ ## ๐Ÿš€ Key Features
8
+
9
+ - **Multi-Flavor Support**: Built-in configurations for `test`, `staging`, and `production` environments.
10
+ - **Dynamic Configuration**: Switch API and SignalR endpoints at runtime using the `Payxy` initialization class.
11
+ - **Real-time Updates**: Integrated with SignalR for live payment status tracking.
12
+ - **Modern Tech Stack**: Built with React 19, Vite, TypeScript, TanStack Query, and Zustand.
13
+ - **Surgical CSS**: Minimal overhead using Tailwind CSS and Vanilla CSS.
14
+ - **CI/CD Ready**: Fully integrated with GitHub Actions and Docker.
15
+
16
+ ---
17
+
18
+ ## ๐Ÿ›  Tech Stack
19
+
20
+ - **Framework**: React 19 (TypeScript)
21
+ - **Build Tool**: Vite 7
22
+ - **State Management**: Zustand
23
+ - **Data Fetching**: TanStack Query (React Query) v5
24
+ - **UI Components**: Ant Design (v5)
25
+ - **Real-time**: Microsoft SignalR
26
+ - **Styling**: Tailwind CSS 4 & Vanilla CSS
27
+ - **Testing**: Vitest & React Testing Library
28
+
29
+ ---
30
+
31
+ ## ๐Ÿ“ฆ Getting Started
32
+
33
+ ### Prerequisites
34
+
35
+ - Node.js (v22 or higher)
36
+ - npm (v10 or higher)
37
+
38
+ ### Installation
39
+
40
+ ```bash
41
+ # Clone the repository
42
+ git clone https://github.com/your-repo/payxy_checkout.git
43
+
44
+ # Navigate to the project directory
45
+ cd payxy_checkout
46
+
47
+ # Install dependencies
48
+ npm install --legacy-peer-deps
49
+ ```
50
+
51
+ ### Local Development
52
+
53
+ To start the development server:
54
+
55
+ ```bash
56
+ npm run dev
57
+ ```
58
+
59
+ The server will run on [https://localhost:7002](https://localhost:7002) with HTTPS enabled.
60
+
61
+ ---
62
+
63
+ ## ๐ŸŽจ Flavor Management
64
+
65
+ The project supports multiple "flavors" (environments). These can be used at build-time or runtime.
66
+
67
+ ### Build-time Flavors (Local/Standalone)
68
+
69
+ Use the following commands to build for specific environments:
70
+
71
+ - **Test Build**: `npm run build:test` (Uses `.env.test`)
72
+ - **Staging Build**: `npm run build:staging` (Uses `.env.staging`)
73
+ - **Production Build**: `npm run build:prod` (Uses `.env.production`)
74
+
75
+ ### Runtime Flavors (NPM Package Usage)
76
+
77
+ If you are using this as an NPM package, you can initialize the environment in your code:
78
+
79
+ ```javascript
80
+ import { Payxy } from "payxy-payment-gateway-core";
81
+
82
+ const payxy = new Payxy({
83
+ env: "test", // Options: 'test', 'staging', 'prod', 'development'
84
+ accessCode: "YOUR_PAYMENT_ACCESS_CODE",
85
+ onSuccess: (data) => console.log("Payment Successful:", data),
86
+ onError: (error) => console.error("Payment Failed:", error)
87
+ });
88
+
89
+ // Launch the payment process
90
+ payxy.init();
91
+ ```
92
+
93
+ ---
94
+
95
+ ## ๐Ÿณ Docker & CI/CD
96
+
97
+ ### Docker Deployment
98
+
99
+ The `Dockerfile` is optimized for multi-environment builds. It uses Nginx to serve the static artifacts.
100
+
101
+ **Build Command:**
102
+ ```bash
103
+ docker build \
104
+ --build-arg VITE_ENV=prod \
105
+ --build-arg VITE_API_BASE_URL_PROD=https://api.payxy.com \
106
+ --build-arg VITE_SIGNALR_HUB_URL_PROD=https://hub.payxy.com \
107
+ -t payxy-checkout:prod .
108
+ ```
109
+
110
+ ### GitHub Actions (CI/CD)
111
+
112
+ The workflow in `.github/workflows/main.yml` automatically builds and deploys the gateway based on branch pushes:
113
+ - **`staging` branch**: Deploys to the staging environment.
114
+ - **`prod` branch**: Deploys to the production environment.
115
+
116
+ **Required GitHub Secrets:**
117
+ - `TEST_VITE_API_BASE_URL`
118
+ - `STAGING_VITE_API_BASE_URL`
119
+ - `PROD_VITE_API_BASE_URL`
120
+ - `DOCKERHUB_USERNAME`
121
+ - `DOCKERHUB_TOKEN`
122
+
123
+ ---
124
+
125
+ ## ๐Ÿงช Testing
126
+
127
+ We use **Vitest** for unit and integration testing.
128
+
129
+ ```bash
130
+ # Run tests once
131
+ npm run test
132
+
133
+ # Run tests in watch mode
134
+ npm run test:watch
135
+
136
+ # Generate coverage report
137
+ npm run test:coverage
138
+ ```
139
+
140
+ ---
141
+
142
+ ## ๐Ÿ“„ Environment Variables
143
+
144
+ The project requires several environment variables for proper operation. Refer to `.env.example` for the full list:
145
+
146
+ - `VITE_API_BASE_URL`: Base API endpoint.
147
+ - `VITE_SIGNALR_HUB_URL`: SignalR Hub endpoint.
148
+ - `VITE_ENCRYPTION_KEY`: Secret key for payload encryption.
149
+ - `VITE_ENV`: The current environment mode.
150
+
151
+ ---
152
+
153
+ ## ๐Ÿค Contributing
154
+
155
+ 1. Fork the repository.
156
+ 2. Create your feature branch (`git checkout -b feature/AmazingFeature`).
157
+ 3. Commit your changes (`npm run format:fix` before committing).
158
+ 4. Push to the branch (`git push origin feature/AmazingFeature`).
159
+ 5. Open a Pull Request.
160
+
161
+ ---
162
+
163
+ ## โš–๏ธ License
164
+
165
+ Private - All rights reserved by Payxy.
@@ -0,0 +1,9 @@
1
+ <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <rect width="50" height="50" fill="url(#pattern0_4191_39409)"/>
3
+ <defs>
4
+ <pattern id="pattern0_4191_39409" patternContentUnits="objectBoundingBox" width="1" height="1">
5
+ <use xlink:href="#image0_4191_39409" transform="scale(0.00342466)"/>
6
+ </pattern>
7
+ <image id="image0_4191_39409" width="292" height="292" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
8
+ </defs>
9
+ </svg>
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1 @@
1
+ .ant-radio-wrapper{border-bottom:1px solid #00000010!important;padding-top:3rem;padding-bottom:2rem;width:100%!important}.ant-radio-wrapper:first-child{padding-top:0!important}.ant-radio-wrapper .ant-radio-checked .ant-radio-inner{border:5px solid #e1edff!important}.ant-radio-wrapper .ant-radio-inner:after{background-color:#0569ff!important}@media (width <= 767px){.ant-radio-wrapper{padding-top:1rem;padding-bottom:1rem}}.ant-tabs-tab{font-weight:300!important}