@gennext/lb-infra 0.0.12 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +63 -89
  2. package/dist/base/base.helper.d.ts +4 -2
  3. package/dist/base/base.helper.d.ts.map +1 -1
  4. package/dist/base/base.helper.js +8 -2
  5. package/dist/base/base.helper.js.map +1 -1
  6. package/dist/base/datasources/base.datasource.d.ts +2 -2
  7. package/dist/base/datasources/base.datasource.d.ts.map +1 -1
  8. package/dist/base/datasources/base.datasource.js.map +1 -1
  9. package/dist/base/models/base.model.d.ts +10 -0
  10. package/dist/base/models/base.model.d.ts.map +1 -1
  11. package/dist/base/models/base.model.js +10 -3
  12. package/dist/base/models/base.model.js.map +1 -1
  13. package/dist/datasources/redis/connector.d.ts +1 -1
  14. package/dist/datasources/redis/connector.d.ts.map +1 -1
  15. package/dist/datasources/redis/connector.js +8 -4
  16. package/dist/datasources/redis/connector.js.map +1 -1
  17. package/dist/datasources/redis/types.d.ts +1 -1
  18. package/dist/datasources/redis/types.d.ts.map +1 -1
  19. package/dist/helpers/logger/application-logger.d.ts +0 -3
  20. package/dist/helpers/logger/application-logger.d.ts.map +1 -1
  21. package/dist/helpers/logger/application-logger.js +7 -31
  22. package/dist/helpers/logger/application-logger.js.map +1 -1
  23. package/dist/helpers/logger/common/types.d.ts +0 -7
  24. package/dist/helpers/logger/common/types.d.ts.map +1 -1
  25. package/dist/helpers/logger/common/types.js +1 -10
  26. package/dist/helpers/logger/common/types.js.map +1 -1
  27. package/dist/helpers/logger/config-merger.d.ts +27 -0
  28. package/dist/helpers/logger/config-merger.d.ts.map +1 -0
  29. package/dist/helpers/logger/config-merger.js +55 -0
  30. package/dist/helpers/logger/config-merger.js.map +1 -0
  31. package/dist/helpers/logger/config.d.ts +9 -11
  32. package/dist/helpers/logger/config.d.ts.map +1 -1
  33. package/dist/helpers/logger/config.js +18 -30
  34. package/dist/helpers/logger/config.js.map +1 -1
  35. package/dist/helpers/logger/default-logger.d.ts.map +1 -1
  36. package/dist/helpers/logger/default-logger.js +3 -5
  37. package/dist/helpers/logger/default-logger.js.map +1 -1
  38. package/dist/helpers/logger/enhanced-factory.d.ts +3 -3
  39. package/dist/helpers/logger/enhanced-factory.d.ts.map +1 -1
  40. package/dist/helpers/logger/enhanced-factory.js +10 -7
  41. package/dist/helpers/logger/enhanced-factory.js.map +1 -1
  42. package/dist/helpers/logger/factory.d.ts +1 -37
  43. package/dist/helpers/logger/factory.d.ts.map +1 -1
  44. package/dist/helpers/logger/factory.js +11 -86
  45. package/dist/helpers/logger/factory.js.map +1 -1
  46. package/dist/helpers/logger/http/access-logger.d.ts +14 -5
  47. package/dist/helpers/logger/http/access-logger.d.ts.map +1 -1
  48. package/dist/helpers/logger/http/access-logger.js +186 -157
  49. package/dist/helpers/logger/http/access-logger.js.map +1 -1
  50. package/dist/helpers/logger/http/index.d.ts +1 -1
  51. package/dist/helpers/logger/http/index.d.ts.map +1 -1
  52. package/dist/helpers/logger/http/index.js +1 -1
  53. package/dist/helpers/logger/http/index.js.map +1 -1
  54. package/dist/helpers/logger/http/request-context.d.ts +10 -6
  55. package/dist/helpers/logger/http/request-context.d.ts.map +1 -1
  56. package/dist/helpers/logger/http/request-context.js +32 -22
  57. package/dist/helpers/logger/http/request-context.js.map +1 -1
  58. package/dist/helpers/logger/http/request-id-manager.d.ts +13 -8
  59. package/dist/helpers/logger/http/request-id-manager.d.ts.map +1 -1
  60. package/dist/helpers/logger/http/request-id-manager.js +24 -70
  61. package/dist/helpers/logger/http/request-id-manager.js.map +1 -1
  62. package/dist/helpers/logger/http/types.d.ts +3 -3
  63. package/dist/helpers/logger/http/types.d.ts.map +1 -1
  64. package/dist/helpers/logger/index.d.ts +4 -3
  65. package/dist/helpers/logger/index.d.ts.map +1 -1
  66. package/dist/helpers/logger/index.js +4 -3
  67. package/dist/helpers/logger/index.js.map +1 -1
  68. package/dist/helpers/logger/transports/dgram.transport.d.ts +0 -1
  69. package/dist/helpers/logger/transports/dgram.transport.d.ts.map +1 -1
  70. package/dist/helpers/logger/transports/dgram.transport.js +2 -2
  71. package/dist/helpers/logger/transports/dgram.transport.js.map +1 -1
  72. package/dist/helpers/redis/default.helper.d.ts.map +1 -1
  73. package/dist/helpers/redis/default.helper.js +19 -17
  74. package/dist/helpers/redis/default.helper.js.map +1 -1
  75. package/dist/helpers/redis/index.d.ts.map +1 -1
  76. package/dist/helpers/redis/index.js.map +1 -1
  77. package/dist/helpers/redis/redis-cluster.helper.js +2 -2
  78. package/dist/helpers/redis/redis-cluster.helper.js.map +1 -1
  79. package/dist/helpers/redis/redis.helper.d.ts +34 -0
  80. package/dist/helpers/redis/redis.helper.d.ts.map +1 -1
  81. package/dist/helpers/redis/redis.helper.js +34 -0
  82. package/dist/helpers/redis/redis.helper.js.map +1 -1
  83. package/dist/index.d.ts +4 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +4 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/utilities/crypto.utility.d.ts +28 -0
  88. package/dist/utilities/crypto.utility.d.ts.map +1 -1
  89. package/dist/utilities/crypto.utility.js +28 -0
  90. package/dist/utilities/crypto.utility.js.map +1 -1
  91. package/dist/utilities/date.utility.d.ts +57 -0
  92. package/dist/utilities/date.utility.d.ts.map +1 -1
  93. package/dist/utilities/date.utility.js +58 -16
  94. package/dist/utilities/date.utility.js.map +1 -1
  95. package/dist/utilities/error.utility.d.ts +63 -0
  96. package/dist/utilities/error.utility.d.ts.map +1 -1
  97. package/dist/utilities/error.utility.js +82 -4
  98. package/dist/utilities/error.utility.js.map +1 -1
  99. package/dist/utilities/lodash.utility.d.ts +1 -0
  100. package/dist/utilities/lodash.utility.d.ts.map +1 -1
  101. package/dist/utilities/lodash.utility.js +3 -1
  102. package/dist/utilities/lodash.utility.js.map +1 -1
  103. package/dist/utilities/model.utility.d.ts +15 -0
  104. package/dist/utilities/model.utility.d.ts.map +1 -1
  105. package/dist/utilities/model.utility.js +15 -2
  106. package/dist/utilities/model.utility.js.map +1 -1
  107. package/dist/utilities/module.utility.d.ts +8 -0
  108. package/dist/utilities/module.utility.d.ts.map +1 -1
  109. package/dist/utilities/module.utility.js +10 -2
  110. package/dist/utilities/module.utility.js.map +1 -1
  111. package/dist/utilities/parse.utility.d.ts +59 -0
  112. package/dist/utilities/parse.utility.d.ts.map +1 -1
  113. package/dist/utilities/parse.utility.js +76 -15
  114. package/dist/utilities/parse.utility.js.map +1 -1
  115. package/dist/utilities/performance.utility.d.ts +13 -0
  116. package/dist/utilities/performance.utility.d.ts.map +1 -1
  117. package/dist/utilities/performance.utility.js +15 -2
  118. package/dist/utilities/performance.utility.js.map +1 -1
  119. package/dist/utilities/promise.utility.d.ts +18 -18
  120. package/dist/utilities/promise.utility.d.ts.map +1 -1
  121. package/dist/utilities/promise.utility.js +16 -17
  122. package/dist/utilities/promise.utility.js.map +1 -1
  123. package/dist/utilities/query.utility.d.ts +24 -3
  124. package/dist/utilities/query.utility.d.ts.map +1 -1
  125. package/dist/utilities/query.utility.js +29 -7
  126. package/dist/utilities/query.utility.js.map +1 -1
  127. package/dist/utilities/request.utility.d.ts +36 -3
  128. package/dist/utilities/request.utility.d.ts.map +1 -1
  129. package/dist/utilities/request.utility.js +38 -8
  130. package/dist/utilities/request.utility.js.map +1 -1
  131. package/dist/utilities/url.utility.d.ts +16 -0
  132. package/dist/utilities/url.utility.d.ts.map +1 -1
  133. package/dist/utilities/url.utility.js +16 -0
  134. package/dist/utilities/url.utility.js.map +1 -1
  135. package/package.json +2 -1
@@ -4,11 +4,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.buildBatchUpdateQuery = exports.getValue = exports.getTableDefinition = void 0;
7
- const helpers_1 = require("../helpers");
7
+ const logger_1 = require("../helpers/logger");
8
8
  const get_1 = __importDefault(require("lodash/get"));
9
9
  const pick_1 = __importDefault(require("lodash/pick"));
10
10
  const snakeCase_1 = __importDefault(require("lodash/snakeCase"));
11
11
  const error_utility_1 = require("./error.utility");
12
+ /**
13
+ * Generates table and column definitions for SQL queries based on LoopBack models
14
+ * @param opts - Configuration with model class and optional alias
15
+ * @returns Object containing table name, alias, and column mapping
16
+ * @example
17
+ * const def = getTableDefinition({ model: User, alias: 'u' });
18
+ * // { table: { name: 'User', alias: 'u', ... }, columns: { id: 'u.id', ... } }
19
+ */
12
20
  const getTableDefinition = (opts) => {
13
21
  const { model, alias } = opts;
14
22
  const tableAlias = alias ?? model.name.toLowerCase();
@@ -45,17 +53,27 @@ const getTableDefinition = (opts) => {
45
53
  };
46
54
  };
47
55
  exports.getTableDefinition = getTableDefinition;
48
- // --------------------------------------------------------------------------------
56
+ /**
57
+ * Safely formats a value for use in a SQL query string
58
+ * @param value - The value to format
59
+ * @returns Formatted SQL string value
60
+ * @example
61
+ * getValue('O\'Reilly') // "'O''Reilly'"
62
+ * getValue(123) // "123"
63
+ */
49
64
  const getValue = (value) => {
50
65
  switch (typeof value) {
51
- case null: {
52
- return 'null';
66
+ case 'object': {
67
+ if (value === null) {
68
+ return 'null';
69
+ }
70
+ return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
53
71
  }
54
72
  case 'number': {
55
73
  return value?.toString();
56
74
  }
57
75
  case 'boolean': {
58
- return value;
76
+ return value ? 'true' : 'false';
59
77
  }
60
78
  case 'string': {
61
79
  if (value?.toString().trim() === '') {
@@ -69,12 +87,16 @@ const getValue = (value) => {
69
87
  }
70
88
  };
71
89
  exports.getValue = getValue;
72
- // --------------------------------------------------------------------------------
90
+ /**
91
+ * Builds a PostgreSQL-compatible batch update query using WITH and VALUES
92
+ * @param opts - Configuration for batch update
93
+ * @returns SQL UPDATE query string
94
+ */
73
95
  const buildBatchUpdateQuery = (opts) => {
74
96
  const { data, tableName, keys, setKeys, whereKeys, whereRaws = [] } = opts;
75
97
  const withAlias = 't';
76
98
  if (!data.length || !keys.length || !setKeys.length || !whereKeys.length) {
77
- helpers_1.applicationLogger.error('[batchUpdate] Missing required fields | Data: %d | Keys: %d | Set Keys: %d | Where Keys: %d', data.length, keys.length, setKeys.length, whereKeys.length);
99
+ logger_1.applicationLogger.error('[batchUpdate] Missing required fields | Data: %d | Keys: %d | Set Keys: %d | Where Keys: %d', data.length, keys.length, setKeys.length, whereKeys.length);
78
100
  throw (0, error_utility_1.getError)({
79
101
  message: '[batchUpdate] Missing required fields',
80
102
  });
@@ -1 +1 @@
1
- {"version":3,"file":"query.utility.js","sourceRoot":"","sources":["../../src/utilities/query.utility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.utility.js","sourceRoot":"","sources":["../../src/utilities/query.utility.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,55 @@
1
1
  import { Request, Response } from '@loopback/rest';
2
2
  import multer from 'multer';
3
- import { IRequestedRemark } from '../common';
3
+ import { IRequestedRemark } from '../common/types';
4
+ /**
5
+ * Parses multipart form data (files) using multer
6
+ * @param opts - Configuration with storage engine, request, and response
7
+ * @returns Promise that resolves to an array of uploaded files
8
+ */
4
9
  export declare const parseMultipartBody: (opts: {
5
10
  storage?: multer.StorageEngine;
6
11
  request: Request;
7
12
  response: Response;
8
13
  }) => Promise<any>;
14
+ /**
15
+ * Extracts schema definition for a LoopBack model class
16
+ * @param ctor - The model class constructor
17
+ * @returns Schema object for the model
18
+ */
9
19
  export declare const getSchemaObject: <T extends object>(ctor?: Function & {
10
20
  prototype: T;
11
21
  }) => import("@loopback/rest").SchemaObject;
22
+ /**
23
+ * Gets the request ID from a LoopBack request object
24
+ * @param opts - Request context
25
+ * @returns Request identifier or 'unknown'
26
+ */
12
27
  export declare const getRequestId: (opts: {
13
28
  request: Request;
14
- }) => undefined;
29
+ }) => string;
30
+ /**
31
+ * Gets the client's forwarded IP address from the request
32
+ * @param opts - Request context
33
+ * @returns IP address string or 'N/A'
34
+ */
15
35
  export declare const getRequestIp: (opts: {
16
36
  request: Request;
17
37
  }) => string;
38
+ /**
39
+ * Extracts the requested remark from the request metadata
40
+ * @param opts - Request context
41
+ * @returns IRequestedRemark object or undefined
42
+ */
18
43
  export declare const getRequestRemark: (opts: {
19
44
  request: Request;
20
45
  }) => IRequestedRemark | undefined;
21
- export declare const genHTTPRequestId: () => string;
46
+ /**
47
+ * Generates or validates a unique HTTP request identifier
48
+ * Uses current date prefix combined with UUID
49
+ * @param id - Existing ID to validate (optional)
50
+ * @returns Validated or newly generated request ID
51
+ * @example
52
+ * genHTTPRequestId() // "20240413-..."
53
+ */
54
+ export declare const genHTTPRequestId: (id?: string) => string;
22
55
  //# sourceMappingURL=request.utility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AACtE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,eAAO,MAAM,kBAAkB,GAAI,MAAM;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB,iBAeA,CAAC;AAGF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,QAAQ,GAAG;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,0CAEnF,CAAC;AAGF,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,cAEtD,CAAC;AAGF,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,WAEtD,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAG,gBAAgB,GAAG,SAEhF,CAAC;AAGF,eAAO,MAAM,gBAAgB,cAO5B,CAAC"}
1
+ {"version":3,"file":"request.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AACtE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;CACpB,iBAeA,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,OAAO,QAAQ,GAAG;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,0CAEnF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,WAEtD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,WAEtD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAG,gBAAgB,GAAG,SAEhF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,WAW3C,CAAC"}
@@ -8,7 +8,11 @@ const rest_1 = require("@loopback/rest");
8
8
  const multer_1 = __importDefault(require("multer"));
9
9
  const uuid_1 = require("uuid");
10
10
  const lodash_utility_1 = require("./lodash.utility");
11
- // -------------------------------------------------------------------------
11
+ /**
12
+ * Parses multipart form data (files) using multer
13
+ * @param opts - Configuration with storage engine, request, and response
14
+ * @returns Promise that resolves to an array of uploaded files
15
+ */
12
16
  const parseMultipartBody = (opts) => {
13
17
  const { storage: cStorage, request, response } = opts;
14
18
  const storage = cStorage ?? multer_1.default.memoryStorage();
@@ -24,28 +28,54 @@ const parseMultipartBody = (opts) => {
24
28
  });
25
29
  };
26
30
  exports.parseMultipartBody = parseMultipartBody;
27
- // -------------------------------------------------------------------------
31
+ /**
32
+ * Extracts schema definition for a LoopBack model class
33
+ * @param ctor - The model class constructor
34
+ * @returns Schema object for the model
35
+ */
28
36
  const getSchemaObject = (ctor) => {
29
37
  return ctor ? (0, rest_1.getModelSchemaRef)(ctor).definitions[ctor.name] : {};
30
38
  };
31
39
  exports.getSchemaObject = getSchemaObject;
32
- // -------------------------------------------------------------------------
40
+ /**
41
+ * Gets the request ID from a LoopBack request object
42
+ * @param opts - Request context
43
+ * @returns Request identifier or 'unknown'
44
+ */
33
45
  const getRequestId = (opts) => {
34
- return (0, lodash_utility_1.get)(opts.request, 'requestId');
46
+ return (0, lodash_utility_1.get)(opts.request, 'requestId') || 'unknown';
35
47
  };
36
48
  exports.getRequestId = getRequestId;
37
- // -------------------------------------------------------------------------
49
+ /**
50
+ * Gets the client's forwarded IP address from the request
51
+ * @param opts - Request context
52
+ * @returns IP address string or 'N/A'
53
+ */
38
54
  const getRequestIp = (opts) => {
39
55
  return (0, lodash_utility_1.get)(opts.request, 'requestForwardedIp') ?? 'N/A';
40
56
  };
41
57
  exports.getRequestIp = getRequestIp;
42
- // -------------------------------------------------------------------------
58
+ /**
59
+ * Extracts the requested remark from the request metadata
60
+ * @param opts - Request context
61
+ * @returns IRequestedRemark object or undefined
62
+ */
43
63
  const getRequestRemark = (opts) => {
44
64
  return (0, lodash_utility_1.get)(opts.request, 'requestedRemark');
45
65
  };
46
66
  exports.getRequestRemark = getRequestRemark;
47
- // -------------------------------------------------------------------------
48
- const genHTTPRequestId = () => {
67
+ /**
68
+ * Generates or validates a unique HTTP request identifier
69
+ * Uses current date prefix combined with UUID
70
+ * @param id - Existing ID to validate (optional)
71
+ * @returns Validated or newly generated request ID
72
+ * @example
73
+ * genHTTPRequestId() // "20240413-..."
74
+ */
75
+ const genHTTPRequestId = (id) => {
76
+ if (id && id !== 'unknown') {
77
+ return id;
78
+ }
49
79
  const now = new Date();
50
80
  const prefix = now.getFullYear().toString().padStart(4, '0') +
51
81
  (now.getMonth() + 1).toString().padStart(2, '0') +
@@ -1 +1 @@
1
- {"version":3,"file":"request.utility.js","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAsE;AACtE,oDAA4B;AAC5B,+BAAoC;AAGpC,qDAAuC;AAEvC,4EAA4E;AACrE,MAAM,kBAAkB,GAAG,CAAC,IAIlC,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,IAAI,gBAAM,CAAC,aAAa,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEnC,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC3C,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,kBAAkB,sBAmB7B;AAEF,4EAA4E;AACrE,MAAM,eAAe,GAAG,CAAmB,IAAkC,EAAE,EAAE;IACtF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAiB,EAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEF,4EAA4E;AACrE,MAAM,YAAY,GAAG,CAAC,IAA0B,EAAE,EAAE;IACzD,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF,4EAA4E;AACrE,MAAM,YAAY,GAAG,CAAC,IAA0B,EAAE,EAAE;IACzD,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,KAAK,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF,4EAA4E;AACrE,MAAM,gBAAgB,GAAG,CAAC,IAA0B,EAAgC,EAAE;IAC3F,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEF,4EAA4E;AACrE,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GACV,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC7C,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAChD,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,GAAG,MAAM,IAAI,IAAA,SAAM,GAAE,EAAE,CAAC;AACjC,CAAC,CAAC;AAPW,QAAA,gBAAgB,oBAO3B"}
1
+ {"version":3,"file":"request.utility.js","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAsE;AACtE,oDAA4B;AAC5B,+BAAoC;AAGpC,qDAAuC;AAEvC;;;;GAIG;AACI,MAAM,kBAAkB,GAAG,CAAC,IAIlC,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,IAAI,gBAAM,CAAC,aAAa,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEnC,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC3C,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,kBAAkB,sBAmB7B;AAEF;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAmB,IAAkC,EAAE,EAAE;IACtF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,wBAAiB,EAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEF;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,IAA0B,EAAE,EAAE;IACzD,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,SAAS,CAAC;AACrD,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,IAA0B,EAAE,EAAE;IACzD,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,KAAK,CAAC;AAC1D,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,IAA0B,EAAgC,EAAE;IAC3F,OAAO,IAAA,oBAAG,EAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEF;;;;;;;GAOG;AACI,MAAM,gBAAgB,GAAG,CAAC,EAAW,EAAE,EAAE;IAC9C,IAAI,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GACV,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC7C,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAChD,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,GAAG,MAAM,IAAI,IAAA,SAAM,GAAE,EAAE,CAAC;AACjC,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B"}
@@ -1,3 +1,19 @@
1
+ /**
2
+ * Serializes an object into a URL search query string
3
+ * Automatically JSON stringifies non-primitive values
4
+ * @param params - Object containing key-value pairs to serialize
5
+ * @returns Encoded URL query string
6
+ * @example
7
+ * stringify({ id: 1, filter: { name: 'john' } })
8
+ * // "id=1&filter=%7B%22name%22%3A%22john%22%7D"
9
+ */
1
10
  export declare const stringify: (params: Record<string | symbol, any>) => string;
11
+ /**
12
+ * Parses a URL query string into a simple key-value object
13
+ * @param searchString - The raw query string (e.g. from window.location.search)
14
+ * @returns Object with key-value pairs from the query string
15
+ * @example
16
+ * parse('id=1&name=john') // { id: '1', name: 'john' }
17
+ */
2
18
  export declare const parse: (searchString: string) => Record<string, any>;
3
19
  //# sourceMappingURL=url.utility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/url.utility.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,WAiB7D,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,cAAc,MAAM,wBAQzC,CAAC"}
1
+ {"version":3,"file":"url.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/url.utility.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,WAiB7D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,cAAc,MAAM,wBAQzC,CAAC"}
@@ -1,6 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parse = exports.stringify = void 0;
4
+ /**
5
+ * Serializes an object into a URL search query string
6
+ * Automatically JSON stringifies non-primitive values
7
+ * @param params - Object containing key-value pairs to serialize
8
+ * @returns Encoded URL query string
9
+ * @example
10
+ * stringify({ id: 1, filter: { name: 'john' } })
11
+ * // "id=1&filter=%7B%22name%22%3A%22john%22%7D"
12
+ */
4
13
  const stringify = (params) => {
5
14
  const normalizedParams = {};
6
15
  for (const key in params) {
@@ -20,6 +29,13 @@ const stringify = (params) => {
20
29
  return rs.toString();
21
30
  };
22
31
  exports.stringify = stringify;
32
+ /**
33
+ * Parses a URL query string into a simple key-value object
34
+ * @param searchString - The raw query string (e.g. from window.location.search)
35
+ * @returns Object with key-value pairs from the query string
36
+ * @example
37
+ * parse('id=1&name=john') // { id: '1', name: 'john' }
38
+ */
23
39
  const parse = (searchString) => {
24
40
  const rs = {};
25
41
  const searchParams = new URLSearchParams(searchString);
@@ -1 +1 @@
1
- {"version":3,"file":"url.utility.js","sourceRoot":"","sources":["../../src/utilities/url.utility.ts"],"names":[],"mappings":";;;AAAO,MAAM,SAAS,GAAG,CAAC,MAAoC,EAAE,EAAE;IAChE,MAAM,gBAAgB,GAAiC,EAAE,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,gBAAgB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACvB,CAAC,CAAC;AAjBW,QAAA,SAAS,aAiBpB;AAEK,MAAM,KAAK,GAAG,CAAC,YAAoB,EAAE,EAAE;IAC5C,MAAM,EAAE,GAAwB,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACxC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AARW,QAAA,KAAK,SAQhB"}
1
+ {"version":3,"file":"url.utility.js","sourceRoot":"","sources":["../../src/utilities/url.utility.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACI,MAAM,SAAS,GAAG,CAAC,MAAoC,EAAE,EAAE;IAChE,MAAM,gBAAgB,GAAiC,EAAE,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,gBAAgB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;AACvB,CAAC,CAAC;AAjBW,QAAA,SAAS,aAiBpB;AAEF;;;;;;GAMG;AACI,MAAM,KAAK,GAAG,CAAC,YAAoB,EAAE,EAAE;IAC5C,MAAM,EAAE,GAAwB,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACxC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AARW,QAAA,KAAK,SAQhB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gennext/lb-infra",
3
- "version": "0.0.12",
3
+ "version": "0.1.0",
4
4
  "dependencies": {
5
5
  "@gennext/dev-configs": "^0.0.3",
6
6
  "@loopback/authentication": "^12.0.6",
@@ -118,6 +118,7 @@
118
118
  "clean": "sh ./scripts/clean.sh",
119
119
  "rebuild": "sh ./scripts/rebuild.sh",
120
120
  "eslint": "eslint --report-unused-disable-directives .",
121
+ "eslint:fix": "bun eslint --fix",
121
122
  "test": "TS_NODE_PROJECT=tsconfig.test.json node --require ts-node/register/transpile-only --require tsconfig-paths/register --test \"tests/**/*.test.ts\"",
122
123
  "lint": "bun run eslint && bun run prettier:cli",
123
124
  "lint:fix": "bun run eslint --fix && bun run prettier:fix",