@ctil/gql 1.0.20 → 1.0.21
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 +269 -269
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/{fp.esm-VY6KF7TP.js → fp.esm-QIG5OYFT.js} +3 -1
- package/dist/{fp.esm-VY6KF7TP.js.map → fp.esm-QIG5OYFT.js.map} +1 -1
- package/dist/index.cjs +554 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +337 -56
- package/dist/index.d.ts +337 -56
- package/dist/index.js +488 -13
- package/dist/index.js.map +1 -1
- package/package.json +53 -53
package/dist/index.cjs
CHANGED
|
@@ -2744,25 +2744,96 @@ var init_fp_esm = __esm({
|
|
|
2744
2744
|
// src/index.ts
|
|
2745
2745
|
var index_exports = {};
|
|
2746
2746
|
__export(index_exports, {
|
|
2747
|
+
add: () => add,
|
|
2748
|
+
addDays: () => addDays,
|
|
2747
2749
|
auth: () => auth,
|
|
2750
|
+
base64Decode: () => base64Decode,
|
|
2751
|
+
base64Encode: () => base64Encode,
|
|
2752
|
+
base64ToFile: () => base64ToFile,
|
|
2753
|
+
capitalize: () => capitalize,
|
|
2754
|
+
ceil: () => ceil,
|
|
2748
2755
|
clearHeaders: () => clearHeaders,
|
|
2756
|
+
countSubstr: () => countSubstr,
|
|
2757
|
+
deepClone: () => deepClone,
|
|
2758
|
+
diffDays: () => diffDays,
|
|
2759
|
+
difference: () => difference,
|
|
2760
|
+
divide: () => divide,
|
|
2761
|
+
fileToBase64: () => fileToBase64,
|
|
2762
|
+
flatten: () => flatten,
|
|
2763
|
+
floor: () => floor,
|
|
2764
|
+
formatDate: () => formatDate,
|
|
2765
|
+
formatMoney: () => formatMoney,
|
|
2766
|
+
formatSize: () => formatSize,
|
|
2767
|
+
fromNow: () => fromNow,
|
|
2768
|
+
get: () => get,
|
|
2749
2769
|
getBrowserDeviceInfo: () => getBrowserDeviceInfo,
|
|
2750
2770
|
getClient: () => getClient,
|
|
2751
2771
|
getDeviceInfo: () => getDeviceInfo,
|
|
2772
|
+
getEndOfDay: () => getEndOfDay,
|
|
2773
|
+
getEndOfMonth: () => getEndOfMonth,
|
|
2774
|
+
getEndOfWeek: () => getEndOfWeek,
|
|
2775
|
+
getEndpoint: () => getEndpoint,
|
|
2776
|
+
getExtName: () => getExtName,
|
|
2777
|
+
getHeader: () => getHeader,
|
|
2778
|
+
getHeaders: () => getHeaders,
|
|
2779
|
+
getLoginInfo: () => getLoginInfo,
|
|
2780
|
+
getLoginRoles: () => getLoginRoles,
|
|
2752
2781
|
getRateLimitConfig: () => getRateLimitConfig,
|
|
2782
|
+
getStartOfDay: () => getStartOfDay,
|
|
2783
|
+
getStartOfMonth: () => getStartOfMonth,
|
|
2784
|
+
getStartOfWeek: () => getStartOfWeek,
|
|
2785
|
+
getToken: () => getToken,
|
|
2753
2786
|
gql: () => gql,
|
|
2787
|
+
gqlBuilder: () => builders_exports,
|
|
2788
|
+
groupBy: () => groupBy,
|
|
2789
|
+
hashCode: () => hashCode,
|
|
2790
|
+
inRange: () => inRange,
|
|
2754
2791
|
initGraphQLClient: () => initGraphQLClient,
|
|
2792
|
+
intersection: () => intersection,
|
|
2793
|
+
isEmail: () => isEmail,
|
|
2794
|
+
isEmptyObject: () => isEmptyObject,
|
|
2795
|
+
isEqual: () => isEqual,
|
|
2796
|
+
isLeapYear: () => isLeapYear,
|
|
2797
|
+
isNumeric: () => isNumeric,
|
|
2798
|
+
kebabToCamel: () => kebabToCamel,
|
|
2799
|
+
md5: () => md5,
|
|
2800
|
+
merge: () => merge,
|
|
2801
|
+
multiply: () => multiply,
|
|
2755
2802
|
mutation: () => mutation,
|
|
2803
|
+
omit: () => omit,
|
|
2756
2804
|
oss: () => oss,
|
|
2805
|
+
pick: () => pick,
|
|
2757
2806
|
query: () => query,
|
|
2807
|
+
randomInt: () => randomInt,
|
|
2808
|
+
randomString: () => randomString,
|
|
2809
|
+
removeAllSpace: () => removeAllSpace,
|
|
2758
2810
|
removeHeader: () => removeHeader,
|
|
2759
2811
|
removeToken: () => removeToken,
|
|
2812
|
+
reverse: () => reverse,
|
|
2813
|
+
round: () => round2,
|
|
2814
|
+
roundWithPrecision: () => roundWithPrecision,
|
|
2815
|
+
secondsToTime: () => secondsToTime,
|
|
2816
|
+
set: () => set,
|
|
2760
2817
|
setEndpoint: () => setEndpoint,
|
|
2761
2818
|
setHeader: () => setHeader,
|
|
2762
2819
|
setHeaders: () => setHeaders,
|
|
2763
2820
|
setRateLimitConfig: () => setRateLimitConfig,
|
|
2764
2821
|
setToken: () => setToken,
|
|
2822
|
+
simpleSHA1: () => simpleSHA1,
|
|
2765
2823
|
sms: () => sms,
|
|
2824
|
+
subtract: () => subtract,
|
|
2825
|
+
toCamelCase: () => toCamelCase,
|
|
2826
|
+
toFixed: () => toFixed,
|
|
2827
|
+
toNonExponential: () => toNonExponential,
|
|
2828
|
+
toNumber: () => toNumber,
|
|
2829
|
+
toPercent: () => toPercent,
|
|
2830
|
+
toSnakeCase: () => toSnakeCase,
|
|
2831
|
+
trim: () => trim,
|
|
2832
|
+
truncate: () => truncate,
|
|
2833
|
+
uncapitalize: () => uncapitalize,
|
|
2834
|
+
unflatten: () => unflatten,
|
|
2835
|
+
union: () => union,
|
|
2836
|
+
unique: () => unique,
|
|
2766
2837
|
useInterceptor: () => useInterceptor
|
|
2767
2838
|
});
|
|
2768
2839
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -3666,6 +3737,40 @@ async function execute(payload) {
|
|
|
3666
3737
|
return client2.request(payload.query, payload.variables);
|
|
3667
3738
|
}
|
|
3668
3739
|
|
|
3740
|
+
// src/builders/index.ts
|
|
3741
|
+
var builders_exports = {};
|
|
3742
|
+
__export(builders_exports, {
|
|
3743
|
+
buildCommonResultSelection: () => buildCommonResultSelection,
|
|
3744
|
+
buildDataValue: () => buildDataValue,
|
|
3745
|
+
buildFields: () => buildFields,
|
|
3746
|
+
buildGraphQLGetFilePreview: () => buildGraphQLGetFilePreview,
|
|
3747
|
+
buildGraphQLMutationBatchInsert: () => buildGraphQLMutationBatchInsert,
|
|
3748
|
+
buildGraphQLMutationBatchUpdate: () => buildGraphQLMutationBatchUpdate,
|
|
3749
|
+
buildGraphQLMutationDelete: () => buildGraphQLMutationDelete,
|
|
3750
|
+
buildGraphQLMutationDeleteById: () => buildGraphQLMutationDeleteById,
|
|
3751
|
+
buildGraphQLMutationInsertOne: () => buildGraphQLMutationInsertOne,
|
|
3752
|
+
buildGraphQLMutationLogin: () => buildGraphQLMutationLogin,
|
|
3753
|
+
buildGraphQLMutationLogout: () => buildGraphQLMutationLogout,
|
|
3754
|
+
buildGraphQLMutationLogoutAllDevices: () => buildGraphQLMutationLogoutAllDevices,
|
|
3755
|
+
buildGraphQLMutationLogoutDevice: () => buildGraphQLMutationLogoutDevice,
|
|
3756
|
+
buildGraphQLMutationRefreshToken: () => buildGraphQLMutationRefreshToken,
|
|
3757
|
+
buildGraphQLMutationRegisterUser: () => buildGraphQLMutationRegisterUser,
|
|
3758
|
+
buildGraphQLMutationSendCode: () => buildGraphQLMutationSendCode,
|
|
3759
|
+
buildGraphQLMutationUpdate: () => buildGraphQLMutationUpdate,
|
|
3760
|
+
buildGraphQLMutationUpdateByPk: () => buildGraphQLMutationUpdateByPk,
|
|
3761
|
+
buildGraphQLMutationVerifyCode: () => buildGraphQLMutationVerifyCode,
|
|
3762
|
+
buildGraphQLQueryAggregate: () => buildGraphQLQueryAggregate,
|
|
3763
|
+
buildGraphQLQueryByIdFixed: () => buildGraphQLQueryByIdFixed,
|
|
3764
|
+
buildGraphQLQueryList: () => buildGraphQLQueryList,
|
|
3765
|
+
buildGraphQLQueryPageList: () => buildGraphQLQueryPageList,
|
|
3766
|
+
buildGraphQLUploadPresignedUrl: () => buildGraphQLUploadPresignedUrl,
|
|
3767
|
+
buildMutationFields: () => buildMutationFields,
|
|
3768
|
+
buildWhere: () => buildWhere,
|
|
3769
|
+
formatGraphQLValue: () => formatGraphQLValue,
|
|
3770
|
+
generateOperationName: () => generateOperationName,
|
|
3771
|
+
toPascalCase: () => toPascalCase
|
|
3772
|
+
});
|
|
3773
|
+
|
|
3669
3774
|
// src/builders/baseType.ts
|
|
3670
3775
|
function buildWhere(where) {
|
|
3671
3776
|
if (!where) return "";
|
|
@@ -3675,18 +3780,27 @@ function buildWhere(where) {
|
|
|
3675
3780
|
if (key === "_and" || key === "_or") {
|
|
3676
3781
|
const sub = value.map((w) => `{ ${buildWhere(w)} }`).filter(Boolean).join(", ");
|
|
3677
3782
|
if (sub) parts.push(`${key}: [${sub}]`);
|
|
3678
|
-
|
|
3783
|
+
continue;
|
|
3784
|
+
}
|
|
3785
|
+
if (key === "_not") {
|
|
3679
3786
|
const sub = buildWhere(value);
|
|
3680
3787
|
if (sub) parts.push(`${key}: { ${sub} }`);
|
|
3681
|
-
|
|
3788
|
+
continue;
|
|
3789
|
+
}
|
|
3790
|
+
if (Array.isArray(value)) {
|
|
3791
|
+
const list = value.map((v) => JSON.stringify(v)).join(", ");
|
|
3792
|
+
parts.push(`${key}: [${list}]`);
|
|
3793
|
+
continue;
|
|
3794
|
+
}
|
|
3795
|
+
if (typeof value === "object" && value !== null) {
|
|
3682
3796
|
const sub = buildWhere(value);
|
|
3683
|
-
parts.push(`${key}: { ${sub} }`);
|
|
3797
|
+
if (sub) parts.push(`${key}: { ${sub} }`);
|
|
3798
|
+
continue;
|
|
3799
|
+
}
|
|
3800
|
+
if (typeof value === "string" && value.startsWith("$")) {
|
|
3801
|
+
parts.push(`${key}: ${value}`);
|
|
3684
3802
|
} else {
|
|
3685
|
-
|
|
3686
|
-
parts.push(`${key}: ${value}`);
|
|
3687
|
-
} else {
|
|
3688
|
-
parts.push(`${key}: ${JSON.stringify(value)}`);
|
|
3689
|
-
}
|
|
3803
|
+
parts.push(`${key}: ${JSON.stringify(value)}`);
|
|
3690
3804
|
}
|
|
3691
3805
|
}
|
|
3692
3806
|
return parts.join(", ");
|
|
@@ -3752,6 +3866,24 @@ function formatGraphQLValue(value) {
|
|
|
3752
3866
|
}
|
|
3753
3867
|
return JSON.stringify(value);
|
|
3754
3868
|
}
|
|
3869
|
+
function generateOperationName(entityName, original) {
|
|
3870
|
+
const lower = original.toLowerCase();
|
|
3871
|
+
const e = entityName.toLowerCase();
|
|
3872
|
+
if (original.startsWith("gql_")) {
|
|
3873
|
+
if (lower.endsWith("pagelist")) return `get${entityName}PageList`;
|
|
3874
|
+
if (lower.endsWith("querylist")) return `${e.toLowerCase()}s`;
|
|
3875
|
+
if (lower.endsWith("getbyid")) return `${e.toLowerCase()}_by_pk`;
|
|
3876
|
+
if (lower.endsWith("aggregate")) return `${e.toLowerCase()}_aggregateount`;
|
|
3877
|
+
if (lower.endsWith("insertone")) return `insert_${e.toLowerCase()}_one`;
|
|
3878
|
+
if (lower.endsWith("batchinsert")) return `insert_${e.toLowerCase()}s`;
|
|
3879
|
+
if (lower.endsWith("batchupdate")) return `update_${e.toLowerCase()}_many`;
|
|
3880
|
+
if (lower.endsWith("updatebypk")) return `update_${e.toLowerCase()}_by_pk`;
|
|
3881
|
+
if (lower.endsWith("update")) return `update_${e.toLowerCase()}`;
|
|
3882
|
+
if (lower.endsWith("deletebyid")) return `delete_${e.toLowerCase()}_by_pk`;
|
|
3883
|
+
if (lower.endsWith("delete")) return `delete_${e.toLowerCase()}`;
|
|
3884
|
+
}
|
|
3885
|
+
return original;
|
|
3886
|
+
}
|
|
3755
3887
|
function toPascalCase(str) {
|
|
3756
3888
|
const camel = str.replace(/[-_ ]+(\w)/g, (_, c) => c ? c.toUpperCase() : "").replace(/^\w/, (c) => c.toLowerCase());
|
|
3757
3889
|
return camel.charAt(0).toUpperCase() + camel.slice(1);
|
|
@@ -4363,6 +4495,9 @@ var CCRequest = class {
|
|
|
4363
4495
|
this.headers.Authorization = `Bearer ${token}`;
|
|
4364
4496
|
this.buildClient();
|
|
4365
4497
|
}
|
|
4498
|
+
getToken() {
|
|
4499
|
+
return this.config.Authorization || this.headers.Authorization;
|
|
4500
|
+
}
|
|
4366
4501
|
removeToken() {
|
|
4367
4502
|
this.config.Authorization = void 0;
|
|
4368
4503
|
delete this.headers.Authorization;
|
|
@@ -4437,12 +4572,21 @@ var CCRequest = class {
|
|
|
4437
4572
|
this.config.endpoint = endpoint;
|
|
4438
4573
|
this.buildClient();
|
|
4439
4574
|
}
|
|
4575
|
+
getEndpoint() {
|
|
4576
|
+
return this.config.endpoint;
|
|
4577
|
+
}
|
|
4440
4578
|
setHeader(key, value) {
|
|
4441
4579
|
this.headers[key] = value;
|
|
4442
4580
|
}
|
|
4581
|
+
getHeader(key) {
|
|
4582
|
+
return this.headers[key];
|
|
4583
|
+
}
|
|
4443
4584
|
setHeaders(headers) {
|
|
4444
4585
|
Object.assign(this.headers, headers);
|
|
4445
4586
|
}
|
|
4587
|
+
getHeaders() {
|
|
4588
|
+
return this.headers;
|
|
4589
|
+
}
|
|
4446
4590
|
removeHeader(key) {
|
|
4447
4591
|
delete this.headers[key];
|
|
4448
4592
|
}
|
|
@@ -4550,18 +4694,26 @@ function getClient() {
|
|
|
4550
4694
|
var useInterceptor = (interceptor) => getClient().use(interceptor);
|
|
4551
4695
|
var setToken = (token) => getClient().setToken(token);
|
|
4552
4696
|
var removeToken = () => getClient().removeToken();
|
|
4697
|
+
var getToken = () => getClient().getToken();
|
|
4553
4698
|
var setLoginInfo = (loginInfo, remember = false) => getClient().setLoginInfo(loginInfo, remember);
|
|
4554
4699
|
var removeLoginInfo = () => getClient().removeLoginInfo();
|
|
4555
4700
|
var getLoginInfo = () => getClient().getLoginInfo();
|
|
4701
|
+
var getLoginRoles = () => getClient().getLoginInfo()?.roles;
|
|
4556
4702
|
var setEndpoint = (endpoint) => getClient().setEndpoint(endpoint);
|
|
4703
|
+
var getEndpoint = () => getClient().getEndpoint();
|
|
4557
4704
|
var setHeader = (key, value) => getClient().setHeader(key, value);
|
|
4558
4705
|
var setHeaders = (headers) => getClient().setHeaders(headers);
|
|
4706
|
+
var getHeaders = () => getClient().getHeaders();
|
|
4707
|
+
var getHeader = (key) => getClient().getHeader(key);
|
|
4559
4708
|
var removeHeader = (key) => getClient().removeHeader(key);
|
|
4560
4709
|
var clearHeaders = () => getClient().clearHeaders();
|
|
4561
4710
|
|
|
4562
4711
|
// src/core/api/query.ts
|
|
4563
4712
|
var query = {
|
|
4564
|
-
|
|
4713
|
+
// NOTE:
|
|
4714
|
+
// GraphQL batch queries should be implemented via alias + fragment builders.
|
|
4715
|
+
// Deferred until v2 API redesign.
|
|
4716
|
+
async list(input, useCache = false, ttl) {
|
|
4565
4717
|
return rateLimit("list", "query", async () => {
|
|
4566
4718
|
input.operationName = input.operationName + "s";
|
|
4567
4719
|
const { query: q, variables } = buildGraphQLQueryList(input);
|
|
@@ -4575,7 +4727,7 @@ var query = {
|
|
|
4575
4727
|
return result;
|
|
4576
4728
|
});
|
|
4577
4729
|
},
|
|
4578
|
-
async byId(input, useCache =
|
|
4730
|
+
async byId(input, useCache = false, ttl) {
|
|
4579
4731
|
return rateLimit("byId", "query", async () => {
|
|
4580
4732
|
const { query: q, variables } = buildGraphQLQueryByIdFixed(input);
|
|
4581
4733
|
const key = getCacheKey(q, variables);
|
|
@@ -4588,7 +4740,7 @@ var query = {
|
|
|
4588
4740
|
return result;
|
|
4589
4741
|
});
|
|
4590
4742
|
},
|
|
4591
|
-
async page(input, useCache =
|
|
4743
|
+
async page(input, useCache = false, ttl) {
|
|
4592
4744
|
return rateLimit("page", "query", async () => {
|
|
4593
4745
|
const { query: q, variables } = buildGraphQLQueryPageList(input);
|
|
4594
4746
|
const key = getCacheKey(q, variables);
|
|
@@ -4601,7 +4753,7 @@ var query = {
|
|
|
4601
4753
|
return result;
|
|
4602
4754
|
});
|
|
4603
4755
|
},
|
|
4604
|
-
async aggregate(input, useCache =
|
|
4756
|
+
async aggregate(input, useCache = false, ttl) {
|
|
4605
4757
|
return rateLimit("aggregate", "query", async () => {
|
|
4606
4758
|
const { query: q, variables } = buildGraphQLQueryAggregate(input);
|
|
4607
4759
|
const key = getCacheKey(q, variables);
|
|
@@ -4854,27 +5006,417 @@ var oss = {
|
|
|
4854
5006
|
});
|
|
4855
5007
|
}
|
|
4856
5008
|
};
|
|
5009
|
+
|
|
5010
|
+
// src/common/date.ts
|
|
5011
|
+
function formatDate(date, format = "YYYY-MM-DD HH:mm:ss") {
|
|
5012
|
+
const d = typeof date === "string" ? new Date(date) : date;
|
|
5013
|
+
const pad = (n) => n.toString().padStart(2, "0");
|
|
5014
|
+
return format.replace("YYYY", d.getFullYear().toString()).replace("MM", pad(d.getMonth() + 1)).replace("DD", pad(d.getDate())).replace("HH", pad(d.getHours())).replace("mm", pad(d.getMinutes())).replace("ss", pad(d.getSeconds()));
|
|
5015
|
+
}
|
|
5016
|
+
function getStartOfDay(date = /* @__PURE__ */ new Date()) {
|
|
5017
|
+
const d = new Date(date);
|
|
5018
|
+
d.setHours(0, 0, 0, 0);
|
|
5019
|
+
return d;
|
|
5020
|
+
}
|
|
5021
|
+
function getEndOfDay(date = /* @__PURE__ */ new Date()) {
|
|
5022
|
+
const d = new Date(date);
|
|
5023
|
+
d.setHours(23, 59, 59, 999);
|
|
5024
|
+
return d;
|
|
5025
|
+
}
|
|
5026
|
+
function getStartOfWeek(date = /* @__PURE__ */ new Date()) {
|
|
5027
|
+
const d = new Date(date);
|
|
5028
|
+
d.setHours(0, 0, 0, 0);
|
|
5029
|
+
d.setDate(d.getDate() - d.getDay() + 1);
|
|
5030
|
+
return d;
|
|
5031
|
+
}
|
|
5032
|
+
function getEndOfWeek(date = /* @__PURE__ */ new Date()) {
|
|
5033
|
+
const d = new Date(date);
|
|
5034
|
+
d.setHours(23, 59, 59, 999);
|
|
5035
|
+
d.setDate(d.getDate() - d.getDay() + 7);
|
|
5036
|
+
return d;
|
|
5037
|
+
}
|
|
5038
|
+
function getStartOfMonth(date = /* @__PURE__ */ new Date()) {
|
|
5039
|
+
const d = new Date(date);
|
|
5040
|
+
d.setDate(1);
|
|
5041
|
+
d.setHours(0, 0, 0, 0);
|
|
5042
|
+
return d;
|
|
5043
|
+
}
|
|
5044
|
+
function getEndOfMonth(date = /* @__PURE__ */ new Date()) {
|
|
5045
|
+
const d = new Date(date);
|
|
5046
|
+
d.setMonth(d.getMonth() + 1, 0);
|
|
5047
|
+
d.setHours(23, 59, 59, 999);
|
|
5048
|
+
return d;
|
|
5049
|
+
}
|
|
5050
|
+
function isLeapYear(year) {
|
|
5051
|
+
return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
|
|
5052
|
+
}
|
|
5053
|
+
function diffDays(date1, date2) {
|
|
5054
|
+
return Math.floor(Math.abs((date2.getTime() - date1.getTime()) / (1e3 * 3600 * 24)));
|
|
5055
|
+
}
|
|
5056
|
+
function addDays(date, n) {
|
|
5057
|
+
const d = new Date(date);
|
|
5058
|
+
d.setDate(d.getDate() + n);
|
|
5059
|
+
return d;
|
|
5060
|
+
}
|
|
5061
|
+
function secondsToTime(sec) {
|
|
5062
|
+
const h = Math.floor(sec / 3600).toString().padStart(2, "0");
|
|
5063
|
+
const m = Math.floor(sec % 3600 / 60).toString().padStart(2, "0");
|
|
5064
|
+
const s = (sec % 60).toString().padStart(2, "0");
|
|
5065
|
+
return `${h}:${m}:${s}`;
|
|
5066
|
+
}
|
|
5067
|
+
function fromNow(date) {
|
|
5068
|
+
const d = new Date(date);
|
|
5069
|
+
const now = /* @__PURE__ */ new Date();
|
|
5070
|
+
const diff = (now.getTime() - d.getTime()) / 1e3;
|
|
5071
|
+
if (diff < 60) return `${Math.floor(diff)}\u79D2\u524D`;
|
|
5072
|
+
if (diff < 3600) return `${Math.floor(diff / 60)}\u5206\u949F\u524D`;
|
|
5073
|
+
if (diff < 86400) return `${Math.floor(diff / 3600)}\u5C0F\u65F6\u524D`;
|
|
5074
|
+
if (diff < 2592e3) return `${Math.floor(diff / 86400)}\u5929\u524D`;
|
|
5075
|
+
return formatDate(d, "YYYY-MM-DD");
|
|
5076
|
+
}
|
|
5077
|
+
|
|
5078
|
+
// src/common/object.ts
|
|
5079
|
+
function deepClone(obj) {
|
|
5080
|
+
return JSON.parse(JSON.stringify(obj));
|
|
5081
|
+
}
|
|
5082
|
+
function merge(obj1, obj2) {
|
|
5083
|
+
return Object.assign({}, obj1, obj2);
|
|
5084
|
+
}
|
|
5085
|
+
function isEmptyObject(obj) {
|
|
5086
|
+
return Object.keys(obj).length === 0;
|
|
5087
|
+
}
|
|
5088
|
+
function pick(obj, keys) {
|
|
5089
|
+
const result = {};
|
|
5090
|
+
keys.forEach((k) => k in obj && (result[k] = obj[k]));
|
|
5091
|
+
return result;
|
|
5092
|
+
}
|
|
5093
|
+
function omit(obj, keys) {
|
|
5094
|
+
const result = { ...obj };
|
|
5095
|
+
keys.forEach((k) => delete result[k]);
|
|
5096
|
+
return result;
|
|
5097
|
+
}
|
|
5098
|
+
function get(obj, path3, def) {
|
|
5099
|
+
return String(path3).split(".").reduce((o, k) => o ? o[k] : def, obj) ?? def;
|
|
5100
|
+
}
|
|
5101
|
+
function set(obj, path3, value) {
|
|
5102
|
+
const keys = String(path3).split(".");
|
|
5103
|
+
let o = obj;
|
|
5104
|
+
keys.slice(0, -1).forEach((k) => {
|
|
5105
|
+
if (!(k in o)) o[k] = {};
|
|
5106
|
+
o = o[k];
|
|
5107
|
+
});
|
|
5108
|
+
o[keys[keys.length - 1]] = value;
|
|
5109
|
+
return obj;
|
|
5110
|
+
}
|
|
5111
|
+
function isEqual(a, b) {
|
|
5112
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
5113
|
+
}
|
|
5114
|
+
function flatten(obj, prefix = "", res = {}) {
|
|
5115
|
+
for (const key in obj) {
|
|
5116
|
+
if (typeof obj[key] === "object" && obj[key] !== null) {
|
|
5117
|
+
flatten(obj[key], prefix + key + ".", res);
|
|
5118
|
+
} else {
|
|
5119
|
+
res[prefix + key] = obj[key];
|
|
5120
|
+
}
|
|
5121
|
+
}
|
|
5122
|
+
return res;
|
|
5123
|
+
}
|
|
5124
|
+
function unflatten(obj) {
|
|
5125
|
+
const res = {};
|
|
5126
|
+
for (const k in obj) {
|
|
5127
|
+
set(res, k, obj[k]);
|
|
5128
|
+
}
|
|
5129
|
+
return res;
|
|
5130
|
+
}
|
|
5131
|
+
|
|
5132
|
+
// src/common/arr.ts
|
|
5133
|
+
function unique(arr) {
|
|
5134
|
+
return Array.from(new Set(arr));
|
|
5135
|
+
}
|
|
5136
|
+
function intersection(arr1, arr2) {
|
|
5137
|
+
return arr1.filter((item) => arr2.includes(item));
|
|
5138
|
+
}
|
|
5139
|
+
function union(arr1, arr2) {
|
|
5140
|
+
return Array.from(/* @__PURE__ */ new Set([...arr1, ...arr2]));
|
|
5141
|
+
}
|
|
5142
|
+
function groupBy(arr, key) {
|
|
5143
|
+
return arr.reduce((acc, cur) => {
|
|
5144
|
+
const groupKey = String(cur[key]);
|
|
5145
|
+
(acc[groupKey] = acc[groupKey] || []).push(cur);
|
|
5146
|
+
return acc;
|
|
5147
|
+
}, {});
|
|
5148
|
+
}
|
|
5149
|
+
function difference(arr1, arr2) {
|
|
5150
|
+
return arr1.filter((item) => !arr2.includes(item));
|
|
5151
|
+
}
|
|
5152
|
+
|
|
5153
|
+
// src/common/number.ts
|
|
5154
|
+
function formatMoney(num) {
|
|
5155
|
+
return Number(num).toLocaleString("en-US", { maximumFractionDigits: 2 });
|
|
5156
|
+
}
|
|
5157
|
+
function add(a, b) {
|
|
5158
|
+
return Math.round((a + b) * 1e10) / 1e10;
|
|
5159
|
+
}
|
|
5160
|
+
function subtract(a, b) {
|
|
5161
|
+
return Math.round((a - b) * 1e10) / 1e10;
|
|
5162
|
+
}
|
|
5163
|
+
function multiply(a, b) {
|
|
5164
|
+
return Math.round(a * b * 1e10) / 1e10;
|
|
5165
|
+
}
|
|
5166
|
+
function divide(a, b) {
|
|
5167
|
+
if (b === 0) return NaN;
|
|
5168
|
+
return Math.round(a / b * 1e10) / 1e10;
|
|
5169
|
+
}
|
|
5170
|
+
function roundWithPrecision(num, precision = 2) {
|
|
5171
|
+
return Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision);
|
|
5172
|
+
}
|
|
5173
|
+
function randomInt(min, max) {
|
|
5174
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
5175
|
+
}
|
|
5176
|
+
function toFixed(num, precision = 2) {
|
|
5177
|
+
return num.toFixed(precision);
|
|
5178
|
+
}
|
|
5179
|
+
function toPercent(num, total, precision = 2) {
|
|
5180
|
+
if (total === 0) return "0%";
|
|
5181
|
+
return (num / total * 100).toFixed(precision) + "%";
|
|
5182
|
+
}
|
|
5183
|
+
function toNonExponential(num) {
|
|
5184
|
+
let m = num.toExponential().match(/^\d(?:\.\d+)?/);
|
|
5185
|
+
return m ? Number(m[0]).toString() : num.toString();
|
|
5186
|
+
}
|
|
5187
|
+
function inRange(num, min, max) {
|
|
5188
|
+
return num >= min && num <= max;
|
|
5189
|
+
}
|
|
5190
|
+
function toNumber(val) {
|
|
5191
|
+
let n = Number(val);
|
|
5192
|
+
return isNaN(n) ? 0 : n;
|
|
5193
|
+
}
|
|
5194
|
+
function ceil(num) {
|
|
5195
|
+
return Math.ceil(num);
|
|
5196
|
+
}
|
|
5197
|
+
function floor(num) {
|
|
5198
|
+
return Math.floor(num);
|
|
5199
|
+
}
|
|
5200
|
+
function round2(num) {
|
|
5201
|
+
return Math.round(num);
|
|
5202
|
+
}
|
|
5203
|
+
|
|
5204
|
+
// src/common/string.ts
|
|
5205
|
+
function toSnakeCase(str) {
|
|
5206
|
+
return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
5207
|
+
}
|
|
5208
|
+
function capitalize(str) {
|
|
5209
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
5210
|
+
}
|
|
5211
|
+
function truncate(str, length, suffix = "...") {
|
|
5212
|
+
if (str.length <= length) return str;
|
|
5213
|
+
return str.slice(0, length) + suffix;
|
|
5214
|
+
}
|
|
5215
|
+
function removeAllSpace(str) {
|
|
5216
|
+
return str.replace(/\s+/g, "");
|
|
5217
|
+
}
|
|
5218
|
+
function trim(str) {
|
|
5219
|
+
return str.trim();
|
|
5220
|
+
}
|
|
5221
|
+
function toCamelCase(str) {
|
|
5222
|
+
return str.replace(/_([a-z])/g, (_, v) => v.toUpperCase());
|
|
5223
|
+
}
|
|
5224
|
+
function kebabToCamel(str) {
|
|
5225
|
+
return str.replace(/-([a-z])/g, (_, v) => v.toUpperCase());
|
|
5226
|
+
}
|
|
5227
|
+
function uncapitalize(str) {
|
|
5228
|
+
return str.charAt(0).toLowerCase() + str.slice(1);
|
|
5229
|
+
}
|
|
5230
|
+
function reverse(str) {
|
|
5231
|
+
return str.split("").reverse().join("");
|
|
5232
|
+
}
|
|
5233
|
+
function isNumeric(str) {
|
|
5234
|
+
return /^-?\d+(\.\d+)?$/.test(str);
|
|
5235
|
+
}
|
|
5236
|
+
function isEmail(str) {
|
|
5237
|
+
return /^[\w-\.]+@[\w-]+(\.[\w-]+)+$/.test(str);
|
|
5238
|
+
}
|
|
5239
|
+
function countSubstr(str, sub) {
|
|
5240
|
+
return str.split(sub).length - 1;
|
|
5241
|
+
}
|
|
5242
|
+
function randomString(len = 8) {
|
|
5243
|
+
const chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678";
|
|
5244
|
+
let str = "";
|
|
5245
|
+
for (let i = 0; i < len; i++) {
|
|
5246
|
+
str += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
5247
|
+
}
|
|
5248
|
+
return str;
|
|
5249
|
+
}
|
|
5250
|
+
|
|
5251
|
+
// src/common/crypto.ts
|
|
5252
|
+
function base64Encode(input) {
|
|
5253
|
+
if (typeof window !== "undefined" && window.btoa) {
|
|
5254
|
+
return window.btoa(unescape(encodeURIComponent(input)));
|
|
5255
|
+
}
|
|
5256
|
+
return Buffer.from(input, "utf-8").toString("base64");
|
|
5257
|
+
}
|
|
5258
|
+
function base64Decode(input) {
|
|
5259
|
+
if (typeof window !== "undefined" && window.atob) {
|
|
5260
|
+
return decodeURIComponent(escape(window.atob(input)));
|
|
5261
|
+
}
|
|
5262
|
+
return Buffer.from(input, "base64").toString("utf-8");
|
|
5263
|
+
}
|
|
5264
|
+
function hashCode(str) {
|
|
5265
|
+
let hash = 0;
|
|
5266
|
+
for (let i = 0; i < str.length; i++) {
|
|
5267
|
+
hash = (hash << 5) - hash + str.charCodeAt(i);
|
|
5268
|
+
hash |= 0;
|
|
5269
|
+
}
|
|
5270
|
+
return hash;
|
|
5271
|
+
}
|
|
5272
|
+
function md5(str) {
|
|
5273
|
+
let hc = "0123456789abcdef";
|
|
5274
|
+
let hash = 0;
|
|
5275
|
+
for (let i = 0; i < str.length; i++) {
|
|
5276
|
+
hash = (hash << 5) - hash + str.charCodeAt(i);
|
|
5277
|
+
hash &= hash;
|
|
5278
|
+
}
|
|
5279
|
+
let v = hash >>> 0;
|
|
5280
|
+
let out = "";
|
|
5281
|
+
for (let i = 0; i < 8; i++) {
|
|
5282
|
+
out = hc.charAt(v & 15) + out;
|
|
5283
|
+
v >>>= 4;
|
|
5284
|
+
}
|
|
5285
|
+
return out.padStart(8, "0");
|
|
5286
|
+
}
|
|
5287
|
+
function simpleSHA1(str) {
|
|
5288
|
+
let hash = 0;
|
|
5289
|
+
for (let i = 0; i < str.length; i++) {
|
|
5290
|
+
hash = (hash << 5) - hash + str.charCodeAt(i);
|
|
5291
|
+
hash |= 0;
|
|
5292
|
+
}
|
|
5293
|
+
return Math.abs(hash).toString(16);
|
|
5294
|
+
}
|
|
5295
|
+
|
|
5296
|
+
// src/common/file.ts
|
|
5297
|
+
function getExtName(filename) {
|
|
5298
|
+
const idx = filename.lastIndexOf(".");
|
|
5299
|
+
return idx > -1 ? filename.slice(idx + 1) : "";
|
|
5300
|
+
}
|
|
5301
|
+
function formatSize(bytes) {
|
|
5302
|
+
if (bytes < 1024) return bytes + "B";
|
|
5303
|
+
let k = 1024;
|
|
5304
|
+
let sizes = ["B", "KB", "MB", "GB", "TB"];
|
|
5305
|
+
let i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
5306
|
+
return (bytes / Math.pow(k, i)).toFixed(2) + sizes[i];
|
|
5307
|
+
}
|
|
5308
|
+
function fileToBase64(file) {
|
|
5309
|
+
return new Promise((resolve, reject) => {
|
|
5310
|
+
const reader = new FileReader();
|
|
5311
|
+
reader.onload = () => resolve(reader.result);
|
|
5312
|
+
reader.onerror = (error) => reject(error);
|
|
5313
|
+
reader.readAsDataURL(file);
|
|
5314
|
+
});
|
|
5315
|
+
}
|
|
5316
|
+
function base64ToFile(dataurl, filename, mimeType) {
|
|
5317
|
+
const arr = dataurl.split(",");
|
|
5318
|
+
const match = arr[0].match(/:(.*?);/);
|
|
5319
|
+
const mime = mimeType || (match ? match[1] : "");
|
|
5320
|
+
const bstr = atob(arr[1]);
|
|
5321
|
+
let n = bstr.length;
|
|
5322
|
+
const u8arr = new Uint8Array(n);
|
|
5323
|
+
while (n--) {
|
|
5324
|
+
u8arr[n] = bstr.charCodeAt(n);
|
|
5325
|
+
}
|
|
5326
|
+
return new File([u8arr], filename, { type: mime });
|
|
5327
|
+
}
|
|
4857
5328
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4858
5329
|
0 && (module.exports = {
|
|
5330
|
+
add,
|
|
5331
|
+
addDays,
|
|
4859
5332
|
auth,
|
|
5333
|
+
base64Decode,
|
|
5334
|
+
base64Encode,
|
|
5335
|
+
base64ToFile,
|
|
5336
|
+
capitalize,
|
|
5337
|
+
ceil,
|
|
4860
5338
|
clearHeaders,
|
|
5339
|
+
countSubstr,
|
|
5340
|
+
deepClone,
|
|
5341
|
+
diffDays,
|
|
5342
|
+
difference,
|
|
5343
|
+
divide,
|
|
5344
|
+
fileToBase64,
|
|
5345
|
+
flatten,
|
|
5346
|
+
floor,
|
|
5347
|
+
formatDate,
|
|
5348
|
+
formatMoney,
|
|
5349
|
+
formatSize,
|
|
5350
|
+
fromNow,
|
|
5351
|
+
get,
|
|
4861
5352
|
getBrowserDeviceInfo,
|
|
4862
5353
|
getClient,
|
|
4863
5354
|
getDeviceInfo,
|
|
5355
|
+
getEndOfDay,
|
|
5356
|
+
getEndOfMonth,
|
|
5357
|
+
getEndOfWeek,
|
|
5358
|
+
getEndpoint,
|
|
5359
|
+
getExtName,
|
|
5360
|
+
getHeader,
|
|
5361
|
+
getHeaders,
|
|
5362
|
+
getLoginInfo,
|
|
5363
|
+
getLoginRoles,
|
|
4864
5364
|
getRateLimitConfig,
|
|
5365
|
+
getStartOfDay,
|
|
5366
|
+
getStartOfMonth,
|
|
5367
|
+
getStartOfWeek,
|
|
5368
|
+
getToken,
|
|
4865
5369
|
gql,
|
|
5370
|
+
gqlBuilder,
|
|
5371
|
+
groupBy,
|
|
5372
|
+
hashCode,
|
|
5373
|
+
inRange,
|
|
4866
5374
|
initGraphQLClient,
|
|
5375
|
+
intersection,
|
|
5376
|
+
isEmail,
|
|
5377
|
+
isEmptyObject,
|
|
5378
|
+
isEqual,
|
|
5379
|
+
isLeapYear,
|
|
5380
|
+
isNumeric,
|
|
5381
|
+
kebabToCamel,
|
|
5382
|
+
md5,
|
|
5383
|
+
merge,
|
|
5384
|
+
multiply,
|
|
4867
5385
|
mutation,
|
|
5386
|
+
omit,
|
|
4868
5387
|
oss,
|
|
5388
|
+
pick,
|
|
4869
5389
|
query,
|
|
5390
|
+
randomInt,
|
|
5391
|
+
randomString,
|
|
5392
|
+
removeAllSpace,
|
|
4870
5393
|
removeHeader,
|
|
4871
5394
|
removeToken,
|
|
5395
|
+
reverse,
|
|
5396
|
+
round,
|
|
5397
|
+
roundWithPrecision,
|
|
5398
|
+
secondsToTime,
|
|
5399
|
+
set,
|
|
4872
5400
|
setEndpoint,
|
|
4873
5401
|
setHeader,
|
|
4874
5402
|
setHeaders,
|
|
4875
5403
|
setRateLimitConfig,
|
|
4876
5404
|
setToken,
|
|
5405
|
+
simpleSHA1,
|
|
4877
5406
|
sms,
|
|
5407
|
+
subtract,
|
|
5408
|
+
toCamelCase,
|
|
5409
|
+
toFixed,
|
|
5410
|
+
toNonExponential,
|
|
5411
|
+
toNumber,
|
|
5412
|
+
toPercent,
|
|
5413
|
+
toSnakeCase,
|
|
5414
|
+
trim,
|
|
5415
|
+
truncate,
|
|
5416
|
+
uncapitalize,
|
|
5417
|
+
unflatten,
|
|
5418
|
+
union,
|
|
5419
|
+
unique,
|
|
4878
5420
|
useInterceptor
|
|
4879
5421
|
});
|
|
4880
5422
|
//# sourceMappingURL=index.cjs.map
|