@pisell/utils 3.0.1 → 3.0.3

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.
@@ -0,0 +1,7 @@
1
+ declare const webHookApi: {
2
+ warning_log: {
3
+ test: string;
4
+ prod: string;
5
+ };
6
+ };
7
+ export { webHookApi };
@@ -1,5 +1,5 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
3
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
4
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
5
  import EscPosPrinter, { ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT, columnWidthWithAlignment } from "./EscPosPrinter";
package/es/index.js CHANGED
@@ -17,6 +17,7 @@ export * from "./jsBridge";
17
17
  export * from "./image";
18
18
  export * from "./locales";
19
19
  export * from "./arrayUtils";
20
+ export * from "./walletValidity";
20
21
  // export { default as firebase } from './firebase';
21
22
 
22
23
  export var setPisellUtilsConfig = function setPisellUtilsConfig(config) {
package/es/log.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ interface contentItem {
2
+ key: string;
3
+ value: string;
4
+ }
5
+ interface sendWebhookProps {
6
+ title: string;
7
+ content: contentItem[];
8
+ }
9
+ export declare const sendWarningLog: ({ title, content }: sendWebhookProps) => Promise<any>;
10
+ export {};
@@ -0,0 +1,499 @@
1
+ import dayjs from 'dayjs';
2
+
3
+ // 文案配置类型定义
4
+
5
+ // 常量定义
6
+ var CONSTANTS = {
7
+ ALL_DAY_START: '00:00',
8
+ ALL_DAY_END: '23:59',
9
+ DEFAULT_FUTURE_YEARS: 10,
10
+ SECONDS_SUFFIX: ':59'
11
+ };
12
+
13
+ // 日程项接口定义
14
+
15
+ // 多语言文案配置
16
+ var textConfig = {
17
+ 'zh-HK': {
18
+ weekdays: ['日', '一', '二', '三', '四', '五', '六'],
19
+ separator: '、',
20
+ timeSeparator: '–',
21
+ rangeSeparator: ' 至 ',
22
+ periodSeparator: ';',
23
+ timeSlotSeparator: ',',
24
+ every: '每',
25
+ day: '天',
26
+ week: '周',
27
+ month: '月',
28
+ year: '年',
29
+ available: '可用',
30
+ unlimited: '无限期',
31
+ multipleRules: '多規則,點詳情',
32
+ multipleSlots: ',多時段',
33
+ until: '至',
34
+ daily: '每天',
35
+ days: '天',
36
+ weeks: '周',
37
+ everyPrefix: '每',
38
+ weekPrefix: '周',
39
+ dateFormat: 'YYYY-MM-DD',
40
+ dateTimeFormat: 'YYYY-MM-DD HH:mm',
41
+ longTermValidFrom: '自',
42
+ noExpiry: '起長期有效',
43
+ on: ''
44
+ },
45
+ 'zh-CN': {
46
+ weekdays: ['日', '一', '二', '三', '四', '五', '六'],
47
+ separator: '、',
48
+ timeSeparator: '–',
49
+ rangeSeparator: ' 至 ',
50
+ periodSeparator: ';',
51
+ timeSlotSeparator: ',',
52
+ every: '每',
53
+ day: '天',
54
+ week: '周',
55
+ month: '月',
56
+ year: '年',
57
+ available: '可用',
58
+ unlimited: '无限期',
59
+ multipleRules: '多规则,点详情',
60
+ multipleSlots: ',多时段',
61
+ until: '至',
62
+ daily: '每天',
63
+ days: '天',
64
+ weeks: '周',
65
+ everyPrefix: '每',
66
+ weekPrefix: '周',
67
+ dateFormat: 'YYYY-MM-DD',
68
+ dateTimeFormat: 'YYYY-MM-DD HH:mm',
69
+ longTermValidFrom: '自',
70
+ noExpiry: '起长期有效',
71
+ on: ''
72
+ },
73
+ 'en': {
74
+ weekdays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
75
+ separator: ', ',
76
+ timeSeparator: '–',
77
+ rangeSeparator: ' - ',
78
+ periodSeparator: '; ',
79
+ timeSlotSeparator: ', ',
80
+ every: 'every ',
81
+ day: 'day',
82
+ week: 'week',
83
+ month: 'month',
84
+ year: 'year',
85
+ available: 'available',
86
+ unlimited: 'unlimited',
87
+ multipleRules: 'Multiple rules, see details',
88
+ multipleSlots: ', multiple slots',
89
+ until: 'Until ',
90
+ daily: 'daily',
91
+ days: 'days',
92
+ weeks: 'weeks',
93
+ everyPrefix: 'every ',
94
+ weekPrefix: '',
95
+ dateFormat: 'DD MMM YYYY',
96
+ dateTimeFormat: 'DD MMM YYYY h:mm A',
97
+ longTermValidFrom: 'from ',
98
+ noExpiry: ', no expiry',
99
+ on: 'on '
100
+ }
101
+ };
102
+
103
+ /**
104
+ * 获取星期几的表示
105
+ * @param dayNumbers 星期几的数字数组 (0-6, 0代表周日)
106
+ * @param locale 语言设置
107
+ * @param separator 分隔符,可选,默认使用locale配置的分隔符
108
+ * @returns 格式化的星期几文案
109
+ */
110
+ function getWeekdayText(dayNumbers, locale, separator) {
111
+ var config = textConfig[locale];
112
+ return dayNumbers.map(function (day) {
113
+ return config.weekdays[day];
114
+ }).join(separator || config.separator);
115
+ }
116
+
117
+ /**
118
+ * 获取指定语言的文案配置
119
+ * @param locale 语言设置
120
+ * @param key 配置项key
121
+ * @returns 对应语言的文案
122
+ */
123
+ function getText(locale, key) {
124
+ return textConfig[locale][key];
125
+ }
126
+
127
+ /**
128
+ * 获取指定语言的配置对象(缓存优化)
129
+ * @param locale 语言设置
130
+ * @returns 对应语言的完整配置对象
131
+ */
132
+ function getConfig(locale) {
133
+ return textConfig[locale];
134
+ }
135
+
136
+ /**
137
+ * 获取每日频率文案
138
+ * @param frequency 频率数字
139
+ * @param locale 语言设置
140
+ * @returns 格式化的每日频率文案
141
+ */
142
+ function getDailyFrequencyText(frequency, locale) {
143
+ if (frequency === 1) {
144
+ return getText(locale, 'daily');
145
+ }
146
+ var config = textConfig[locale];
147
+ if (locale === 'en') {
148
+ return "".concat(config.everyPrefix).concat(frequency, " ").concat(config.days);
149
+ } else {
150
+ return "".concat(config.everyPrefix).concat(frequency).concat(config.days);
151
+ }
152
+ }
153
+
154
+ /**
155
+ * 获取每周频率前缀文案
156
+ * @param frequency 频率数字
157
+ * @param locale 语言设置
158
+ * @returns 格式化的每周频率前缀文案
159
+ */
160
+ function getWeeklyFrequencyPrefix(frequency, locale) {
161
+ if (frequency === 1) {
162
+ return '';
163
+ }
164
+ var config = textConfig[locale];
165
+ if (locale === 'en') {
166
+ return "".concat(config.everyPrefix).concat(frequency, " ").concat(config.weeks, ", ");
167
+ } else {
168
+ return "".concat(config.everyPrefix).concat(frequency).concat(config.weeks, " ");
169
+ }
170
+ }
171
+
172
+ /**
173
+ * 格式化日期时间函数
174
+ * @param dateTime 日期时间字符串
175
+ * @param isAll 是否为全天
176
+ * @param locale 语言设置
177
+ * @returns 格式化后的日期时间字符串
178
+ */
179
+ function formatDateTime(dateTime) {
180
+ var isAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
181
+ var locale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'zh-CN';
182
+ var date = dayjs(dateTime);
183
+ var config = getConfig(locale);
184
+ if (isAll) {
185
+ // 全天情况下的日期格式
186
+ return date.format(config.dateFormat);
187
+ }
188
+
189
+ // 非全天情况下的日期时间格式
190
+ return date.format(config.dateTimeFormat);
191
+ }
192
+
193
+ /**
194
+ * 判断是否为全天日程
195
+ * @param startTime 开始时间 (HH:mm格式)
196
+ * @param endTime 结束时间 (HH:mm格式)
197
+ * @returns 是否为全天日程
198
+ */
199
+ function isAllDaySchedule(startTime, endTime) {
200
+ return startTime === CONSTANTS.ALL_DAY_START && endTime === CONSTANTS.ALL_DAY_END;
201
+ }
202
+
203
+ /**
204
+ * 生成日期范围文案
205
+ * @param startDate 开始日期
206
+ * @param endDate 结束日期
207
+ * @param isStarted 是否已开始
208
+ * @param locale 语言设置
209
+ * @param isAllDay 是否为全天
210
+ * @returns 格式化的日期范围文案
211
+ */
212
+ function formatDateRange(startDate, endDate, isStarted, locale) {
213
+ var isAllDay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
214
+ var config = getConfig(locale);
215
+ if (isStarted) {
216
+ var endDateStr = formatDateTime(endDate, isAllDay, locale);
217
+ return "".concat(config.until).concat(endDateStr);
218
+ } else {
219
+ var startDateStr = formatDateTime(startDate, isAllDay, locale);
220
+ var _endDateStr = formatDateTime(endDate, isAllDay, locale);
221
+ return "".concat(startDateStr).concat(config.rangeSeparator).concat(_endDateStr);
222
+ }
223
+ }
224
+
225
+ /**
226
+ * 获取schedule摘要信息
227
+ * @param scheduleList 日程列表
228
+ * @param locale 语言设置
229
+ * @returns 摘要文本
230
+ */
231
+ export function getScheduleSummary(scheduleList) {
232
+ var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'zh-CN';
233
+ try {
234
+ // 输入验证
235
+ if (!scheduleList || !Array.isArray(scheduleList)) {
236
+ return '';
237
+ }
238
+
239
+ // 如果是多个日程,直接返回多规则提示
240
+ if (scheduleList.length > 1) {
241
+ return getText(locale, 'multipleRules');
242
+ }
243
+
244
+ // 如果没有日程,返回空字符串
245
+ if (scheduleList.length === 0) {
246
+ return '';
247
+ }
248
+ var schedule = scheduleList[0];
249
+ if (!schedule) {
250
+ return '';
251
+ }
252
+ var now = dayjs();
253
+
254
+ // 获取日程开始时间
255
+ var startTime = null;
256
+ if (schedule.start_time) {
257
+ startTime = dayjs(schedule.start_time);
258
+ } else if (schedule.designation && schedule.designation.length > 0) {
259
+ // designation类型,取第一个日期作为开始时间
260
+ var firstDesignation = schedule.designation[0];
261
+ if (firstDesignation && firstDesignation.start_date && firstDesignation.start_time) {
262
+ startTime = dayjs("".concat(firstDesignation.start_date, " ").concat(firstDesignation.start_time));
263
+ }
264
+ }
265
+
266
+ // 判断开始时间是否在当前时间之后
267
+ var isStarted = startTime ? isTimeStarted(now, startTime) : false;
268
+
269
+ // 根据不同类型和状态返回摘要
270
+ return generateSummaryText(schedule, isStarted, locale);
271
+ } catch (error) {
272
+ console.warn('Error in getScheduleSummary:', error);
273
+ return '';
274
+ }
275
+ }
276
+
277
+ /**
278
+ * 判断开始时间是否在当前时间之后
279
+ * @param now 当前时间
280
+ * @param startTime 开始时间
281
+ * @returns 是否已开始
282
+ */
283
+ function isTimeStarted(now, startTime) {
284
+ return startTime.isBefore(now);
285
+ }
286
+
287
+ /**
288
+ * 生成摘要文本
289
+ * @param schedule 日程对象
290
+ * @param isStarted 是否已开始
291
+ * @param locale 语言设置
292
+ * @returns 生成的摘要文本
293
+ */
294
+ function generateSummaryText(schedule, isStarted, locale) {
295
+ // 1. 多天多段 (designation类型且有多个日期段)
296
+ if (schedule.type === 'designation' && schedule.designation && schedule.designation.length > 1) {
297
+ return getText(locale, 'multipleRules');
298
+ }
299
+
300
+ // 2. 单日多段 (time-slots类型)
301
+ if (schedule.type === 'time-slots') {
302
+ var endDate = getScheduleEndDate(schedule);
303
+ if (!endDate) return '';
304
+ var endDateStr = formatDateTime(endDate, true, locale);
305
+ var prefix = '';
306
+ var suffix = getText(locale, 'multipleSlots');
307
+ return "".concat(prefix).concat(endDateStr).concat(suffix);
308
+ }
309
+
310
+ // 3. 循环日程
311
+ if (schedule.repeat_type !== 'none' && schedule.repeat_rule) {
312
+ return generateRecurringSummary(schedule, isStarted, locale);
313
+ }
314
+
315
+ // 4. 单个日程(包括designation类型的单个日期段)
316
+ return generateSingleScheduleSummary(schedule, isStarted, locale);
317
+ }
318
+
319
+ /**
320
+ * 生成循环日程摘要
321
+ * @param schedule 日程对象
322
+ * @param isStarted 是否已开始
323
+ * @param locale 语言设置
324
+ * @returns 循环日程摘要文本
325
+ */
326
+ function generateRecurringSummary(schedule, isStarted, locale) {
327
+ var repeat_type = schedule.repeat_type,
328
+ repeat_rule = schedule.repeat_rule;
329
+ if (!repeat_rule) return '';
330
+ var frequency = repeat_rule.frequency,
331
+ frequency_date = repeat_rule.frequency_date,
332
+ end = repeat_rule.end;
333
+
334
+ // 特殊处理:当 end.type === 'never' 时的格式
335
+ if (end.type === 'never') {
336
+ return generateNeverEndingRecurringSummary(schedule, isStarted, locale, repeat_type, frequency, frequency_date);
337
+ }
338
+
339
+ // 原有逻辑:有结束时间的循环日程
340
+ var endDate = getScheduleEndDate(schedule);
341
+ if (!endDate) return '';
342
+ var endDateStr = formatDateTime(endDate, true, locale);
343
+
344
+ // 按天循环
345
+ if (repeat_type === 'daily') {
346
+ var frequencyText = getDailyFrequencyText(frequency, locale);
347
+ var dateRange = formatDateRange(schedule.start_time, endDate, isStarted, locale, true);
348
+ return "".concat(dateRange, "\uFF0C").concat(frequencyText);
349
+ }
350
+
351
+ // 按周循环
352
+ if (repeat_type === 'weekly') {
353
+ var weekdaysText = getWeekdayText(frequency_date, locale, '/');
354
+ var frequencyPrefix = getWeeklyFrequencyPrefix(frequency, locale);
355
+ var config = getConfig(locale);
356
+ var _dateRange = formatDateRange(schedule.start_time, endDate, isStarted, locale, true);
357
+ return "".concat(_dateRange, "\uFF0C").concat(frequencyPrefix).concat(config.weekPrefix).concat(weekdaysText);
358
+ }
359
+ return '';
360
+ }
361
+
362
+ /**
363
+ * 生成永不结束的循环日程摘要
364
+ * @param schedule 日程对象
365
+ * @param isStarted 是否已开始
366
+ * @param locale 语言设置
367
+ * @param repeatType 循环类型
368
+ * @param frequency 频率
369
+ * @param frequencyDate 频率日期数组(用于周循环)
370
+ * @returns 永不结束的循环日程摘要文本
371
+ */
372
+ function generateNeverEndingRecurringSummary(schedule, isStarted, locale, repeatType, frequency, frequencyDate) {
373
+ var config = getConfig(locale);
374
+
375
+ // 按天循环
376
+ if (repeatType === 'daily') {
377
+ if (frequency === 1) {
378
+ // 频率=1:中文"自 YYYY-MM-DD 起长期有效",英文"Valid from DD MMM YYYY, no expiry"
379
+ if (schedule.start_time) {
380
+ var startDateStr = formatDateTime(schedule.start_time, true, locale);
381
+ return "".concat(config.longTermValidFrom).concat(startDateStr).concat(config.noExpiry);
382
+ }
383
+ return '';
384
+ } else {
385
+ // 频率>1:中文"每2天可用",英文"Every 2 days"
386
+ var frequencyText = getDailyFrequencyText(frequency, locale);
387
+ if (locale === 'en') {
388
+ return "".concat(frequencyText);
389
+ } else {
390
+ return "".concat(frequencyText).concat(config.available);
391
+ }
392
+ }
393
+ }
394
+
395
+ // 按周循环
396
+ if (repeatType === 'weekly') {
397
+ var weekdaysText = getWeekdayText(frequencyDate, locale, locale === 'en' ? ' & ' : '/');
398
+ if (frequency === 1) {
399
+ // 频率=1:中文"每周三/五可用",英文"on Wed & Fri"
400
+ if (locale === 'en') {
401
+ return "".concat(config.on).concat(weekdaysText);
402
+ } else {
403
+ return "".concat(config.everyPrefix).concat(config.weekPrefix).concat(weekdaysText).concat(config.available);
404
+ }
405
+ } else {
406
+ // 频率>1:中文"每2周 周三/五",英文"Every 2 weeks, on Wed & Fri"
407
+ var frequencyPrefix = getWeeklyFrequencyPrefix(frequency, locale);
408
+ if (locale === 'en') {
409
+ return "".concat(frequencyPrefix).concat(config.on).concat(weekdaysText);
410
+ } else {
411
+ return "".concat(frequencyPrefix).concat(config.weekPrefix).concat(weekdaysText);
412
+ }
413
+ }
414
+ }
415
+ return '';
416
+ }
417
+
418
+ /**
419
+ * 生成单个日程摘要
420
+ * @param schedule 日程对象
421
+ * @param isStarted 是否已开始
422
+ * @param locale 语言设置
423
+ * @returns 单个日程摘要文本
424
+ */
425
+ function generateSingleScheduleSummary(schedule, isStarted, locale) {
426
+ var isAllDay = schedule.is_all === 1;
427
+
428
+ // 处理designation类型的单个日期段
429
+ if (schedule.type === 'designation' && schedule.designation && schedule.designation.length === 1) {
430
+ var designation = schedule.designation[0];
431
+ var startDate = designation.start_date;
432
+ var endDate = designation.end_date;
433
+ var startTime = designation.start_time;
434
+ var endTime = designation.end_time;
435
+
436
+ // 判断是否为全天
437
+ var isDesignationAllDay = isAllDaySchedule(startTime, endTime);
438
+ if (isDesignationAllDay || isAllDay) {
439
+ // 全天日程
440
+ return formatDateRange(startDate, endDate, isStarted, locale, true);
441
+ } else {
442
+ // 非全天日程
443
+ var startDateTime = "".concat(startDate, " ").concat(startTime).concat(CONSTANTS.SECONDS_SUFFIX);
444
+ var endDateTime = "".concat(endDate, " ").concat(endTime).concat(CONSTANTS.SECONDS_SUFFIX);
445
+ return formatDateRange(startDateTime, endDateTime, isStarted, locale, false);
446
+ }
447
+ }
448
+
449
+ // 标准日程处理
450
+ if (isAllDay) {
451
+ // 全天日程
452
+ var _endDate = getScheduleEndDate(schedule);
453
+ if (!_endDate) return '';
454
+ return formatDateRange(schedule.start_time, _endDate, isStarted, locale, true);
455
+ } else {
456
+ // 非全天日程
457
+ return formatDateRange(schedule.start_time, schedule.end_time, isStarted, locale, false);
458
+ }
459
+ }
460
+
461
+ /**
462
+ * 获取日程结束日期
463
+ * @param schedule 日程对象
464
+ * @returns 结束日期字符串,如果无法确定则返回null
465
+ */
466
+ function getScheduleEndDate(schedule) {
467
+ try {
468
+ // 循环日程
469
+ if (schedule.repeat_rule) {
470
+ if (schedule.repeat_rule.end.type === 'never') {
471
+ // 无限期的情况,返回一个合理的未来日期作为显示
472
+ var futureDate = dayjs().add(CONSTANTS.DEFAULT_FUTURE_YEARS, 'year');
473
+ return "".concat(futureDate.format('YYYY-MM-DD'), " ").concat(CONSTANTS.ALL_DAY_END).concat(CONSTANTS.SECONDS_SUFFIX);
474
+ } else if (schedule.repeat_rule.end.end_date) {
475
+ return "".concat(schedule.repeat_rule.end.end_date, " ").concat(CONSTANTS.ALL_DAY_END).concat(CONSTANTS.SECONDS_SUFFIX);
476
+ }
477
+ }
478
+
479
+ // designation类型
480
+ if (schedule.designation && schedule.designation.length > 0) {
481
+ var lastDesignation = schedule.designation[schedule.designation.length - 1];
482
+ return "".concat(lastDesignation.end_date, " ").concat(lastDesignation.end_time).concat(CONSTANTS.SECONDS_SUFFIX);
483
+ }
484
+
485
+ // 标准日程
486
+ if (schedule.end_time) {
487
+ return schedule.end_time;
488
+ }
489
+
490
+ // time-slots类型
491
+ if (schedule.start_time) {
492
+ return schedule.start_time;
493
+ }
494
+ return null;
495
+ } catch (error) {
496
+ console.warn('Error in getScheduleEndDate:', error);
497
+ return null;
498
+ }
499
+ }
@@ -0,0 +1,7 @@
1
+ declare const webHookApi: {
2
+ warning_log: {
3
+ test: string;
4
+ prod: string;
5
+ };
6
+ };
7
+ export { webHookApi };
@@ -48,18 +48,15 @@ function _numToHexStr(n, bytes) {
48
48
  var v;
49
49
  for (var i = 0; i < bytes; i++) {
50
50
  v = n & 255;
51
- if (v < 16)
52
- str += "0" + v.toString(16);
53
- else
54
- str += v.toString(16);
51
+ if (v < 16) str += "0" + v.toString(16);
52
+ else str += v.toString(16);
55
53
  n >>= 8;
56
54
  }
57
55
  return str;
58
56
  }
59
57
  function _unicodeToUtf8(unicode) {
60
58
  var c1, c2, c3, c4;
61
- if (unicode < 0)
62
- return "";
59
+ if (unicode < 0) return "";
63
60
  if (unicode <= 127) {
64
61
  c1 = unicode & 127;
65
62
  return _numToHexStr(c1, 1);
@@ -133,8 +130,7 @@ EscPosPrinter.prototype.appendText = function(str) {
133
130
  this.orderData += _unicodeToUtf8(str.charCodeAt(i));
134
131
  };
135
132
  EscPosPrinter.prototype.lineFeed = function(n) {
136
- for (var i = 0; i < n; i++)
137
- this.orderData += "0a";
133
+ for (var i = 0; i < n; i++) this.orderData += "0a";
138
134
  };
139
135
  EscPosPrinter.prototype.restoreDefaultSettings = function() {
140
136
  this.charHSize = 1;
@@ -144,24 +140,19 @@ EscPosPrinter.prototype.restoreDefaultLineSpacing = function() {
144
140
  this.orderData += "1b32";
145
141
  };
146
142
  EscPosPrinter.prototype.setLineSpacing = function(n) {
147
- if (n >= 0 && n <= 255)
148
- this.orderData += "1b33" + _numToHexStr(n, 1);
143
+ if (n >= 0 && n <= 255) this.orderData += "1b33" + _numToHexStr(n, 1);
149
144
  };
150
145
  EscPosPrinter.prototype.setPrintModes = function(bold, double_h, double_w) {
151
146
  var n = 0;
152
- if (bold)
153
- n |= 8;
154
- if (double_h)
155
- n |= 16;
156
- if (double_w)
157
- n |= 32;
147
+ if (bold) n |= 8;
148
+ if (double_h) n |= 16;
149
+ if (double_w) n |= 32;
158
150
  this.charHSize = double_w ? 2 : 1;
159
151
  this.orderData += "1b21" + _numToHexStr(n, 1);
160
152
  };
161
153
  EscPosPrinter.prototype.setCharacterSize = function(h, w) {
162
154
  var n = 0;
163
- if (h >= 1 && h <= 8)
164
- n |= h - 1;
155
+ if (h >= 1 && h <= 8) n |= h - 1;
165
156
  if (w >= 1 && w <= 8) {
166
157
  n |= w - 1 << 4;
167
158
  this.charHSize = w;
@@ -169,20 +160,16 @@ EscPosPrinter.prototype.setCharacterSize = function(h, w) {
169
160
  this.orderData += "1d21" + _numToHexStr(n, 1);
170
161
  };
171
162
  EscPosPrinter.prototype.horizontalTab = function(n) {
172
- for (var i = 0; i < n; i++)
173
- this.orderData += "09";
163
+ for (var i = 0; i < n; i++) this.orderData += "09";
174
164
  };
175
165
  EscPosPrinter.prototype.setAbsolutePrintPosition = function(n) {
176
- if (n >= 0 && n <= 65535)
177
- this.orderData += "1b24" + _numToHexStr(n, 2);
166
+ if (n >= 0 && n <= 65535) this.orderData += "1b24" + _numToHexStr(n, 2);
178
167
  };
179
168
  EscPosPrinter.prototype.setRelativePrintPosition = function(n) {
180
- if (n >= -32768 && n <= 32767)
181
- this.orderData += "1b5c" + _numToHexStr(n, 2);
169
+ if (n >= -32768 && n <= 32767) this.orderData += "1b5c" + _numToHexStr(n, 2);
182
170
  };
183
171
  EscPosPrinter.prototype.setAlignment = function(n) {
184
- if (n >= 0 && n <= 2)
185
- this.orderData += "1b61" + _numToHexStr(n, 1);
172
+ if (n >= 0 && n <= 2) this.orderData += "1b61" + _numToHexStr(n, 1);
186
173
  };
187
174
  EscPosPrinter.prototype.cutPaper = function(fullCut) {
188
175
  this.orderData += "1d56" + (fullCut ? "30" : "31");
@@ -213,10 +200,8 @@ function _columnAlignment(v) {
213
200
  }
214
201
  EscPosPrinter.prototype.setColumnWidths = function() {
215
202
  var i, remain, width, alignment;
216
- if (arguments.length == 0)
217
- return;
218
- for (i = 0; i < MAX_COLUMNS; i++)
219
- this.widthOfColumns[i] = 0;
203
+ if (arguments.length == 0) return;
204
+ for (i = 0; i < MAX_COLUMNS; i++) this.widthOfColumns[i] = 0;
220
205
  remain = this.dotsPerLine;
221
206
  for (i = 0; i < arguments.length; i++) {
222
207
  if (i == MAX_COLUMNS)
@@ -237,12 +222,10 @@ EscPosPrinter.prototype.printInColumns = function() {
237
222
  var strwidth = new Array(MAX_COLUMNS);
238
223
  var i, j, c, w, columns, width, alignment, pos;
239
224
  var done;
240
- if (arguments.length == 0)
241
- return;
225
+ if (arguments.length == 0) return;
242
226
  columns = 0;
243
227
  for (i = 0; i < arguments.length; i++) {
244
- if (i == MAX_COLUMNS || this.widthOfColumns[i] == 0)
245
- break;
228
+ if (i == MAX_COLUMNS || this.widthOfColumns[i] == 0) break;
246
229
  strcurr[i] = "";
247
230
  strrem[i] = arguments[i];
248
231
  columns++;
@@ -279,10 +262,8 @@ EscPosPrinter.prototype.printInColumns = function() {
279
262
  }
280
263
  }
281
264
  }
282
- if (j < strrem[i].length)
283
- strrem[i] = strrem[i].substring(j);
284
- else
285
- strrem[i] = "";
265
+ if (j < strrem[i].length) strrem[i] = strrem[i].substring(j);
266
+ else strrem[i] = "";
286
267
  alignment = _columnAlignment(this.widthOfColumns[i]);
287
268
  switch (alignment) {
288
269
  case ALIGN_CENTER:
@@ -298,24 +279,17 @@ EscPosPrinter.prototype.printInColumns = function() {
298
279
  this.appendText(strcurr[i]);
299
280
  pos += width;
300
281
  }
301
- if (!done)
302
- this.lineFeed(1);
282
+ if (!done) this.lineFeed(1);
303
283
  } while (!done);
304
284
  };
305
285
  EscPosPrinter.prototype.appendBarcode = function(hri_pos, height, module_size, barcode_type, text) {
306
286
  var text_length = text.length;
307
- if (text_length == 0)
308
- return;
309
- if (text_length > 255)
310
- text_length = 255;
311
- if (height < 1)
312
- height = 1;
313
- else if (height > 255)
314
- height = 255;
315
- if (module_size < 1)
316
- module_size = 1;
317
- else if (module_size > 6)
318
- module_size = 6;
287
+ if (text_length == 0) return;
288
+ if (text_length > 255) text_length = 255;
289
+ if (height < 1) height = 1;
290
+ else if (height > 255) height = 255;
291
+ if (module_size < 1) module_size = 1;
292
+ else if (module_size > 6) module_size = 6;
319
293
  this.orderData += "1d48" + _numToHexStr(hri_pos & 3, 1);
320
294
  this.orderData += "1d6600";
321
295
  this.orderData += "1d68" + _numToHexStr(height, 1);
@@ -326,18 +300,12 @@ EscPosPrinter.prototype.appendBarcode = function(hri_pos, height, module_size, b
326
300
  };
327
301
  EscPosPrinter.prototype.appendQRcode = function(module_size, ec_level, text) {
328
302
  var text_length = text.length;
329
- if (text_length == 0)
330
- return;
331
- if (text_length > 65535)
332
- text_length = 65535;
333
- if (module_size < 1)
334
- module_size = 1;
335
- else if (module_size > 16)
336
- module_size = 16;
337
- if (ec_level < 0)
338
- ec_level = 0;
339
- else if (ec_level > 3)
340
- ec_level = 3;
303
+ if (text_length == 0) return;
304
+ if (text_length > 65535) text_length = 65535;
305
+ if (module_size < 1) module_size = 1;
306
+ else if (module_size > 16) module_size = 16;
307
+ if (ec_level < 0) ec_level = 0;
308
+ else if (ec_level > 3) ec_level = 3;
341
309
  this.orderData += "1d286b040031410000";
342
310
  this.orderData += "1d286b03003143" + _numToHexStr(module_size, 1);
343
311
  this.orderData += "1d286b03003145" + _numToHexStr(ec_level + 48, 1);
@@ -347,10 +315,8 @@ EscPosPrinter.prototype.appendQRcode = function(module_size, ec_level, text) {
347
315
  this.orderData += "1d286b0300315130";
348
316
  };
349
317
  function _diffuseDither(src_data, width, height) {
350
- if (width <= 0 || height <= 0)
351
- return null;
352
- if (src_data.length < width * height)
353
- return null;
318
+ if (width <= 0 || height <= 0) return null;
319
+ if (src_data.length < width * height) return null;
354
320
  var bmwidth = width + 7 >> 3;
355
321
  var dst_data = new Array(bmwidth * height);
356
322
  var line_buffer = new Array(2 * width);
@@ -404,14 +370,11 @@ function _diffuseDither(src_data, width, height) {
404
370
  e5 = err * 5 + 8 >> 4;
405
371
  e3 = err * 3 + 8 >> 4;
406
372
  e1 = err - (e7 + e5 + e3);
407
- if (x < width)
408
- line_buffer[line1 * width + b1] += e7;
373
+ if (x < width) line_buffer[line1 * width + b1] += e7;
409
374
  if (not_last_line) {
410
375
  line_buffer[line2 * width + b2] += e5;
411
- if (x > 1)
412
- line_buffer[line2 * width + b2 - 1] += e3;
413
- if (x < width)
414
- line_buffer[line2 * width + b2 + 1] += e1;
376
+ if (x > 1) line_buffer[line2 * width + b2 - 1] += e3;
377
+ if (x < width) line_buffer[line2 * width + b2 + 1] += e1;
415
378
  }
416
379
  b2++;
417
380
  }
@@ -419,10 +382,8 @@ function _diffuseDither(src_data, width, height) {
419
382
  return dst_data;
420
383
  }
421
384
  function _thresholdDither(src_data, width, height) {
422
- if (width <= 0 || height <= 0)
423
- return null;
424
- if (src_data.length < width * height)
425
- return null;
385
+ if (width <= 0 || height <= 0) return null;
386
+ if (src_data.length < width * height) return null;
426
387
  var bmwidth = width + 7 >> 3;
427
388
  var dst_data = new Array(bmwidth * height);
428
389
  var p, q, k, x, y, mask;
@@ -466,8 +427,7 @@ EscPosPrinter.prototype.appendImage = function(imgdata, dither) {
466
427
  var w = imgdata.width;
467
428
  var h = imgdata.height;
468
429
  gray_data = _convertToGray(imgdata, w, h);
469
- if (dither == "diffuse")
470
- mono_data = _diffuseDither(gray_data, w, h);
430
+ if (dither == "diffuse") mono_data = _diffuseDither(gray_data, w, h);
471
431
  else
472
432
  mono_data = _thresholdDither(gray_data, w, h);
473
433
  w = w + 7 >> 3;
@@ -488,16 +448,13 @@ EscPosPrinter.prototype.setPrintAreaInPageMode = function(x, y, w, h) {
488
448
  this.orderData += _numToHexStr(h, 2);
489
449
  };
490
450
  EscPosPrinter.prototype.setPrintDirectionInPageMode = function(dir) {
491
- if (dir >= 0 && dir <= 3)
492
- this.orderData += "1b54" + _numToHexStr(dir, 1);
451
+ if (dir >= 0 && dir <= 3) this.orderData += "1b54" + _numToHexStr(dir, 1);
493
452
  };
494
453
  EscPosPrinter.prototype.setAbsolutePrintPositionInPageMode = function(n) {
495
- if (n >= 0 && n <= 65535)
496
- this.orderData += "1d24" + _numToHexStr(n, 2);
454
+ if (n >= 0 && n <= 65535) this.orderData += "1d24" + _numToHexStr(n, 2);
497
455
  };
498
456
  EscPosPrinter.prototype.setRelativePrintPositionInPageMode = function(n) {
499
- if (n >= -32768 && n <= 32767)
500
- this.orderData += "1d5c" + _numToHexStr(n, 2);
457
+ if (n >= -32768 && n <= 32767) this.orderData += "1d5c" + _numToHexStr(n, 2);
501
458
  };
502
459
  EscPosPrinter.prototype.printAndExitPageMode = function() {
503
460
  this.orderData += "0c";
@@ -49,7 +49,7 @@ var preparing = async (ip, sn, params) => {
49
49
  printer.lineFeed(1);
50
50
  printer.setPrintModes(false, false, false);
51
51
  printer.setAlignment(import_EscPosPrinter.ALIGN_CENTER);
52
- printer.appendText("\u6253\u5370\u6D4B\u8BD5\n");
52
+ printer.appendText("打印测试\n");
53
53
  dividing(printer);
54
54
  printer.setAlignment(import_EscPosPrinter.ALIGN_LEFT);
55
55
  printer.appendText("Order time: 2023-10-19 14:15:50\n");
@@ -64,7 +64,7 @@ var preparing = async (ip, sn, params) => {
64
64
  printer.setPrintModes(true, true, true);
65
65
  printer.printInColumns(
66
66
  "1 x",
67
- "\u6211\u662F\u5F88\u957F\u7684\u5546\u54C1\u540D\u79F0\u6211\u662F\u5F88\u957F\u7684\u5546\u54C1\u540D\u79F0\u6211\u662F\u5F88\u957F\u7684\u5546\u54C1\u540D\u79F0\u6211\u662F\u5F88\u957F\u7684\u5546\u54C1\u540D\u79F0"
67
+ "我是很长的商品名称我是很长的商品名称我是很长的商品名称我是很长的商品名称"
68
68
  );
69
69
  printer.setPrintModes(false, false, false);
70
70
  dividing(printer);
package/lib/image.js CHANGED
@@ -48,8 +48,7 @@ var getImageSize = (url) => {
48
48
  success: false,
49
49
  originRatio: 1
50
50
  };
51
- if (typeof url !== "string")
52
- return size;
51
+ if (typeof url !== "string") return size;
53
52
  try {
54
53
  let arr = url.split("__");
55
54
  if (arr[1]) {
package/lib/index.js CHANGED
@@ -37,6 +37,7 @@ __reExport(src_exports, require("./jsBridge"), module.exports);
37
37
  __reExport(src_exports, require("./image"), module.exports);
38
38
  __reExport(src_exports, require("./locales"), module.exports);
39
39
  __reExport(src_exports, require("./arrayUtils"), module.exports);
40
+ __reExport(src_exports, require("./walletValidity"), module.exports);
40
41
  var setPisellUtilsConfig = (config) => {
41
42
  globalThis.pisellUtilsConfig = {
42
43
  ...globalThis.pisellUtilsConfig || {},
@@ -64,5 +65,6 @@ var getPisellUtilsConfig = () => {
64
65
  ...require("./jsBridge"),
65
66
  ...require("./image"),
66
67
  ...require("./locales"),
67
- ...require("./arrayUtils")
68
+ ...require("./arrayUtils"),
69
+ ...require("./walletValidity")
68
70
  });
package/lib/log.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ interface contentItem {
2
+ key: string;
3
+ value: string;
4
+ }
5
+ interface sendWebhookProps {
6
+ title: string;
7
+ content: contentItem[];
8
+ }
9
+ export declare const sendWarningLog: ({ title, content }: sendWebhookProps) => Promise<any>;
10
+ export {};
@@ -0,0 +1,349 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/walletValidity.ts
30
+ var walletValidity_exports = {};
31
+ __export(walletValidity_exports, {
32
+ getScheduleSummary: () => getScheduleSummary
33
+ });
34
+ module.exports = __toCommonJS(walletValidity_exports);
35
+ var import_dayjs = __toESM(require("dayjs"));
36
+ var CONSTANTS = {
37
+ ALL_DAY_START: "00:00",
38
+ ALL_DAY_END: "23:59",
39
+ DEFAULT_FUTURE_YEARS: 10,
40
+ SECONDS_SUFFIX: ":59"
41
+ };
42
+ var textConfig = {
43
+ "zh-HK": {
44
+ weekdays: ["日", "一", "二", "三", "四", "五", "六"],
45
+ separator: "、",
46
+ timeSeparator: "–",
47
+ rangeSeparator: " 至 ",
48
+ periodSeparator: ";",
49
+ timeSlotSeparator: ",",
50
+ every: "每",
51
+ day: "天",
52
+ week: "周",
53
+ month: "月",
54
+ year: "年",
55
+ available: "可用",
56
+ unlimited: "无限期",
57
+ multipleRules: "多規則,點詳情",
58
+ multipleSlots: ",多時段",
59
+ until: "至",
60
+ daily: "每天",
61
+ days: "天",
62
+ weeks: "周",
63
+ everyPrefix: "每",
64
+ weekPrefix: "周",
65
+ dateFormat: "YYYY-MM-DD",
66
+ dateTimeFormat: "YYYY-MM-DD HH:mm",
67
+ longTermValidFrom: "自",
68
+ noExpiry: "起長期有效",
69
+ on: ""
70
+ },
71
+ "zh-CN": {
72
+ weekdays: ["日", "一", "二", "三", "四", "五", "六"],
73
+ separator: "、",
74
+ timeSeparator: "–",
75
+ rangeSeparator: " 至 ",
76
+ periodSeparator: ";",
77
+ timeSlotSeparator: ",",
78
+ every: "每",
79
+ day: "天",
80
+ week: "周",
81
+ month: "月",
82
+ year: "年",
83
+ available: "可用",
84
+ unlimited: "无限期",
85
+ multipleRules: "多规则,点详情",
86
+ multipleSlots: ",多时段",
87
+ until: "至",
88
+ daily: "每天",
89
+ days: "天",
90
+ weeks: "周",
91
+ everyPrefix: "每",
92
+ weekPrefix: "周",
93
+ dateFormat: "YYYY-MM-DD",
94
+ dateTimeFormat: "YYYY-MM-DD HH:mm",
95
+ longTermValidFrom: "自",
96
+ noExpiry: "起长期有效",
97
+ on: ""
98
+ },
99
+ "en": {
100
+ weekdays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
101
+ separator: ", ",
102
+ timeSeparator: "–",
103
+ rangeSeparator: " - ",
104
+ periodSeparator: "; ",
105
+ timeSlotSeparator: ", ",
106
+ every: "every ",
107
+ day: "day",
108
+ week: "week",
109
+ month: "month",
110
+ year: "year",
111
+ available: "available",
112
+ unlimited: "unlimited",
113
+ multipleRules: "Multiple rules, see details",
114
+ multipleSlots: ", multiple slots",
115
+ until: "Until ",
116
+ daily: "daily",
117
+ days: "days",
118
+ weeks: "weeks",
119
+ everyPrefix: "every ",
120
+ weekPrefix: "",
121
+ dateFormat: "DD MMM YYYY",
122
+ dateTimeFormat: "DD MMM YYYY h:mm A",
123
+ longTermValidFrom: "from ",
124
+ noExpiry: ", no expiry",
125
+ on: "on "
126
+ }
127
+ };
128
+ function getWeekdayText(dayNumbers, locale, separator) {
129
+ const config = textConfig[locale];
130
+ return dayNumbers.map((day) => config.weekdays[day]).join(separator || config.separator);
131
+ }
132
+ function getText(locale, key) {
133
+ return textConfig[locale][key];
134
+ }
135
+ function getConfig(locale) {
136
+ return textConfig[locale];
137
+ }
138
+ function getDailyFrequencyText(frequency, locale) {
139
+ if (frequency === 1) {
140
+ return getText(locale, "daily");
141
+ }
142
+ const config = textConfig[locale];
143
+ if (locale === "en") {
144
+ return `${config.everyPrefix}${frequency} ${config.days}`;
145
+ } else {
146
+ return `${config.everyPrefix}${frequency}${config.days}`;
147
+ }
148
+ }
149
+ function getWeeklyFrequencyPrefix(frequency, locale) {
150
+ if (frequency === 1) {
151
+ return "";
152
+ }
153
+ const config = textConfig[locale];
154
+ if (locale === "en") {
155
+ return `${config.everyPrefix}${frequency} ${config.weeks}, `;
156
+ } else {
157
+ return `${config.everyPrefix}${frequency}${config.weeks} `;
158
+ }
159
+ }
160
+ function formatDateTime(dateTime, isAll = false, locale = "zh-CN") {
161
+ const date = (0, import_dayjs.default)(dateTime);
162
+ const config = getConfig(locale);
163
+ if (isAll) {
164
+ return date.format(config.dateFormat);
165
+ }
166
+ return date.format(config.dateTimeFormat);
167
+ }
168
+ function isAllDaySchedule(startTime, endTime) {
169
+ return startTime === CONSTANTS.ALL_DAY_START && endTime === CONSTANTS.ALL_DAY_END;
170
+ }
171
+ function formatDateRange(startDate, endDate, isStarted, locale, isAllDay = false) {
172
+ const config = getConfig(locale);
173
+ if (isStarted) {
174
+ const endDateStr = formatDateTime(endDate, isAllDay, locale);
175
+ return `${config.until}${endDateStr}`;
176
+ } else {
177
+ const startDateStr = formatDateTime(startDate, isAllDay, locale);
178
+ const endDateStr = formatDateTime(endDate, isAllDay, locale);
179
+ return `${startDateStr}${config.rangeSeparator}${endDateStr}`;
180
+ }
181
+ }
182
+ function getScheduleSummary(scheduleList, locale = "zh-CN") {
183
+ try {
184
+ if (!scheduleList || !Array.isArray(scheduleList)) {
185
+ return "";
186
+ }
187
+ if (scheduleList.length > 1) {
188
+ return getText(locale, "multipleRules");
189
+ }
190
+ if (scheduleList.length === 0) {
191
+ return "";
192
+ }
193
+ const schedule = scheduleList[0];
194
+ if (!schedule) {
195
+ return "";
196
+ }
197
+ const now = (0, import_dayjs.default)();
198
+ let startTime = null;
199
+ if (schedule.start_time) {
200
+ startTime = (0, import_dayjs.default)(schedule.start_time);
201
+ } else if (schedule.designation && schedule.designation.length > 0) {
202
+ const firstDesignation = schedule.designation[0];
203
+ if (firstDesignation && firstDesignation.start_date && firstDesignation.start_time) {
204
+ startTime = (0, import_dayjs.default)(`${firstDesignation.start_date} ${firstDesignation.start_time}`);
205
+ }
206
+ }
207
+ const isStarted = startTime ? isTimeStarted(now, startTime) : false;
208
+ return generateSummaryText(schedule, isStarted, locale);
209
+ } catch (error) {
210
+ console.warn("Error in getScheduleSummary:", error);
211
+ return "";
212
+ }
213
+ }
214
+ function isTimeStarted(now, startTime) {
215
+ return startTime.isBefore(now);
216
+ }
217
+ function generateSummaryText(schedule, isStarted, locale) {
218
+ if (schedule.type === "designation" && schedule.designation && schedule.designation.length > 1) {
219
+ return getText(locale, "multipleRules");
220
+ }
221
+ if (schedule.type === "time-slots") {
222
+ const endDate = getScheduleEndDate(schedule);
223
+ if (!endDate) return "";
224
+ const endDateStr = formatDateTime(endDate, true, locale);
225
+ const prefix = "";
226
+ const suffix = getText(locale, "multipleSlots");
227
+ return `${prefix}${endDateStr}${suffix}`;
228
+ }
229
+ if (schedule.repeat_type !== "none" && schedule.repeat_rule) {
230
+ return generateRecurringSummary(schedule, isStarted, locale);
231
+ }
232
+ return generateSingleScheduleSummary(schedule, isStarted, locale);
233
+ }
234
+ function generateRecurringSummary(schedule, isStarted, locale) {
235
+ const { repeat_type, repeat_rule } = schedule;
236
+ if (!repeat_rule) return "";
237
+ const { frequency, frequency_date, end } = repeat_rule;
238
+ if (end.type === "never") {
239
+ return generateNeverEndingRecurringSummary(schedule, isStarted, locale, repeat_type, frequency, frequency_date);
240
+ }
241
+ const endDate = getScheduleEndDate(schedule);
242
+ if (!endDate) return "";
243
+ const endDateStr = formatDateTime(endDate, true, locale);
244
+ if (repeat_type === "daily") {
245
+ const frequencyText = getDailyFrequencyText(frequency, locale);
246
+ const dateRange = formatDateRange(schedule.start_time, endDate, isStarted, locale, true);
247
+ return `${dateRange},${frequencyText}`;
248
+ }
249
+ if (repeat_type === "weekly") {
250
+ const weekdaysText = getWeekdayText(frequency_date, locale, "/");
251
+ const frequencyPrefix = getWeeklyFrequencyPrefix(frequency, locale);
252
+ const config = getConfig(locale);
253
+ const dateRange = formatDateRange(schedule.start_time, endDate, isStarted, locale, true);
254
+ return `${dateRange},${frequencyPrefix}${config.weekPrefix}${weekdaysText}`;
255
+ }
256
+ return "";
257
+ }
258
+ function generateNeverEndingRecurringSummary(schedule, isStarted, locale, repeatType, frequency, frequencyDate) {
259
+ const config = getConfig(locale);
260
+ if (repeatType === "daily") {
261
+ if (frequency === 1) {
262
+ if (schedule.start_time) {
263
+ const startDateStr = formatDateTime(schedule.start_time, true, locale);
264
+ return `${config.longTermValidFrom}${startDateStr}${config.noExpiry}`;
265
+ }
266
+ return "";
267
+ } else {
268
+ const frequencyText = getDailyFrequencyText(frequency, locale);
269
+ if (locale === "en") {
270
+ return `${frequencyText}`;
271
+ } else {
272
+ return `${frequencyText}${config.available}`;
273
+ }
274
+ }
275
+ }
276
+ if (repeatType === "weekly") {
277
+ const weekdaysText = getWeekdayText(frequencyDate, locale, locale === "en" ? " & " : "/");
278
+ if (frequency === 1) {
279
+ if (locale === "en") {
280
+ return `${config.on}${weekdaysText}`;
281
+ } else {
282
+ return `${config.everyPrefix}${config.weekPrefix}${weekdaysText}${config.available}`;
283
+ }
284
+ } else {
285
+ const frequencyPrefix = getWeeklyFrequencyPrefix(frequency, locale);
286
+ if (locale === "en") {
287
+ return `${frequencyPrefix}${config.on}${weekdaysText}`;
288
+ } else {
289
+ return `${frequencyPrefix}${config.weekPrefix}${weekdaysText}`;
290
+ }
291
+ }
292
+ }
293
+ return "";
294
+ }
295
+ function generateSingleScheduleSummary(schedule, isStarted, locale) {
296
+ const isAllDay = schedule.is_all === 1;
297
+ if (schedule.type === "designation" && schedule.designation && schedule.designation.length === 1) {
298
+ const designation = schedule.designation[0];
299
+ const startDate = designation.start_date;
300
+ const endDate = designation.end_date;
301
+ const startTime = designation.start_time;
302
+ const endTime = designation.end_time;
303
+ const isDesignationAllDay = isAllDaySchedule(startTime, endTime);
304
+ if (isDesignationAllDay || isAllDay) {
305
+ return formatDateRange(startDate, endDate, isStarted, locale, true);
306
+ } else {
307
+ const startDateTime = `${startDate} ${startTime}${CONSTANTS.SECONDS_SUFFIX}`;
308
+ const endDateTime = `${endDate} ${endTime}${CONSTANTS.SECONDS_SUFFIX}`;
309
+ return formatDateRange(startDateTime, endDateTime, isStarted, locale, false);
310
+ }
311
+ }
312
+ if (isAllDay) {
313
+ const endDate = getScheduleEndDate(schedule);
314
+ if (!endDate) return "";
315
+ return formatDateRange(schedule.start_time, endDate, isStarted, locale, true);
316
+ } else {
317
+ return formatDateRange(schedule.start_time, schedule.end_time, isStarted, locale, false);
318
+ }
319
+ }
320
+ function getScheduleEndDate(schedule) {
321
+ try {
322
+ if (schedule.repeat_rule) {
323
+ if (schedule.repeat_rule.end.type === "never") {
324
+ const futureDate = (0, import_dayjs.default)().add(CONSTANTS.DEFAULT_FUTURE_YEARS, "year");
325
+ return `${futureDate.format("YYYY-MM-DD")} ${CONSTANTS.ALL_DAY_END}${CONSTANTS.SECONDS_SUFFIX}`;
326
+ } else if (schedule.repeat_rule.end.end_date) {
327
+ return `${schedule.repeat_rule.end.end_date} ${CONSTANTS.ALL_DAY_END}${CONSTANTS.SECONDS_SUFFIX}`;
328
+ }
329
+ }
330
+ if (schedule.designation && schedule.designation.length > 0) {
331
+ const lastDesignation = schedule.designation[schedule.designation.length - 1];
332
+ return `${lastDesignation.end_date} ${lastDesignation.end_time}${CONSTANTS.SECONDS_SUFFIX}`;
333
+ }
334
+ if (schedule.end_time) {
335
+ return schedule.end_time;
336
+ }
337
+ if (schedule.start_time) {
338
+ return schedule.start_time;
339
+ }
340
+ return null;
341
+ } catch (error) {
342
+ console.warn("Error in getScheduleEndDate:", error);
343
+ return null;
344
+ }
345
+ }
346
+ // Annotate the CommonJS export names for ESM import in node:
347
+ 0 && (module.exports = {
348
+ getScheduleSummary
349
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/utils",
3
- "version": "3.0.1",
3
+ "version": "3.0.3",
4
4
  "sideEffects": false,
5
5
  "main": "./lib/index.js",
6
6
  "module": "./es/index.js",
package/es/miniRedux.d.ts DELETED
@@ -1,16 +0,0 @@
1
- interface MiniReduxProps<State, Namespace> {
2
- namespace?: Namespace;
3
- state?: State;
4
- reducers?: any;
5
- effects?: any;
6
- }
7
- export declare const miniRedux: <State extends Record<string, any>, Namespace extends string>({ namespace, state, reducers, effects, }: MiniReduxProps<State, Namespace>) => {
8
- Context: React.Context<{ [K in Namespace]: State; } & {
9
- dispatch: (params: {
10
- type: string;
11
- payload: any;
12
- }) => void;
13
- }>;
14
- Provider: (ComponentUi: any) => any;
15
- };
16
- export {};
@@ -1,16 +0,0 @@
1
- interface MiniReduxProps<State, Namespace> {
2
- namespace?: Namespace;
3
- state?: State;
4
- reducers?: any;
5
- effects?: any;
6
- }
7
- export declare const miniRedux: <State extends Record<string, any>, Namespace extends string>({ namespace, state, reducers, effects, }: MiniReduxProps<State, Namespace>) => {
8
- Context: React.Context<{ [K in Namespace]: State; } & {
9
- dispatch: (params: {
10
- type: string;
11
- payload: any;
12
- }) => void;
13
- }>;
14
- Provider: (ComponentUi: any) => any;
15
- };
16
- export {};