@jsdev_ninja/core 0.8.54 → 0.8.55

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.
Files changed (48) hide show
  1. package/dist/core.cjs.js +1 -1
  2. package/dist/core.cjs.js.map +1 -1
  3. package/dist/core.es.js +721 -950
  4. package/dist/core.es.js.map +1 -1
  5. package/dist/core.umd.js +1 -1
  6. package/dist/core.umd.js.map +1 -1
  7. package/dist/entities/Atoms.d.ts +0 -1
  8. package/dist/entities/Atoms.d.ts.map +1 -1
  9. package/dist/entities/Atoms.js +0 -2
  10. package/dist/entities/Company.d.ts +0 -32
  11. package/dist/entities/Company.d.ts.map +1 -1
  12. package/dist/entities/Company.js +0 -6
  13. package/dist/entities/Store.d.ts +0 -36
  14. package/dist/entities/Store.d.ts.map +1 -1
  15. package/dist/entities/Store.js +0 -11
  16. package/dist/entities/index.d.ts +0 -1
  17. package/dist/entities/index.d.ts.map +1 -1
  18. package/dist/entities/index.js +0 -1
  19. package/dist/firebase-api/app.d.ts +2 -0
  20. package/dist/firebase-api/app.d.ts.map +1 -0
  21. package/dist/firebase-api/app.js +16 -0
  22. package/dist/firebase-api/index.d.ts +6 -6
  23. package/dist/firebase-api/index.js +2 -2
  24. package/dist/index.d.ts +0 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +0 -1
  27. package/dist/tsconfig.app.tsbuildinfo +1 -1
  28. package/lib/entities/Atoms.ts +0 -3
  29. package/lib/entities/Company.ts +0 -6
  30. package/lib/entities/Store.ts +0 -14
  31. package/lib/entities/index.ts +0 -1
  32. package/lib/firebase-api/app.ts +18 -0
  33. package/lib/firebase-api/index.ts +2 -2
  34. package/lib/index.tsx +0 -1
  35. package/package.json +1 -1
  36. package/src/main.tsx +1 -3
  37. package/dist/entities/Payment.d.ts +0 -368
  38. package/dist/entities/Payment.d.ts.map +0 -1
  39. package/dist/entities/Payment.js +0 -108
  40. package/dist/hypPaymentService/index.d.ts +0 -33
  41. package/dist/hypPaymentService/index.d.ts.map +0 -1
  42. package/dist/hypPaymentService/index.js +0 -100
  43. package/lib/entities/Payment.ts +0 -133
  44. package/lib/hypPaymentService/index.ts +0 -139
  45. package/src/App.css +0 -42
  46. package/src/App.tsx +0 -35
  47. package/src/assets/react.svg +0 -1
  48. package/src/index.css +0 -68
@@ -1,133 +0,0 @@
1
- import { z } from "zod";
2
- import { hypBooleanSchema } from "./Atoms";
3
-
4
- // 600 - Checking a card number700 - Approved without charge800 - Postpone transaction - success handle ass error
5
-
6
- const textSchema = z.string().min(1);
7
- const numericTextSchema = z.string().regex(/^\d+$/, "Must be a numeric string");
8
-
9
- export const PayProtocolGeneralSchema = z.object({
10
- Masof: textSchema, // store masof number
11
- PassP: textSchema, // store masof password,
12
- KEY: textSchema.optional(), // hyp api key
13
-
14
- Amount: textSchema,
15
- Order: textSchema.optional(), // order id generated by store
16
-
17
- Tash: numericTextSchema, // Max number of payments that can be selected by the customer
18
- FixTash: hypBooleanSchema.optional(),
19
-
20
- // tashType: - Payment type optional NOT_IN_USE
21
- UTF8: hypBooleanSchema, // request is utf8
22
- UTF8out: hypBooleanSchema, // response is utf8
23
-
24
- MoreData: hypBooleanSchema.optional(), // extra data in response
25
- J5: hypBooleanSchema.optional(),
26
- });
27
-
28
- export const HypSoftTransactionRequestSchema = PayProtocolGeneralSchema.extend({
29
- action: z.literal("soft"),
30
- Info: textSchema, // text that will be displayed in transaction, report and the management system.
31
- CC: numericTextSchema, // token number
32
- Tmonth: textSchema, // MM
33
- Tyear: textSchema, // YYYY
34
- AuthNum: textSchema, // confirmation number
35
- cvv: z.string().optional(), // only if required
36
- UserId: textSchema,
37
- "inputObj.originalUid": textSchema,
38
- "inputObj.originalAmount": textSchema,
39
- "inputObj.authorizationCodeManpik": z.literal("7"),
40
- ClientName: textSchema,
41
- ClientLName: textSchema,
42
- Token: z.literal("True"),
43
- // CC2
44
- // Coin
45
- });
46
-
47
- export type THypSoftTransactionRequest = z.infer<typeof HypSoftTransactionRequestSchema>;
48
-
49
- export const HypTokenRequestSchema = z.object({
50
- action: z.literal("getToken"),
51
- allowFalse: z.literal("True"),
52
- Masof: textSchema, // store masof number
53
- PassP: textSchema, // store masof password,
54
- TransId: numericTextSchema,
55
- //todo api key is not required???
56
- });
57
- export type THypTokenRequest = z.infer<typeof HypTokenRequestSchema>;
58
-
59
- export const HypTokenResponseSchema = z.object({
60
- Id: numericTextSchema,
61
- Token: numericTextSchema,
62
- Tokef: numericTextSchema, // credit card validity date in the format YYMM
63
- CCode: numericTextSchema, //0 code is valid
64
- });
65
- export type THypTokenResponse = z.infer<typeof HypTokenResponseSchema>;
66
-
67
- export const PayProtocolResponseSchema = PayProtocolGeneralSchema.extend({
68
- Id: textSchema, // transaction Id in Hypay
69
- ACode: numericTextSchema, // confirmation code from credit card company
70
- CCode: z.string(), // todo,
71
- Sign: z.string(), //
72
- Fild1: z.string(), // client full name
73
- Fild2: z.string(), // client email
74
- Fild3: z.string(), // client phone number
75
-
76
- // if more data equal to True
77
- Bank: z.string().optional(),
78
- TransType: z.string().optional(),
79
- Payments: z.string().optional(), // Number of payments charged
80
- UserId: z.string().optional(),
81
- Brand: z.string().optional(),
82
- Issuer: z.string().optional(),
83
- L4digit: z.string().optional(),
84
- street: z.string().optional(),
85
- city: z.string().optional(),
86
- zip: z.string().optional(),
87
- cell: z.string().optional(),
88
- Coin: z.string().optional(),
89
- Tmonth: z.string().optional(), // MM format
90
- Tyear: z.string().optional(), // YYYY format
91
- Hesh: z.string().optional(), // invoice number (if invoice module is not active Hesh would get 0)
92
- UID: z.string().optional(), // UID unique value receive from response after successful transaction from request with action pay/soft
93
- spType: z.string().optional(),
94
- bincard: z.string().optional(),
95
- });
96
-
97
- // generate payment link
98
- export const HypPaymentLinkRequestSchema = PayProtocolGeneralSchema.extend({
99
- Masof: textSchema, // store masof number
100
- PassP: textSchema, // store masof password,
101
- KEY: textSchema, // hyp api key
102
- action: z.literal("APISign"),
103
- What: z.literal("SIGN"),
104
- Info: textSchema, // text that will be displayed in transaction, report and the management system.
105
- Sign: hypBooleanSchema, // Sign on sent parameters in answer
106
- UTF8: hypBooleanSchema, // request is utf8
107
- UTF8out: hypBooleanSchema, // response is utf8
108
- Tash: numericTextSchema, // Max number of payments that can be selected by the customer
109
- FixTash: hypBooleanSchema.optional(),
110
- sendemail: hypBooleanSchema.optional(),
111
-
112
- // EzCount Invoice parameters - Pay Protocol
113
- SendHesh: hypBooleanSchema.optional(), // send invoice in email
114
- heshDesc: textSchema, // [0~Item 1~1~8][0~Item 2~2~1]
115
- Pritim: hypBooleanSchema.optional(), // The invoice description contains items
116
-
117
- // client data
118
- UserId: numericTextSchema,
119
- ClientName: textSchema, // first name
120
- ClientLName: textSchema.optional(), // last name
121
- street: textSchema.optional(),
122
- city: textSchema.optional(),
123
- zip: textSchema.optional(),
124
- phone: textSchema.optional(),
125
- cell: textSchema.optional(),
126
- email: textSchema.optional(),
127
- });
128
-
129
- // create payment link
130
- export type TPaymentLinkRequest = z.infer<typeof HypPaymentLinkRequestSchema>;
131
-
132
- // after payment success (in client)
133
- export type TPayProtocolResponse = z.infer<typeof PayProtocolResponseSchema>;
@@ -1,139 +0,0 @@
1
- import {
2
- THypSoftTransactionRequest,
3
- THypTokenRequest,
4
- THypTokenResponse,
5
- TPaymentLinkRequest,
6
- } from "../entities/Payment";
7
-
8
- const baseUrl = "https://pay.hyp.co.il/p/";
9
-
10
- function objectToQueryParams<T extends { [key: string]: any }>(obj: T) {
11
- return Object.keys(obj)
12
- .map((key: keyof T & string) => `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`)
13
- .join("&");
14
- }
15
- function splitYYMM(yyMM: string): { month: string; year: string } {
16
- if (!/^\d{4}$/.test(yyMM)) {
17
- throw new Error("Invalid YYMM format. Expected 4-digit string (YYMM).");
18
- }
19
-
20
- const yy = yyMM.slice(0, 2); // First 2 digits → Year
21
- const mm = yyMM.slice(2, 4); // Last 2 digits → Month
22
-
23
- const currentYear = new Date().getFullYear(); // Get current full year (e.g., 2024)
24
- const century = Math.floor(currentYear / 100) * 100; // Get century (e.g., 2000)
25
-
26
- const fullYear = century + parseInt(yy, 10);
27
-
28
- // Handle future dates: Assume YY < current YY is from the current century, else from the past century
29
- const currentYY = currentYear % 100;
30
- const correctedYear = parseInt(yy, 10) > currentYY ? fullYear - 100 : fullYear;
31
-
32
- return { month: mm, year: correctedYear.toString() };
33
- }
34
-
35
- type chargeJ5TransactionParams = {
36
- transactionId: string;
37
- masof: string;
38
- masofPassword: string;
39
- originalAmount: number;
40
- actualAmount: number;
41
- orderId: string;
42
- creditCardConfirmNumber: string;
43
- transactionUID: string;
44
- clientName: string;
45
- clientLastName: string;
46
- };
47
-
48
- // parse hyp text response
49
- function parseQueryString<T extends Record<string, string>>(query: string): T {
50
- return query.split("&").reduce((acc, param) => {
51
- const [key, value] = param.split("=");
52
- if (key && value) {
53
- acc[key as keyof T] = decodeURIComponent(value) as T[keyof T];
54
- }
55
- return acc;
56
- }, {} as T);
57
- }
58
-
59
- export const hypPaymentService = {
60
- async chargeJ5Transaction(params: chargeJ5TransactionParams) {
61
- try {
62
- const tokenParams = objectToQueryParams<THypTokenRequest>({
63
- action: "getToken",
64
- allowFalse: "True",
65
- Masof: params.masof,
66
- PassP: params.masofPassword,
67
- TransId: params.transactionId,
68
- });
69
-
70
- const tokenResponse = await fetch(`${baseUrl}?${tokenParams}`);
71
- const body = await tokenResponse.text();
72
- const tokenData = parseQueryString<THypTokenResponse>(body);
73
-
74
- const cardValidityDate = splitYYMM(tokenData.Tokef);
75
-
76
- // todo Tmonth=mm&Tyear=yyyy
77
-
78
- let originalAmount = Number(params.originalAmount) * 100;
79
-
80
- const transParams = objectToQueryParams<THypSoftTransactionRequest>({
81
- action: "soft",
82
- MoreData: "True",
83
- UTF8: "True",
84
- UTF8out: "True",
85
- "inputObj.originalUid": params.transactionUID,
86
- "inputObj.originalAmount": originalAmount.toString(),
87
- "inputObj.authorizationCodeManpik": "7",
88
- Amount: params.actualAmount.toString(),
89
- AuthNum: params.creditCardConfirmNumber,
90
- Info: "soft Info",
91
- Masof: params.masof,
92
- PassP: params.masofPassword,
93
- Tash: "1",
94
- Tmonth: cardValidityDate.month,
95
- Tyear: cardValidityDate.year,
96
- Order: params.orderId,
97
- CC: tokenData.Token,
98
- UserId: "203269535",
99
- ClientName: params.clientName,
100
- ClientLName: params.clientLastName,
101
- Token: "True",
102
- FixTash: "True",
103
- });
104
- const transactionCommit = await fetch(`${baseUrl}?${transParams}`);
105
- const transactionData = await transactionCommit.text();
106
- console.log("Amount", params.actualAmount.toString());
107
- console.log("token", tokenData.Token);
108
- console.log("AuthNum", params.creditCardConfirmNumber);
109
- console.log("originalUid", params.transactionUID);
110
-
111
- console.log("transactionData", transactionData);
112
-
113
- return { success: true };
114
- } catch (error: any) {
115
- console.log(error);
116
- return { success: false, errMessage: error.message };
117
- }
118
- },
119
- async createPaymentLink(params: TPaymentLinkRequest) {
120
- try {
121
- const queryString = objectToQueryParams(params);
122
-
123
- const url = `${baseUrl}?${queryString}`;
124
-
125
- console.log("createPaymentLink url", url);
126
-
127
- const signResponse = await fetch(url);
128
-
129
- const linkData = await signResponse.text();
130
-
131
- const paymentLink = `${baseUrl}?${linkData}`;
132
-
133
- return { success: true, paymentLink };
134
- } catch (error: any) {
135
- console.log(error);
136
- return { success: false, errMessage: error.message };
137
- }
138
- },
139
- } as const;
package/src/App.css DELETED
@@ -1,42 +0,0 @@
1
- #root {
2
- max-width: 1280px;
3
- margin: 0 auto;
4
- padding: 2rem;
5
- text-align: center;
6
- }
7
-
8
- .logo {
9
- height: 6em;
10
- padding: 1.5em;
11
- will-change: filter;
12
- transition: filter 300ms;
13
- }
14
- .logo:hover {
15
- filter: drop-shadow(0 0 2em #646cffaa);
16
- }
17
- .logo.react:hover {
18
- filter: drop-shadow(0 0 2em #61dafbaa);
19
- }
20
-
21
- @keyframes logo-spin {
22
- from {
23
- transform: rotate(0deg);
24
- }
25
- to {
26
- transform: rotate(360deg);
27
- }
28
- }
29
-
30
- @media (prefers-reduced-motion: no-preference) {
31
- a:nth-of-type(2) .logo {
32
- animation: logo-spin infinite 20s linear;
33
- }
34
- }
35
-
36
- .card {
37
- padding: 2em;
38
- }
39
-
40
- .read-the-docs {
41
- color: #888;
42
- }
package/src/App.tsx DELETED
@@ -1,35 +0,0 @@
1
- import { useState } from "react";
2
- import reactLogo from "./assets/react.svg";
3
- import viteLogo from "/vite.svg";
4
- import "./App.css";
5
-
6
- import { createEmptyProfile } from "../lib";
7
-
8
- console.log("createEmptyProfile", createEmptyProfile);
9
-
10
- function App() {
11
- const [count, setCount] = useState(0);
12
-
13
- return (
14
- <>
15
- <div>
16
- <a href="https://vitejs.dev" target="_blank">
17
- <img src={viteLogo} className="logo" alt="Vite logo" />
18
- </a>
19
- <a href="https://react.dev" target="_blank">
20
- <img src={reactLogo} className="logo react" alt="React logo" />
21
- </a>
22
- </div>
23
- <h1>Vite + React</h1>
24
- <div className="card">
25
- <button onClick={() => setCount((count) => count + 1)}>count is {count}</button>
26
- <p>
27
- Edit <code>src/App.tsx</code> and save to test HMR
28
- </p>
29
- </div>
30
- <p className="read-the-docs">Click on the Vite and React logos to learn more</p>
31
- </>
32
- );
33
- }
34
-
35
- export default App;
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
package/src/index.css DELETED
@@ -1,68 +0,0 @@
1
- :root {
2
- font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
3
- line-height: 1.5;
4
- font-weight: 400;
5
-
6
- color-scheme: light dark;
7
- color: rgba(255, 255, 255, 0.87);
8
- background-color: #242424;
9
-
10
- font-synthesis: none;
11
- text-rendering: optimizeLegibility;
12
- -webkit-font-smoothing: antialiased;
13
- -moz-osx-font-smoothing: grayscale;
14
- }
15
-
16
- a {
17
- font-weight: 500;
18
- color: #646cff;
19
- text-decoration: inherit;
20
- }
21
- a:hover {
22
- color: #535bf2;
23
- }
24
-
25
- body {
26
- margin: 0;
27
- display: flex;
28
- place-items: center;
29
- min-width: 320px;
30
- min-height: 100vh;
31
- }
32
-
33
- h1 {
34
- font-size: 3.2em;
35
- line-height: 1.1;
36
- }
37
-
38
- button {
39
- border-radius: 8px;
40
- border: 1px solid transparent;
41
- padding: 0.6em 1.2em;
42
- font-size: 1em;
43
- font-weight: 500;
44
- font-family: inherit;
45
- background-color: #1a1a1a;
46
- cursor: pointer;
47
- transition: border-color 0.25s;
48
- }
49
- button:hover {
50
- border-color: #646cff;
51
- }
52
- button:focus,
53
- button:focus-visible {
54
- outline: 4px auto -webkit-focus-ring-color;
55
- }
56
-
57
- @media (prefers-color-scheme: light) {
58
- :root {
59
- color: #213547;
60
- background-color: #ffffff;
61
- }
62
- a:hover {
63
- color: #747bff;
64
- }
65
- button {
66
- background-color: #f9f9f9;
67
- }
68
- }