@similie/hyphen-command-server-types 1.0.0 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/index.d.ts +4 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +4 -4
  4. package/dist/index.js.map +1 -1
  5. package/dist/models/index.d.ts +1 -1
  6. package/dist/models/index.d.ts.map +1 -1
  7. package/dist/models/index.js +1 -1
  8. package/dist/models/index.js.map +1 -1
  9. package/dist/modules/index.d.ts +2 -2
  10. package/dist/modules/index.d.ts.map +1 -1
  11. package/dist/modules/index.js +2 -2
  12. package/dist/modules/index.js.map +1 -1
  13. package/dist/modules/loader.d.ts +1 -1
  14. package/dist/modules/loader.d.ts.map +1 -1
  15. package/dist/modules/types.d.ts +1 -1
  16. package/dist/modules/types.d.ts.map +1 -1
  17. package/dist/services/index.d.ts +6 -2
  18. package/dist/services/index.d.ts.map +1 -1
  19. package/dist/services/index.js +6 -2
  20. package/dist/services/index.js.map +1 -1
  21. package/dist/services/jwt.d.ts +12 -0
  22. package/dist/services/jwt.d.ts.map +1 -0
  23. package/dist/services/jwt.js +36 -0
  24. package/dist/services/jwt.js.map +1 -0
  25. package/dist/services/leader-lock.d.ts.map +1 -1
  26. package/dist/services/leader-lock.js +1 -1
  27. package/dist/services/leader-lock.js.map +1 -1
  28. package/dist/services/objectq.d.ts +39 -0
  29. package/dist/services/objectq.d.ts.map +1 -0
  30. package/dist/services/objectq.js +201 -0
  31. package/dist/services/objectq.js.map +1 -0
  32. package/dist/services/secrets.d.ts +14 -0
  33. package/dist/services/secrets.d.ts.map +1 -0
  34. package/dist/services/secrets.js +44 -0
  35. package/dist/services/secrets.js.map +1 -0
  36. package/dist/services/sql.d.ts +27 -0
  37. package/dist/services/sql.d.ts.map +1 -0
  38. package/dist/services/sql.js +86 -0
  39. package/dist/services/sql.js.map +1 -0
  40. package/dist/tools/index.d.ts +1 -1
  41. package/dist/tools/index.d.ts.map +1 -1
  42. package/dist/tools/index.js +1 -1
  43. package/dist/tools/index.js.map +1 -1
  44. package/dist/tools/utils.d.ts +1 -1
  45. package/dist/tools/utils.d.ts.map +1 -1
  46. package/package.json +11 -1
  47. package/CHANGELOG.md +0 -5
  48. package/src/index.ts +0 -4
  49. package/src/models/base-model.ts +0 -13
  50. package/src/models/index.ts +0 -1
  51. package/src/modules/index.ts +0 -2
  52. package/src/modules/loader.ts +0 -67
  53. package/src/modules/types.ts +0 -40
  54. package/src/services/index.ts +0 -2
  55. package/src/services/leader-lock.ts +0 -113
  56. package/src/services/redis.ts +0 -69
  57. package/src/tools/index.ts +0 -1
  58. package/src/tools/utils.ts +0 -349
  59. package/tsconfig.json +0 -46
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export * from "./models";
2
- export * from "./tools";
3
- export * from "./services";
4
- export * from "./modules";
1
+ export * from "./models/index.js";
2
+ export * from "./tools/index.js";
3
+ export * from "./services/index.js";
4
+ export * from "./modules/index.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export * from "./models";
2
- export * from "./tools";
3
- export * from "./services";
4
- export * from "./modules";
1
+ export * from "./models/index.js";
2
+ export * from "./tools/index.js";
3
+ export * from "./services/index.js";
4
+ export * from "./modules/index.js";
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
@@ -1,2 +1,2 @@
1
- export * from "./base-model";
1
+ export * from "./base-model.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -1,2 +1,2 @@
1
- export * from "./base-model";
1
+ export * from "./base-model.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -1,3 +1,3 @@
1
- export * from "./types";
2
- export * from "./loader";
1
+ export * from "./types.js";
2
+ export * from "./loader.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
- export * from "./types";
2
- export * from "./loader";
1
+ export * from "./types.js";
2
+ export * from "./loader.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ModuleContext, LoadedModule } from "./types";
1
+ import type { ModuleContext, LoadedModule } from "./types.js";
2
2
  export declare function loadModulesFromEnv(ctx: ModuleContext): Promise<LoadedModule[]>;
3
3
  export declare function shutdownModules(ctx: ModuleContext, loaded: LoadedModule[]): Promise<void>;
4
4
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/modules/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEzE,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CA6CzB;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,YAAY,EAAE,iBAYvB"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/modules/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5E,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CA6CzB;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,YAAY,EAAE,iBAYvB"}
@@ -1,4 +1,4 @@
1
- import type { RedisCache, LeaderElector } from "../services";
1
+ import type { RedisCache, LeaderElector } from "../services/index.js";
2
2
  import type { Ellipsies } from "@similie/ellipsies";
3
3
  export type EllipsiesInstance = Ellipsies;
4
4
  export type CommandCenterSystemIdentity = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/modules/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE1C,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,OAAO,UAAU,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAE7B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,IAAI,CACF,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/modules/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE1C,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,OAAO,UAAU,CAAC;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAE7B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,IAAI,CACF,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,YAAY,CAAC;IAClB,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC/B,CAAC"}
@@ -1,3 +1,7 @@
1
- export * from "./leader-lock";
2
- export * from "./redis";
1
+ export * from "./leader-lock.js";
2
+ export * from "./redis.js";
3
+ export * from "./jwt.js";
4
+ export * from "./sql.js";
5
+ export * from "./objectq.js";
6
+ export * from "./secrets.js";
3
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -1,3 +1,7 @@
1
- export * from "./leader-lock";
2
- export * from "./redis";
1
+ export * from "./leader-lock.js";
2
+ export * from "./redis.js";
3
+ export * from "./jwt.js";
4
+ export * from "./sql.js";
5
+ export * from "./objectq.js";
6
+ export * from "./secrets.js";
3
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ import jwt, { type SignOptions } from "jsonwebtoken";
2
+ import { type ExpressResponse } from "@similie/ellipsies";
3
+ export declare const signToken: (payload: object, expiresIn?: SignOptions["expiresIn"]) => string;
4
+ export declare const verifyToken: (token: string) => string | jwt.JwtPayload | null;
5
+ export declare const decodeToken: (token: string) => string | jwt.JwtPayload | null;
6
+ export declare const verifyTokenValidity: (req: {
7
+ headers: {
8
+ authentication?: string;
9
+ };
10
+ user?: any;
11
+ }, res: ExpressResponse) => boolean;
12
+ //# sourceMappingURL=jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/services/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAe,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAElE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,SAAS,GACpB,SAAS,MAAM,EACf,YAAW,WAAW,CAAC,WAAW,CAAQ,WAI3C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,mCAOxC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,mCAExC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,KAAK;IACH,OAAO,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,EACD,KAAK,eAAe,YAerB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import jwt, {} from "jsonwebtoken";
2
+ import {} from "@similie/ellipsies";
3
+ export const signToken = (payload, expiresIn = "1h") => {
4
+ const JWT_SECRET = process.env.JWT_CLIENT_SECRET ?? "your_jwt_secret";
5
+ return jwt.sign(payload, JWT_SECRET, { expiresIn });
6
+ };
7
+ export const verifyToken = (token) => {
8
+ try {
9
+ const JWT_SECRET = process.env.JWT_CLIENT_SECRET || "your_jwt_secret";
10
+ return jwt.verify(token, JWT_SECRET);
11
+ }
12
+ catch (error) {
13
+ return null;
14
+ }
15
+ };
16
+ export const decodeToken = (token) => {
17
+ return jwt.decode(token);
18
+ };
19
+ export const verifyTokenValidity = (req, res) => {
20
+ const token = req.headers.authentication?.split(" ")[1];
21
+ if (!token)
22
+ return false;
23
+ const decoded = verifyToken(token);
24
+ if (!decoded)
25
+ return false;
26
+ const { exp, user } = decoded;
27
+ if (!exp)
28
+ return false;
29
+ const valid = Date.now() < exp * 1000;
30
+ if (valid) {
31
+ res.locals.user = decoded;
32
+ req.user = decoded && user ? user : undefined;
33
+ }
34
+ return valid;
35
+ };
36
+ //# sourceMappingURL=jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/services/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAiC,MAAM,cAAc,CAAC;AAElE,OAAO,EAAwB,MAAM,oBAAoB,CAAC;AAE1D,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,OAAe,EACf,YAAsC,IAAI,EAC1C,EAAE;IACF,MAAM,UAAU,GAAW,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;IAC9E,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;QACtE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAGC,EACD,GAAoB,EACpB,EAAE;IACF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAuC,CAAC;IAC9D,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;QAC1B,GAAG,CAAC,IAAI,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"leader-lock.d.ts","sourceRoot":"","sources":["../../src/services/leader-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B,CAAC;AAEF,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,IAAI,CAAC,CAAmB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAE3C,OAAO;IAIP,MAAM,CAAC,GAAG,IAAI,aAAa;IAK3B,IAAI,CAAC,QAAQ,EAAE,MAAM;IAYrB,gEAAgE;IAChE,QAAQ,IAAI,OAAO;IAInB,+CAA+C;IACzC,QAAQ;IASd,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;YAcR,UAAU;YAMV,WAAW;CAU1B"}
1
+ {"version":3,"file":"leader-lock.d.ts","sourceRoot":"","sources":["../../src/services/leader-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAC7B,CAAC;AAEF,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,IAAI,CAAC,CAAmB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAE3C,OAAO;IAIP,MAAM,CAAC,GAAG,IAAI,aAAa;IAK3B,IAAI,CAAC,QAAQ,EAAE,MAAM;IAYrB,gEAAgE;IAChE,QAAQ,IAAI,OAAO;IAInB,+CAA+C;IACzC,QAAQ;IASd,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;YAcR,UAAU;YAMV,WAAW;CAU1B"}
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from "events";
2
2
  import { Redis } from "ioredis";
3
- import Redlock, { Lock } from "redlock";
3
+ import Redlock from "redlock";
4
4
  import { randomUUID } from "crypto";
5
5
  export class LeaderElector extends EventEmitter {
6
6
  static instance;
@@ -1 +1 @@
1
- {"version":3,"file":"leader-lock.js","sourceRoot":"","sources":["../../src/services/leader-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leader-lock.js","sourceRoot":"","sources":["../../src/services/leader-lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * SimilieQuery — a safe, human-friendly mini rule language for JSON filtering.
3
+ */
4
+ export declare class SimilieQuery {
5
+ /**
6
+ * Interpolates placeholders like {device.identity} or {config.apn}
7
+ * in a string or object template using deep path lookup.
8
+ *
9
+ * Supports nested objects, arrays, and strings.
10
+ * Escaped braces {{ ... }} are preserved.
11
+ *
12
+ * @example
13
+ * const tpl = "Device={device.identity} APN={config.apn}";
14
+ * SimilieQuery.interpolate(tpl, { device: { identity: "A1" }, config: { apn: "timor" } });
15
+ * // → "Device=A1 APN=timor"
16
+ */
17
+ static interpolate(template: any, data: Record<string, any>): any;
18
+ /**
19
+ *
20
+ * @param obj The object to query
21
+ * @param path The path to the property, e.g. "a.b[0].c"
22
+ * @param defaultValue The value to return if the path does not exist
23
+ * @returns The value at the specified path or the default value if not found
24
+ *
25
+ * @example
26
+ * const data = { device: { identity: "abc123", info: [{ name: "sensor1" }] } };
27
+ * console.log(get(data, "device.identity")); // "abc123"
28
+ * console.log(get(data, "device.info[0].name")); // "sensor1"
29
+ * console.log(get(data, "device.info[1].name", "N/A"));// "N/A"
30
+ */
31
+ static get(obj: any, path: string, defaultValue?: any): any;
32
+ static evaluate(expr: string, data: Record<string, any>): boolean;
33
+ private static tokenize;
34
+ private static parse;
35
+ private static execute;
36
+ private static contains;
37
+ private static resolveValue;
38
+ }
39
+ //# sourceMappingURL=objectq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectq.d.ts","sourceRoot":"","sources":["../../src/services/objectq.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,YAAY;IACvB;;;;;;;;;;;OAWG;WACW,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IA+BxE;;;;;;;;;;;;OAYG;WACW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG;IAiBlE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;IAQjE,OAAO,CAAC,MAAM,CAAC,QAAQ;IAOvB,OAAO,CAAC,MAAM,CAAC,KAAK;IAsDpB,OAAO,CAAC,MAAM,CAAC,OAAO;IAqCtB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAMvB,OAAO,CAAC,MAAM,CAAC,YAAY;CA2B5B"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * SimilieQuery — a safe, human-friendly mini rule language for JSON filtering.
3
+ */
4
+ export class SimilieQuery {
5
+ /**
6
+ * Interpolates placeholders like {device.identity} or {config.apn}
7
+ * in a string or object template using deep path lookup.
8
+ *
9
+ * Supports nested objects, arrays, and strings.
10
+ * Escaped braces {{ ... }} are preserved.
11
+ *
12
+ * @example
13
+ * const tpl = "Device={device.identity} APN={config.apn}";
14
+ * SimilieQuery.interpolate(tpl, { device: { identity: "A1" }, config: { apn: "timor" } });
15
+ * // → "Device=A1 APN=timor"
16
+ */
17
+ static interpolate(template, data) {
18
+ // recursively walk through arrays and objects
19
+ if (Array.isArray(template)) {
20
+ return template.map((v) => this.interpolate(v, data));
21
+ }
22
+ if (template && typeof template === "object") {
23
+ const result = {};
24
+ for (const [k, v] of Object.entries(template)) {
25
+ result[k] = this.interpolate(v, data);
26
+ }
27
+ return result;
28
+ }
29
+ // only interpolate strings
30
+ if (typeof template !== "string")
31
+ return template;
32
+ // Replace escaped {{ ... }} → keep braces
33
+ const escapeToken = "__ESCAPED_BRACE__";
34
+ template = template.replace(/\{\{(.*?)\}\}/g, (_, inner) => `{${inner}}${escapeToken}`);
35
+ // Match {path.to.value}
36
+ return template
37
+ .replace(/\{([\w.[\]0-9_-]+)\}/g, (_, path) => {
38
+ const value = this.get(data, path);
39
+ return value !== undefined && value !== null ? String(value) : "";
40
+ })
41
+ .replace(new RegExp(escapeToken, "g"), ""); // clean escape markers
42
+ }
43
+ /**
44
+ *
45
+ * @param obj The object to query
46
+ * @param path The path to the property, e.g. "a.b[0].c"
47
+ * @param defaultValue The value to return if the path does not exist
48
+ * @returns The value at the specified path or the default value if not found
49
+ *
50
+ * @example
51
+ * const data = { device: { identity: "abc123", info: [{ name: "sensor1" }] } };
52
+ * console.log(get(data, "device.identity")); // "abc123"
53
+ * console.log(get(data, "device.info[0].name")); // "sensor1"
54
+ * console.log(get(data, "device.info[1].name", "N/A"));// "N/A"
55
+ */
56
+ static get(obj, path, defaultValue) {
57
+ if (!obj || typeof path !== "string")
58
+ return defaultValue;
59
+ // Split by dots but support bracket syntax like "a[0].b"
60
+ const keys = path
61
+ .replace(/\[(\w+)\]/g, ".$1") // convert [0] → .0
62
+ .replace(/^\./, "") // strip leading dot
63
+ .split(".");
64
+ let result = obj;
65
+ for (const key of keys) {
66
+ if (result != null && Object.prototype.hasOwnProperty.call(result, key)) {
67
+ result = result[key];
68
+ }
69
+ else {
70
+ return defaultValue;
71
+ }
72
+ }
73
+ return result;
74
+ }
75
+ static evaluate(expr, data) {
76
+ if (!expr || !expr.trim())
77
+ return true;
78
+ const tokens = this.tokenize(expr);
79
+ const ast = this.parse(tokens);
80
+ return this.execute(ast, data);
81
+ }
82
+ // ---------------- TOKENIZER ----------------
83
+ static tokenize(input) {
84
+ const re = /\s*(>=|<=|==|!=|>|<|IN|NOT IN|CONTAINS|NOT CONTAINS|\(|\)|AND|OR|[A-Za-z0-9_.]+|"[^"]*"|'[^']*'|\[[^\]]*\]|true|false|null)\s*/gi;
85
+ return input.match(re)?.map((t) => t.trim()) ?? [];
86
+ }
87
+ // ---------------- PARSER ----------------
88
+ static parse(tokens) {
89
+ let i = 0;
90
+ const parseExpression = () => {
91
+ let left = parseTerm();
92
+ while (tokens[i] && /^OR$/i.test(tokens[i] || "")) {
93
+ const op = (tokens[i++] || "").toUpperCase();
94
+ const right = parseTerm();
95
+ left = { op, left, right };
96
+ }
97
+ return left;
98
+ };
99
+ const parseTerm = () => {
100
+ let left = parseFactor();
101
+ while (tokens[i] && /^AND$/i.test(tokens[i] || "")) {
102
+ const op = (tokens[i++] || "").toUpperCase();
103
+ const right = parseFactor();
104
+ left = { op, left, right };
105
+ }
106
+ return left;
107
+ };
108
+ const parseFactor = () => {
109
+ if (tokens[i] === "(") {
110
+ i++;
111
+ const expr = parseExpression();
112
+ i++; // skip ')'
113
+ return expr;
114
+ }
115
+ const left = tokens[i++];
116
+ const opParts = [];
117
+ // support multi-word ops like "NOT IN"
118
+ while (tokens[i] &&
119
+ /^(NOT|IN|CONTAINS)$/i.test(tokens[i] || "") &&
120
+ opParts.join(" ").toUpperCase() !== "NOT CONTAINS") {
121
+ opParts.push((tokens[i++] || "").toUpperCase());
122
+ if (opParts.join(" ") === "NOT CONTAINS")
123
+ break;
124
+ }
125
+ const op = opParts.length ? opParts.join(" ") : tokens[i++];
126
+ const right = tokens[i++];
127
+ return { op: (op || "").toUpperCase(), left, right };
128
+ };
129
+ return parseExpression();
130
+ }
131
+ // ---------------- EXECUTOR ----------------
132
+ static execute(node, data) {
133
+ if (!node)
134
+ return false;
135
+ if (node.op === "AND")
136
+ return this.execute(node.left, data) && this.execute(node.right, data);
137
+ if (node.op === "OR")
138
+ return this.execute(node.left, data) || this.execute(node.right, data);
139
+ const leftVal = this.resolveValue(node.left, data);
140
+ const rightVal = this.resolveValue(node.right, data);
141
+ switch (node.op) {
142
+ case "==":
143
+ return leftVal == rightVal;
144
+ case "!=":
145
+ return leftVal != rightVal;
146
+ case ">":
147
+ return leftVal > rightVal;
148
+ case ">=":
149
+ return leftVal >= rightVal;
150
+ case "<":
151
+ return leftVal < rightVal;
152
+ case "<=":
153
+ return leftVal <= rightVal;
154
+ case "IN":
155
+ return Array.isArray(rightVal) ? rightVal.includes(leftVal) : false;
156
+ case "NOT IN":
157
+ return Array.isArray(rightVal) ? !rightVal.includes(leftVal) : true;
158
+ case "CONTAINS":
159
+ return this.contains(rightVal, leftVal);
160
+ case "NOT CONTAINS":
161
+ return !this.contains(rightVal, leftVal);
162
+ default:
163
+ return false;
164
+ }
165
+ }
166
+ static contains(container, value) {
167
+ if (typeof container === "string")
168
+ return container.includes(value);
169
+ if (Array.isArray(container))
170
+ return container.includes(value);
171
+ return false;
172
+ }
173
+ static resolveValue(token, data) {
174
+ if (token === undefined || token === null)
175
+ return null;
176
+ // Array literal
177
+ if (/^\[.*\]$/.test(token)) {
178
+ try {
179
+ return JSON.parse(token.replace(/'/g, '"'));
180
+ }
181
+ catch {
182
+ return [];
183
+ }
184
+ }
185
+ // String literal
186
+ if (/^".*"$|^'.*'$/.test(token))
187
+ return token.slice(1, -1); // remove quotes
188
+ // Boolean
189
+ if (/^(true|false)$/i.test(token))
190
+ return token.toLowerCase() === "true";
191
+ // Null
192
+ if (/^null$/i.test(token))
193
+ return null;
194
+ // Number
195
+ if (!isNaN(Number(token)))
196
+ return Number(token);
197
+ // Otherwise path lookup
198
+ return this.get(data, token);
199
+ }
200
+ }
201
+ //# sourceMappingURL=objectq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectq.js","sourceRoot":"","sources":["../../src/services/objectq.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare class EnvCrypt {
2
+ private readonly _algorithm;
3
+ private readonly _secretKey;
4
+ private _iv;
5
+ constructor(iv: string);
6
+ get convertIv(): Buffer<ArrayBuffer>;
7
+ private get algorithm();
8
+ private get iv();
9
+ static cipherIv(value?: number): string;
10
+ private get secretKey();
11
+ encrypt(text: any): string;
12
+ decrypt: (hash: string) => string;
13
+ }
14
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/services/secrets.ts"],"names":[],"mappings":"AACA,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,GAAG,CAAS;gBACR,EAAE,EAAE,MAAM;IAMtB,IAAW,SAAS,wBAEnB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,EAAE,GAEb;IAED,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM;IAI3C,OAAO,KAAK,SAAS,GAEpB;IAEM,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAO1B,OAAO,GAAI,MAAM,MAAM,YAiB5B;CACH"}
@@ -0,0 +1,44 @@
1
+ import crypto from "crypto";
2
+ export class EnvCrypt {
3
+ _algorithm = "aes-256-ctr";
4
+ _secretKey;
5
+ _iv;
6
+ constructor(iv) {
7
+ this._iv = iv;
8
+ this._secretKey =
9
+ process.env.ENV_SECRET_KEY || "6241caa2f4b730f7edcb3e115c0948d5";
10
+ }
11
+ get convertIv() {
12
+ return Buffer.from(this.iv, "hex");
13
+ }
14
+ get algorithm() {
15
+ return this._algorithm;
16
+ }
17
+ get iv() {
18
+ return this._iv;
19
+ }
20
+ static cipherIv(value = 16) {
21
+ return crypto.randomBytes(value).toString("hex");
22
+ }
23
+ get secretKey() {
24
+ return this._secretKey;
25
+ }
26
+ encrypt(text) {
27
+ const iv = this.convertIv;
28
+ const cipher = crypto.createCipheriv(this.algorithm, this.secretKey, iv);
29
+ const encrypted = Buffer.concat([cipher.update(text), cipher.final()]);
30
+ return encrypted.toString("hex");
31
+ }
32
+ decrypt = (hash) => {
33
+ if (!hash) {
34
+ throw new Error("A String Value is Required");
35
+ }
36
+ const decipher = crypto.createDecipheriv(this.algorithm, this.secretKey, this.convertIv);
37
+ const decrpyted = Buffer.concat([
38
+ decipher.update(Buffer.from(hash, "hex")),
39
+ decipher.final(),
40
+ ]);
41
+ return decrpyted.toString();
42
+ };
43
+ }
44
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/services/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,MAAM,OAAO,QAAQ;IACF,UAAU,GAAG,aAAa,CAAC;IAC3B,UAAU,CAAS;IAC5B,GAAG,CAAS;IACpB,YAAY,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,UAAU;YACb,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,kCAAkC,CAAC;IACrE,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAY,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAAgB,EAAE;QAChC,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,OAAO,CAAC,IAAS;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CACtC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,QAAQ,CAAC,KAAK,EAAE;SACjB,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC;CACH"}
@@ -0,0 +1,27 @@
1
+ import type { UUID } from "../models/index.js";
2
+ import { Client } from "pg";
3
+ export type ListenerFragments = {
4
+ id: number | UUID;
5
+ station: number;
6
+ date: string;
7
+ table: string;
8
+ schema: string;
9
+ context: string;
10
+ };
11
+ export declare class SQLService {
12
+ private readonly _triggers;
13
+ private readonly _listeners;
14
+ private static instance;
15
+ private readonly _client;
16
+ private listerCallbacks;
17
+ private constructor();
18
+ get client(): Client;
19
+ static get i(): SQLService;
20
+ static setup(triggers?: string[], listeners?: Record<string, string>): SQLService;
21
+ getStartTriggersSQL(): string[];
22
+ private listenToChannel;
23
+ private applyClientListeners;
24
+ seedTriggers: () => Promise<void>;
25
+ addListener: (key: string, cb: (payload: ListenerFragments) => void | Promise<void>) => Promise<void>;
26
+ }
27
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/services/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,UAAU;IAOnB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAP7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,eAAe,CAEhB;IACP,OAAO;IAYP,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,WAAkB,CAAC,eAKlB;WAEa,KAAK,CACjB,QAAQ,GAAE,MAAM,EAAO,EACvB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,UAAU;IAON,mBAAmB,IAAI,MAAM,EAAE;IAItC,OAAO,CAAC,eAAe,CAUrB;IAEF,OAAO,CAAC,oBAAoB,CAiB1B;IAEK,YAAY,QAAa,OAAO,CAAC,IAAI,CAAC,CAc3C;IAEK,WAAW,GAChB,KAAK,MAAM,EACX,IAAI,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KACvD,OAAO,CAAC,IAAI,CAAC,CAOd;CACH"}