@ctil/gql 1.0.20 → 1.1.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/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
- } else if (key === "_not") {
3783
+ continue;
3784
+ }
3785
+ if (key === "_not") {
3679
3786
  const sub = buildWhere(value);
3680
3787
  if (sub) parts.push(`${key}: { ${sub} }`);
3681
- } else if (typeof value === "object" && value !== null) {
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
- if (typeof value === "string" && value.startsWith("$")) {
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
- async list(input, useCache = true, ttl) {
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 = true, ttl) {
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 = true, ttl) {
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 = true, ttl) {
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