@edgenets/utils 0.0.26 → 0.0.28

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.d.ts CHANGED
@@ -3,6 +3,8 @@ export * from "./types/product.js";
3
3
  export * from "./types/logger.js";
4
4
  export * from "./types/order.js";
5
5
  export { StringUtils } from "./utils/string.util.js";
6
+ export { SimpleStateMachine, OrderStateMachine, } from "./utils/statemachine.util.js";
7
+ export { SignatureUtils } from "./utils/signature.util.js";
6
8
  export * from "./utils/generate.util.js";
7
9
  export * from "./array/unique.js";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,10 @@ export * from "./types/logger.js";
5
5
  export * from "./types/order.js";
6
6
  // 导出字符串处理函数
7
7
  export { StringUtils } from "./utils/string.util.js";
8
+ // 导出状态机函数
9
+ export { SimpleStateMachine, OrderStateMachine, } from "./utils/statemachine.util.js";
10
+ // 导出签名处理函数
11
+ export { SignatureUtils } from "./utils/signature.util.js";
8
12
  // 导出字符串处理函数
9
13
  export * from "./utils/generate.util.js";
10
14
  // 导出数组处理函数
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,YAAY;AACZ,cAAc,0BAA0B,CAAC;AAEzC,WAAW;AACX,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,UAAU;AACV,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAEtC,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,YAAY;AACZ,cAAc,0BAA0B,CAAC;AAEzC,WAAW;AACX,cAAc,mBAAmB,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare class SignatureManager {
1
+ export declare class SignatureUtils {
2
2
  static generateSignature(data: Record<string, unknown>, secretKey: string): string;
3
3
  static validateSignature(data: Record<string, unknown>, receivedSignature: string, secretKey: string): boolean;
4
4
  private static safeCompare;
@@ -1 +1 @@
1
- {"version":3,"file":"signature.util.d.ts","sourceRoot":"","sources":["../../src/utils/signature.util.ts"],"names":[],"mappings":"AAEA,qBAAa,gBAAgB;WAEb,iBAAiB,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,MAAM,GAChB,MAAM;WAqBK,iBAAiB,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO;IAMV,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,CAAC,MAAM,CAAC,cAAc;WAmBf,yBAAyB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAmB,EAC9B,KAAK,GAAE,MAAoD,GAC1D;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAK3D"}
1
+ {"version":3,"file":"signature.util.d.ts","sourceRoot":"","sources":["../../src/utils/signature.util.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;WAEX,iBAAiB,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,MAAM,GAChB,MAAM;WAqBK,iBAAiB,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO;IAMV,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,CAAC,MAAM,CAAC,cAAc;WAmBf,yBAAyB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAmB,EAC9B,KAAK,GAAE,MAAoD,GAC1D;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;CAK3D"}
@@ -1,5 +1,5 @@
1
1
  import { createHmac } from "crypto";
2
- export class SignatureManager {
2
+ export class SignatureUtils {
3
3
  // 生成签名的方法
4
4
  static generateSignature(data, secretKey) {
5
5
  const sortedData = Object.keys(data)
@@ -1 +1 @@
1
- {"version":3,"file":"signature.util.js","sourceRoot":"","sources":["../../src/utils/signature.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,OAAO,gBAAgB;IAC3B,UAAU;IACH,MAAM,CAAC,iBAAiB,CAC7B,IAA6B,EAC7B,SAAiB;QAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACjC,IAAI,EAAE,CAAC,YAAY;aACnB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CACpC,IAAI,CAAC,cAAc,CAAC,KAAgC,CAAC,CACtD,CAAC;gBACF,OAAO,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;gBAC3D,OAAO,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,OAAO,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,UAAU;IACH,MAAM,CAAC,iBAAiB,CAC7B,IAA6B,EAC7B,iBAAyB,EACzB,SAAiB;QAEjB,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB;IACR,MAAM,CAAC,WAAW,CAAC,CAAS,EAAE,CAAS;QAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,MAAM,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,cAAc;IACN,MAAM,CAAC,cAAc,CAC3B,GAA4B;QAE5B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,IAAI,EAAE;aACN,MAAM,CACL,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC;gBACN,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACzD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAgC,CAAC;oBACvD,CAAC,CAAC,KAAK,CAAC;YACZ,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA6B,CAC9B,CAAC;IACN,CAAC;IAED,qBAAqB;IACd,MAAM,CAAC,yBAAyB,CACrC,IAA6B,EAC7B,SAAiB,EACjB,YAAoB,IAAI,CAAC,GAAG,EAAE,EAC9B,QAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAE3D,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"signature.util.js","sourceRoot":"","sources":["../../src/utils/signature.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,OAAO,cAAc;IACzB,UAAU;IACH,MAAM,CAAC,iBAAiB,CAC7B,IAA6B,EAC7B,SAAiB;QAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACjC,IAAI,EAAE,CAAC,YAAY;aACnB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CACpC,IAAI,CAAC,cAAc,CAAC,KAAgC,CAAC,CACtD,CAAC;gBACF,OAAO,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;gBAC3D,OAAO,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,OAAO,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,UAAU;IACH,MAAM,CAAC,iBAAiB,CAC7B,IAA6B,EAC7B,iBAAyB,EACzB,SAAiB;QAEjB,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB;IACR,MAAM,CAAC,WAAW,CAAC,CAAS,EAAE,CAAS;QAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,MAAM,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,cAAc;IACN,MAAM,CAAC,cAAc,CAC3B,GAA4B;QAE5B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,IAAI,EAAE;aACN,MAAM,CACL,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC;gBACN,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACzD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAgC,CAAC;oBACvD,CAAC,CAAC,KAAK,CAAC;YACZ,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAA6B,CAC9B,CAAC;IACN,CAAC;IAED,qBAAqB;IACd,MAAM,CAAC,yBAAyB,CACrC,IAA6B,EAC7B,SAAiB,EACjB,YAAoB,IAAI,CAAC,GAAG,EAAE,EAC9B,QAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAE3D,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ export declare class SimpleStateMachine {
2
+ private transitions;
3
+ constructor(transitions: Record<string, string[]>);
4
+ /**
5
+ * 检查是否可以从当前状态流转到目标状态
6
+ * @param currentStatus - 当前状态
7
+ * @param targetStatus - 目标状态
8
+ * @returns boolean
9
+ */
10
+ canTransition(currentStatus: string, targetStatus: string): boolean;
11
+ }
12
+ export declare const OrderStateMachine: SimpleStateMachine;
13
+ //# sourceMappingURL=statemachine.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statemachine.util.d.ts","sourceRoot":"","sources":["../../src/utils/statemachine.util.ts"],"names":[],"mappings":"AAEA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAA2B;gBAElC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAIjD;;;;;OAKG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;CAIpE;AAUD,eAAO,MAAM,iBAAiB,oBAA2C,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { OrderStatus } from "../types/order.js";
2
+ export class SimpleStateMachine {
3
+ transitions;
4
+ constructor(transitions) {
5
+ this.transitions = transitions;
6
+ }
7
+ /**
8
+ * 检查是否可以从当前状态流转到目标状态
9
+ * @param currentStatus - 当前状态
10
+ * @param targetStatus - 目标状态
11
+ * @returns boolean
12
+ */
13
+ canTransition(currentStatus, targetStatus) {
14
+ const allowedTransitions = this.transitions[currentStatus] || [];
15
+ return allowedTransitions.includes(targetStatus);
16
+ }
17
+ }
18
+ const orderTransitions = {
19
+ [OrderStatus.Pending]: [OrderStatus.Confirmed, OrderStatus.Canceled],
20
+ [OrderStatus.Confirmed]: [OrderStatus.Completed, OrderStatus.Refunded],
21
+ [OrderStatus.Completed]: [OrderStatus.Refunded],
22
+ [OrderStatus.Canceled]: [], // 已取消无法流转
23
+ [OrderStatus.Refunded]: [], // 已退款无法流转
24
+ };
25
+ export const OrderStateMachine = new SimpleStateMachine(orderTransitions);
26
+ //# sourceMappingURL=statemachine.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statemachine.util.js","sourceRoot":"","sources":["../../src/utils/statemachine.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,kBAAkB;IACrB,WAAW,CAA2B;IAE9C,YAAY,WAAqC;QAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,aAAqB,EAAE,YAAoB;QACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACjE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,gBAAgB,GAAuC;IAC3D,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC;IACpE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC;IACtE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC/C,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU;IACtC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgenets/utils",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "description": "Edgenets utilities package containing common types and utilities.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",