@cyberskill/shared 1.50.0 → 1.52.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 (147) hide show
  1. package/dist/_tsup-dts-rollup.d.cts +100 -129
  2. package/dist/_tsup-dts-rollup.d.ts +100 -129
  3. package/dist/cli.cjs +1 -2146
  4. package/dist/cli.d.cts +1 -2
  5. package/dist/cli.d.ts +1 -2
  6. package/dist/cli.js +1 -2066
  7. package/dist/configs/commitlint/base.cjs +1 -64
  8. package/dist/configs/commitlint/base.js +1 -7
  9. package/dist/configs/eslint/base.cjs +1 -121
  10. package/dist/configs/eslint/base.js +1 -52
  11. package/dist/configs/eslint/nestjs.cjs +1 -155
  12. package/dist/configs/eslint/nestjs.js +1 -85
  13. package/dist/configs/eslint/nextjs.cjs +1 -155
  14. package/dist/configs/eslint/nextjs.js +1 -85
  15. package/dist/configs/eslint/nodejs.cjs +1 -156
  16. package/dist/configs/eslint/nodejs.js +1 -86
  17. package/dist/configs/eslint/vite-react.cjs +1 -159
  18. package/dist/configs/eslint/vite-react.js +1 -89
  19. package/dist/configs/graphql/graphql-codegen.cjs +1 -125
  20. package/dist/configs/graphql/graphql-codegen.js +1 -64
  21. package/dist/configs/graphql/index.cjs +1 -126
  22. package/dist/configs/graphql/index.js +1 -64
  23. package/dist/configs/i18n/react/i18next.cjs +1 -80
  24. package/dist/configs/i18n/react/i18next.js +1 -7
  25. package/dist/configs/i18n/react/index.cjs +1 -81
  26. package/dist/configs/i18n/react/index.js +1 -7
  27. package/dist/configs/index.cjs +1 -232
  28. package/dist/configs/index.js +1 -166
  29. package/dist/configs/lint-staged/base.cjs +1 -64
  30. package/dist/configs/lint-staged/base.js +1 -7
  31. package/dist/configs/vitest/react/e2e.cjs +1 -128
  32. package/dist/configs/vitest/react/e2e.js +1 -59
  33. package/dist/configs/vitest/react/unit.cjs +1 -305
  34. package/dist/configs/vitest/react/unit.js +1 -228
  35. package/dist/configs/vitest/react/unit.setup.cjs +1 -60
  36. package/dist/configs/vitest/react/unit.setup.js +1 -8
  37. package/dist/constants/index.cjs +1 -677
  38. package/dist/constants/index.d.cts +8 -3
  39. package/dist/constants/index.d.ts +8 -3
  40. package/dist/constants/index.js +1 -468
  41. package/dist/constants/path.cjs +1 -422
  42. package/dist/constants/path.d.cts +8 -3
  43. package/dist/constants/path.d.ts +8 -3
  44. package/dist/constants/path.js +1 -217
  45. package/dist/constants/response-status.cjs +1 -313
  46. package/dist/constants/response-status.js +1 -252
  47. package/dist/index.cjs +1 -4559
  48. package/dist/index.d.cts +13 -8
  49. package/dist/index.d.ts +13 -8
  50. package/dist/index.js +1 -4142
  51. package/dist/nodejs/index.cjs +1 -2138
  52. package/dist/nodejs/index.js +1 -2054
  53. package/dist/nodejs/mongo.cjs +1 -2137
  54. package/dist/nodejs/mongo.js +1 -2054
  55. package/dist/react/apollo-client.cjs +1 -177
  56. package/dist/react/apollo-client.js +1 -116
  57. package/dist/react/index.cjs +1 -990
  58. package/dist/react/index.js +1 -876
  59. package/dist/react/loading.cjs +1 -301
  60. package/dist/react/loading.js +1 -216
  61. package/dist/react/next-intl.cjs +1 -744
  62. package/dist/react/next-intl.js +1 -655
  63. package/dist/react/storage.cjs +1 -631
  64. package/dist/react/storage.js +1 -558
  65. package/dist/typescript/api-response.cjs +1 -48
  66. package/dist/typescript/apollo.cjs +1 -48
  67. package/dist/typescript/command.cjs +1 -68
  68. package/dist/typescript/command.d.cts +3 -0
  69. package/dist/typescript/command.d.ts +3 -0
  70. package/dist/typescript/command.js +1 -7
  71. package/dist/typescript/config.cjs +1 -48
  72. package/dist/typescript/fs.cjs +1 -48
  73. package/dist/typescript/graphql-codegen.cjs +1 -48
  74. package/dist/typescript/index.cjs +1 -175
  75. package/dist/typescript/index.d.cts +3 -0
  76. package/dist/typescript/index.d.ts +3 -0
  77. package/dist/typescript/index.js +1 -151
  78. package/dist/typescript/loading.cjs +1 -48
  79. package/dist/typescript/log.cjs +1 -48
  80. package/dist/typescript/mongo.cjs +1 -164
  81. package/dist/typescript/mongo.js +1 -145
  82. package/dist/typescript/next-intl.cjs +1 -48
  83. package/dist/typescript/react.cjs +1 -48
  84. package/dist/typescript/serializer.cjs +1 -48
  85. package/dist/typescript/string.cjs +1 -48
  86. package/dist/utils/command.cjs +1 -1387
  87. package/dist/utils/command.d.cts +2 -2
  88. package/dist/utils/command.d.ts +2 -2
  89. package/dist/utils/command.js +1 -1287
  90. package/dist/utils/common.cjs +1 -300
  91. package/dist/utils/common.js +1 -219
  92. package/dist/utils/config.cjs +1 -146
  93. package/dist/utils/config.js +1 -89
  94. package/dist/utils/fs.cjs +1 -132
  95. package/dist/utils/fs.js +1 -47
  96. package/dist/utils/index-nodejs.cjs +1 -1752
  97. package/dist/utils/index-nodejs.d.cts +2 -5
  98. package/dist/utils/index-nodejs.d.ts +2 -5
  99. package/dist/utils/index-nodejs.js +1 -1581
  100. package/dist/utils/index.cjs +1 -727
  101. package/dist/utils/index.js +1 -625
  102. package/dist/utils/log.cjs +1 -330
  103. package/dist/utils/log.js +1 -269
  104. package/dist/utils/package.cjs +1 -941
  105. package/dist/utils/package.js +1 -857
  106. package/dist/utils/path.cjs +1 -291
  107. package/dist/utils/path.d.cts +0 -3
  108. package/dist/utils/path.d.ts +0 -3
  109. package/dist/utils/path.js +1 -191
  110. package/dist/utils/serializer.cjs +1 -91
  111. package/dist/utils/serializer.js +1 -30
  112. package/dist/utils/storage-client.cjs +1 -349
  113. package/dist/utils/storage-client.js +1 -276
  114. package/dist/utils/storage-server.cjs +1 -636
  115. package/dist/utils/storage-server.js +1 -550
  116. package/dist/utils/string.cjs +1 -152
  117. package/dist/utils/string.js +1 -75
  118. package/dist/utils/validate.cjs +1 -90
  119. package/dist/utils/validate.js +1 -33
  120. package/package.json +15 -13
  121. /package/{src/public → public}/favicon/android-icon-144x144.png +0 -0
  122. /package/{src/public → public}/favicon/android-icon-192x192.png +0 -0
  123. /package/{src/public → public}/favicon/android-icon-36x36.png +0 -0
  124. /package/{src/public → public}/favicon/android-icon-48x48.png +0 -0
  125. /package/{src/public → public}/favicon/android-icon-72x72.png +0 -0
  126. /package/{src/public → public}/favicon/android-icon-96x96.png +0 -0
  127. /package/{src/public → public}/favicon/apple-icon-114x114.png +0 -0
  128. /package/{src/public → public}/favicon/apple-icon-120x120.png +0 -0
  129. /package/{src/public → public}/favicon/apple-icon-144x144.png +0 -0
  130. /package/{src/public → public}/favicon/apple-icon-152x152.png +0 -0
  131. /package/{src/public → public}/favicon/apple-icon-180x180.png +0 -0
  132. /package/{src/public → public}/favicon/apple-icon-57x57.png +0 -0
  133. /package/{src/public → public}/favicon/apple-icon-60x60.png +0 -0
  134. /package/{src/public → public}/favicon/apple-icon-72x72.png +0 -0
  135. /package/{src/public → public}/favicon/apple-icon-76x76.png +0 -0
  136. /package/{src/public → public}/favicon/apple-icon-precomposed.png +0 -0
  137. /package/{src/public → public}/favicon/apple-icon.png +0 -0
  138. /package/{src/public → public}/favicon/browserconfig.xml +0 -0
  139. /package/{src/public → public}/favicon/favicon-16x16.png +0 -0
  140. /package/{src/public → public}/favicon/favicon-32x32.png +0 -0
  141. /package/{src/public → public}/favicon/favicon-96x96.png +0 -0
  142. /package/{src/public → public}/favicon/favicon.ico +0 -0
  143. /package/{src/public → public}/favicon/manifest.json +0 -0
  144. /package/{src/public → public}/favicon/ms-icon-144x144.png +0 -0
  145. /package/{src/public → public}/favicon/ms-icon-150x150.png +0 -0
  146. /package/{src/public → public}/favicon/ms-icon-310x310.png +0 -0
  147. /package/{src/public → public}/favicon/ms-icon-70x70.png +0 -0
package/dist/index.js CHANGED
@@ -1,4142 +1 @@
1
- // src/configs/index.ts
2
- function _array_like_to_array(arr, len) {
3
- if (len == null || len > arr.length) len = arr.length;
4
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5
- return arr2;
6
- }
7
- function _array_with_holes(arr) {
8
- if (Array.isArray(arr)) return arr;
9
- }
10
- function _array_without_holes(arr) {
11
- if (Array.isArray(arr)) return _array_like_to_array(arr);
12
- }
13
- function _assert_this_initialized(self) {
14
- if (self === void 0) {
15
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16
- }
17
- return self;
18
- }
19
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
20
- try {
21
- var info = gen[key](arg);
22
- var value = info.value;
23
- } catch (error) {
24
- reject(error);
25
- return;
26
- }
27
- if (info.done) {
28
- resolve(value);
29
- } else {
30
- Promise.resolve(value).then(_next, _throw);
31
- }
32
- }
33
- function _async_to_generator(fn) {
34
- return function() {
35
- var self = this, args = arguments;
36
- return new Promise(function(resolve, reject) {
37
- var gen = fn.apply(self, args);
38
- function _next(value) {
39
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
40
- }
41
- function _throw(err) {
42
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
43
- }
44
- _next(undefined);
45
- });
46
- };
47
- }
48
- function _call_super(_this, derived, args) {
49
- derived = _get_prototype_of(derived);
50
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
51
- }
52
- function _class_call_check(instance, Constructor) {
53
- if (!(instance instanceof Constructor)) {
54
- throw new TypeError("Cannot call a class as a function");
55
- }
56
- }
57
- function _defineProperties(target, props) {
58
- for(var i = 0; i < props.length; i++){
59
- var descriptor = props[i];
60
- descriptor.enumerable = descriptor.enumerable || false;
61
- descriptor.configurable = true;
62
- if ("value" in descriptor) descriptor.writable = true;
63
- Object.defineProperty(target, descriptor.key, descriptor);
64
- }
65
- }
66
- function _create_class(Constructor, protoProps, staticProps) {
67
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
68
- if (staticProps) _defineProperties(Constructor, staticProps);
69
- return Constructor;
70
- }
71
- function _define_property(obj, key, value) {
72
- if (key in obj) {
73
- Object.defineProperty(obj, key, {
74
- value: value,
75
- enumerable: true,
76
- configurable: true,
77
- writable: true
78
- });
79
- } else {
80
- obj[key] = value;
81
- }
82
- return obj;
83
- }
84
- function _get_prototype_of(o) {
85
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
86
- return o.__proto__ || Object.getPrototypeOf(o);
87
- };
88
- return _get_prototype_of(o);
89
- }
90
- function _inherits(subClass, superClass) {
91
- if (typeof superClass !== "function" && superClass !== null) {
92
- throw new TypeError("Super expression must either be null or a function");
93
- }
94
- subClass.prototype = Object.create(superClass && superClass.prototype, {
95
- constructor: {
96
- value: subClass,
97
- writable: true,
98
- configurable: true
99
- }
100
- });
101
- if (superClass) _set_prototype_of(subClass, superClass);
102
- }
103
- function _instanceof(left, right) {
104
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
105
- return !!right[Symbol.hasInstance](left);
106
- } else {
107
- return left instanceof right;
108
- }
109
- }
110
- function _iterable_to_array(iter) {
111
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
112
- }
113
- function _iterable_to_array_limit(arr, i) {
114
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
115
- if (_i == null) return;
116
- var _arr = [];
117
- var _n = true;
118
- var _d = false;
119
- var _s, _e;
120
- try {
121
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
122
- _arr.push(_s.value);
123
- if (i && _arr.length === i) break;
124
- }
125
- } catch (err) {
126
- _d = true;
127
- _e = err;
128
- } finally{
129
- try {
130
- if (!_n && _i["return"] != null) _i["return"]();
131
- } finally{
132
- if (_d) throw _e;
133
- }
134
- }
135
- return _arr;
136
- }
137
- function _non_iterable_rest() {
138
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
139
- }
140
- function _non_iterable_spread() {
141
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
142
- }
143
- function _object_spread(target) {
144
- for(var i = 1; i < arguments.length; i++){
145
- var source = arguments[i] != null ? arguments[i] : {};
146
- var ownKeys = Object.keys(source);
147
- if (typeof Object.getOwnPropertySymbols === "function") {
148
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
149
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
150
- }));
151
- }
152
- ownKeys.forEach(function(key) {
153
- _define_property(target, key, source[key]);
154
- });
155
- }
156
- return target;
157
- }
158
- function ownKeys(object, enumerableOnly) {
159
- var keys = Object.keys(object);
160
- if (Object.getOwnPropertySymbols) {
161
- var symbols = Object.getOwnPropertySymbols(object);
162
- if (enumerableOnly) {
163
- symbols = symbols.filter(function(sym) {
164
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
165
- });
166
- }
167
- keys.push.apply(keys, symbols);
168
- }
169
- return keys;
170
- }
171
- function _object_spread_props(target, source) {
172
- source = source != null ? source : {};
173
- if (Object.getOwnPropertyDescriptors) {
174
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
175
- } else {
176
- ownKeys(Object(source)).forEach(function(key) {
177
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
178
- });
179
- }
180
- return target;
181
- }
182
- function _object_without_properties(source, excluded) {
183
- if (source == null) return {};
184
- var target = _object_without_properties_loose(source, excluded);
185
- var key, i;
186
- if (Object.getOwnPropertySymbols) {
187
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
188
- for(i = 0; i < sourceSymbolKeys.length; i++){
189
- key = sourceSymbolKeys[i];
190
- if (excluded.indexOf(key) >= 0) continue;
191
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
192
- target[key] = source[key];
193
- }
194
- }
195
- return target;
196
- }
197
- function _object_without_properties_loose(source, excluded) {
198
- if (source == null) return {};
199
- var target = {};
200
- var sourceKeys = Object.keys(source);
201
- var key, i;
202
- for(i = 0; i < sourceKeys.length; i++){
203
- key = sourceKeys[i];
204
- if (excluded.indexOf(key) >= 0) continue;
205
- target[key] = source[key];
206
- }
207
- return target;
208
- }
209
- function _possible_constructor_return(self, call) {
210
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
211
- return call;
212
- }
213
- return _assert_this_initialized(self);
214
- }
215
- function _set_prototype_of(o, p) {
216
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
217
- o.__proto__ = p;
218
- return o;
219
- };
220
- return _set_prototype_of(o, p);
221
- }
222
- function _sliced_to_array(arr, i) {
223
- return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
224
- }
225
- function _to_consumable_array(arr) {
226
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
227
- }
228
- function _type_of(obj) {
229
- "@swc/helpers - typeof";
230
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
231
- }
232
- function _unsupported_iterable_to_array(o, minLen) {
233
- if (!o) return;
234
- if (typeof o === "string") return _array_like_to_array(o, minLen);
235
- var n = Object.prototype.toString.call(o).slice(8, -1);
236
- if (n === "Object" && o.constructor) n = o.constructor.name;
237
- if (n === "Map" || n === "Set") return Array.from(n);
238
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
239
- }
240
- function _is_native_reflect_construct() {
241
- try {
242
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
243
- } catch (_) {}
244
- return (_is_native_reflect_construct = function() {
245
- return !!result;
246
- })();
247
- }
248
- function _ts_generator(thisArg, body) {
249
- var f, y, t, g, _ = {
250
- label: 0,
251
- sent: function() {
252
- if (t[0] & 1) throw t[1];
253
- return t[1];
254
- },
255
- trys: [],
256
- ops: []
257
- };
258
- return g = {
259
- next: verb(0),
260
- "throw": verb(1),
261
- "return": verb(2)
262
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
263
- return this;
264
- }), g;
265
- function verb(n) {
266
- return function(v) {
267
- return step([
268
- n,
269
- v
270
- ]);
271
- };
272
- }
273
- function step(op) {
274
- if (f) throw new TypeError("Generator is already executing.");
275
- while(_)try {
276
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
277
- if (y = 0, t) op = [
278
- op[0] & 2,
279
- t.value
280
- ];
281
- switch(op[0]){
282
- case 0:
283
- case 1:
284
- t = op;
285
- break;
286
- case 4:
287
- _.label++;
288
- return {
289
- value: op[1],
290
- done: false
291
- };
292
- case 5:
293
- _.label++;
294
- y = op[1];
295
- op = [
296
- 0
297
- ];
298
- continue;
299
- case 7:
300
- op = _.ops.pop();
301
- _.trys.pop();
302
- continue;
303
- default:
304
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
305
- _ = 0;
306
- continue;
307
- }
308
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
309
- _.label = op[1];
310
- break;
311
- }
312
- if (op[0] === 6 && _.label < t[1]) {
313
- _.label = t[1];
314
- t = op;
315
- break;
316
- }
317
- if (t && _.label < t[2]) {
318
- _.label = t[2];
319
- _.ops.push(op);
320
- break;
321
- }
322
- if (t[2]) _.ops.pop();
323
- _.trys.pop();
324
- continue;
325
- }
326
- op = body.call(thisArg, _);
327
- } catch (e) {
328
- op = [
329
- 6,
330
- e
331
- ];
332
- y = 0;
333
- } finally{
334
- f = t = 0;
335
- }
336
- if (op[0] & 5) throw op[1];
337
- return {
338
- value: op[0] ? op[1] : void 0,
339
- done: true
340
- };
341
- }
342
- }
343
- import antfu from "@antfu/eslint-config";
344
- // src/utils/config.ts
345
- function deepMerge() {
346
- for(var _len = arguments.length, configs = new Array(_len), _key = 0; _key < _len; _key++){
347
- configs[_key] = arguments[_key];
348
- }
349
- var merge = function(target, source) {
350
- var result = _object_spread({}, target);
351
- Object.keys(source).forEach(function(key) {
352
- if (!Object.hasOwnProperty.call(source, key)) {
353
- return;
354
- }
355
- var sourceValue = source[key];
356
- var targetValue = result[key];
357
- if (Array.isArray(sourceValue)) {
358
- result[key] = _to_consumable_array(/* @__PURE__ */ new Set(_to_consumable_array(Array.isArray(targetValue) ? targetValue : []).concat(_to_consumable_array(sourceValue))));
359
- } else if ((typeof sourceValue === "undefined" ? "undefined" : _type_of(sourceValue)) === "object" && sourceValue !== null && !Array.isArray(sourceValue)) {
360
- result[key] = merge((typeof targetValue === "undefined" ? "undefined" : _type_of(targetValue)) === "object" && targetValue !== null && !Array.isArray(targetValue) ? targetValue : {}, sourceValue);
361
- } else {
362
- result[key] = sourceValue;
363
- }
364
- });
365
- return result;
366
- };
367
- return configs.flatMap(function(config) {
368
- return Array.isArray(config) ? config : [
369
- config
370
- ];
371
- }).reduce(function(acc, config) {
372
- return merge(acc, config);
373
- }, {});
374
- }
375
- // src/constants/path.ts
376
- import process3 from "node:process";
377
- import { fileURLToPath } from "node:url";
378
- // src/utils/command.ts
379
- import boxen from "boxen";
380
- import chalk from "chalk";
381
- import { exec } from "node:child_process";
382
- import process2 from "node:process";
383
- import * as util from "node:util";
384
- // src/typescript/command.ts
385
- var E_ErrorType = /* @__PURE__ */ function(E_ErrorType2) {
386
- E_ErrorType2["Error"] = "error";
387
- E_ErrorType2["Warning"] = "warning";
388
- return E_ErrorType2;
389
- }(E_ErrorType || {});
390
- // src/utils/package.ts
391
- import fetch from "node-fetch";
392
- // src/utils/fs.ts
393
- import * as fs from "node:fs";
394
- var existsSync2 = function(filePath) {
395
- return fs.existsSync(filePath);
396
- };
397
- function readFileSync2(filePath, options) {
398
- var content = fs.readFileSync(filePath, "utf-8");
399
- if (options === null || options === void 0 ? void 0 : options.asJson) {
400
- try {
401
- var parsed = JSON.parse(content);
402
- if ((typeof parsed === "undefined" ? "undefined" : _type_of(parsed)) === "object" && parsed !== null) {
403
- return parsed;
404
- }
405
- throw new Error("Parsed JSON is not an object or array");
406
- } catch (e) {
407
- throw new Error("Failed to parse JSON from file: ".concat(filePath));
408
- }
409
- }
410
- return content;
411
- }
412
- function writeFileSync2(filePath, data) {
413
- var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
414
- var tmp = options.isJson, isJson2 = tmp === void 0 ? false : tmp;
415
- var content = isJson2 && (typeof data === "undefined" ? "undefined" : _type_of(data)) === "object" ? JSON.stringify(data, null, 4) : String(data);
416
- fs.writeFileSync(filePath, content, "utf-8");
417
- }
418
- function appendFileSync2(filePath, data) {
419
- var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
420
- var tmp = options.isJson, isJson2 = tmp === void 0 ? false : tmp;
421
- var content = isJson2 && (typeof data === "undefined" ? "undefined" : _type_of(data)) === "object" ? JSON.stringify(data, null, 4) : String(data);
422
- fs.appendFileSync(filePath, content, "utf-8");
423
- }
424
- function rmSync2(filePaths) {
425
- filePaths.forEach(function(filePath) {
426
- if (existsSync2(filePath)) {
427
- fs.rmSync(filePath, {
428
- recursive: true,
429
- force: true
430
- });
431
- }
432
- });
433
- }
434
- // src/utils/path.ts
435
- import { createRequire } from "node:module";
436
- import * as path from "node:path";
437
- function resolveCyberSkillPath() {
438
- for(var _len = arguments.length, urls = new Array(_len), _key = 0; _key < _len; _key++){
439
- urls[_key] = arguments[_key];
440
- }
441
- var _path;
442
- return (_path = path).resolve.apply(_path, [
443
- CYBERSKILL_DIRECTORY
444
- ].concat(_to_consumable_array(urls)));
445
- }
446
- function resolveWorkingPath() {
447
- for(var _len = arguments.length, urls = new Array(_len), _key = 0; _key < _len; _key++){
448
- urls[_key] = arguments[_key];
449
- }
450
- var _path;
451
- return (_path = path).resolve.apply(_path, [
452
- WORKING_DIRECTORY
453
- ].concat(_to_consumable_array(urls)));
454
- }
455
- function resolve2() {
456
- for(var _len = arguments.length, urls = new Array(_len), _key = 0; _key < _len; _key++){
457
- urls[_key] = arguments[_key];
458
- }
459
- var _path;
460
- return (_path = path).resolve.apply(_path, _to_consumable_array(urls));
461
- }
462
- function dirname2(url) {
463
- return path.dirname(url);
464
- }
465
- function require2() {
466
- return createRequire(CYBERSKILL_DIRECTORY);
467
- }
468
- function join2() {
469
- for(var _len = arguments.length, urls = new Array(_len), _key = 0; _key < _len; _key++){
470
- urls[_key] = arguments[_key];
471
- }
472
- var _path;
473
- return (_path = path).join.apply(_path, _to_consumable_array(urls));
474
- }
475
- // src/utils/storage-server.ts
476
- import nodePersist from "node-persist";
477
- import os from "node:os";
478
- import path2 from "node:path";
479
- import process from "node:process";
480
- function getStorageDir() {
481
- return process.env.CYBERSKILL_STORAGE_DIR || path2.join(os.homedir(), CYBERSKILL_STORAGE);
482
- }
483
- function initNodePersist() {
484
- return _initNodePersist.apply(this, arguments);
485
- }
486
- function _initNodePersist() {
487
- _initNodePersist = _async_to_generator(function() {
488
- return _ts_generator(this, function(_state) {
489
- switch(_state.label){
490
- case 0:
491
- if (!!nodePersist.defaultInstance) return [
492
- 3,
493
- 2
494
- ];
495
- return [
496
- 4,
497
- nodePersist.init({
498
- dir: getStorageDir(),
499
- stringify: JSON.stringify,
500
- parse: JSON.parse,
501
- encoding: "utf8",
502
- logging: false,
503
- forgiveParseErrors: true
504
- })
505
- ];
506
- case 1:
507
- _state.sent();
508
- _state.label = 2;
509
- case 2:
510
- return [
511
- 2
512
- ];
513
- }
514
- });
515
- });
516
- return _initNodePersist.apply(this, arguments);
517
- }
518
- var storageServer = {
519
- get: function get(key) {
520
- return _async_to_generator(function() {
521
- var result, error;
522
- return _ts_generator(this, function(_state) {
523
- switch(_state.label){
524
- case 0:
525
- _state.trys.push([
526
- 0,
527
- 3,
528
- ,
529
- 4
530
- ]);
531
- return [
532
- 4,
533
- initNodePersist()
534
- ];
535
- case 1:
536
- _state.sent();
537
- return [
538
- 4,
539
- nodePersist.getItem(key)
540
- ];
541
- case 2:
542
- result = _state.sent();
543
- return [
544
- 2,
545
- result !== null && result !== void 0 ? result : null
546
- ];
547
- case 3:
548
- error = _state.sent();
549
- console.error('❌ [Storage:get] Error getting key "'.concat(key, '":'), error);
550
- return [
551
- 2,
552
- null
553
- ];
554
- case 4:
555
- return [
556
- 2
557
- ];
558
- }
559
- });
560
- })();
561
- },
562
- set: function set(key, value) {
563
- return _async_to_generator(function() {
564
- var error;
565
- return _ts_generator(this, function(_state) {
566
- switch(_state.label){
567
- case 0:
568
- _state.trys.push([
569
- 0,
570
- 3,
571
- ,
572
- 4
573
- ]);
574
- return [
575
- 4,
576
- initNodePersist()
577
- ];
578
- case 1:
579
- _state.sent();
580
- return [
581
- 4,
582
- nodePersist.setItem(key, value)
583
- ];
584
- case 2:
585
- _state.sent();
586
- return [
587
- 3,
588
- 4
589
- ];
590
- case 3:
591
- error = _state.sent();
592
- console.error('❌ [Storage:set] Error setting key "'.concat(key, '":'), error);
593
- return [
594
- 3,
595
- 4
596
- ];
597
- case 4:
598
- return [
599
- 2
600
- ];
601
- }
602
- });
603
- })();
604
- },
605
- remove: function remove(key) {
606
- return _async_to_generator(function() {
607
- var error;
608
- return _ts_generator(this, function(_state) {
609
- switch(_state.label){
610
- case 0:
611
- _state.trys.push([
612
- 0,
613
- 3,
614
- ,
615
- 4
616
- ]);
617
- return [
618
- 4,
619
- initNodePersist()
620
- ];
621
- case 1:
622
- _state.sent();
623
- return [
624
- 4,
625
- nodePersist.removeItem(key)
626
- ];
627
- case 2:
628
- _state.sent();
629
- return [
630
- 3,
631
- 4
632
- ];
633
- case 3:
634
- error = _state.sent();
635
- console.error('❌ [Storage:remove] Error removing key "'.concat(key, '":'), error);
636
- return [
637
- 3,
638
- 4
639
- ];
640
- case 4:
641
- return [
642
- 2
643
- ];
644
- }
645
- });
646
- })();
647
- },
648
- keys: function keys() {
649
- return _async_to_generator(function() {
650
- var keys, error;
651
- return _ts_generator(this, function(_state) {
652
- switch(_state.label){
653
- case 0:
654
- _state.trys.push([
655
- 0,
656
- 3,
657
- ,
658
- 4
659
- ]);
660
- return [
661
- 4,
662
- initNodePersist()
663
- ];
664
- case 1:
665
- _state.sent();
666
- return [
667
- 4,
668
- nodePersist.keys()
669
- ];
670
- case 2:
671
- keys = _state.sent();
672
- if (!Array.isArray(keys)) {
673
- console.warn("⚠️ [Storage:keys] Invalid keys response:", keys);
674
- return [
675
- 2,
676
- []
677
- ];
678
- }
679
- return [
680
- 2,
681
- keys
682
- ];
683
- case 3:
684
- error = _state.sent();
685
- console.error("❌ [Storage:keys] Error getting keys:", error);
686
- return [
687
- 2,
688
- []
689
- ];
690
- case 4:
691
- return [
692
- 2
693
- ];
694
- }
695
- });
696
- })();
697
- },
698
- getLogLink: function getLogLink(key) {
699
- return _async_to_generator(function() {
700
- var storagePath;
701
- return _ts_generator(this, function(_state) {
702
- try {
703
- storagePath = getStorageDir();
704
- return [
705
- 2,
706
- "".concat(storagePath, " (key: ").concat(key, ")")
707
- ];
708
- } catch (error) {
709
- console.error("❌ [Storage:getLogLink] Error getting log link:", error);
710
- return [
711
- 2,
712
- null
713
- ];
714
- }
715
- return [
716
- 2
717
- ];
718
- });
719
- })();
720
- }
721
- };
722
- // src/utils/package.ts
723
- var CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1e3;
724
- function getPackageJson(packageName) {
725
- var workingPackageJsonPath = join2(WORKING_DIRECTORY, PACKAGE_JSON);
726
- if (existsSync2(workingPackageJsonPath)) {
727
- try {
728
- var pkg = readFileSync2(workingPackageJsonPath, {
729
- asJson: true
730
- });
731
- if (pkg.name === packageName) {
732
- return {
733
- path: workingPackageJsonPath,
734
- file: pkg
735
- };
736
- }
737
- } catch (error) {
738
- commandLog.warning("Failed to read local package.json: ".concat(error.message));
739
- }
740
- }
741
- var externalPackageJsonPath = join2(WORKING_DIRECTORY, NODE_MODULES, packageName, PACKAGE_JSON);
742
- if (existsSync2(externalPackageJsonPath)) {
743
- try {
744
- var pkg1 = readFileSync2(externalPackageJsonPath, {
745
- asJson: true
746
- });
747
- if (pkg1.name === packageName) {
748
- return {
749
- path: externalPackageJsonPath,
750
- file: pkg1
751
- };
752
- }
753
- } catch (error) {
754
- commandLog.warning("Failed to read node_modules package.json for ".concat(packageName, ": ").concat(error.message));
755
- }
756
- }
757
- return false;
758
- }
759
- function getLatestPackageVersion(packageName) {
760
- return _getLatestPackageVersion.apply(this, arguments);
761
- }
762
- function _getLatestPackageVersion() {
763
- _getLatestPackageVersion = _async_to_generator(function(packageName) {
764
- var forceRefresh, versionCacheKey, metadataCacheKey, cached, metadata, isCacheValid, headers, response, data, latestVersion, error;
765
- var _arguments = arguments;
766
- return _ts_generator(this, function(_state) {
767
- switch(_state.label){
768
- case 0:
769
- forceRefresh = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : false;
770
- versionCacheKey = "npm_version:".concat(packageName);
771
- metadataCacheKey = "npm_metadata:".concat(packageName);
772
- return [
773
- 4,
774
- storageServer.get(versionCacheKey)
775
- ];
776
- case 1:
777
- cached = _state.sent();
778
- return [
779
- 4,
780
- storageServer.get(metadataCacheKey)
781
- ];
782
- case 2:
783
- metadata = _state.sent();
784
- isCacheValid = cached && Date.now() - cached.timestamp < CACHE_EXPIRATION_MS;
785
- if (!forceRefresh && isCacheValid) {
786
- return [
787
- 2,
788
- cached.version
789
- ];
790
- }
791
- headers = {};
792
- if (metadata === null || metadata === void 0 ? void 0 : metadata.etag) {
793
- headers["If-None-Match"] = metadata.etag;
794
- }
795
- if (metadata === null || metadata === void 0 ? void 0 : metadata.lastModified) {
796
- headers["If-Modified-Since"] = metadata.lastModified;
797
- }
798
- _state.label = 3;
799
- case 3:
800
- _state.trys.push([
801
- 3,
802
- 8,
803
- ,
804
- 9
805
- ]);
806
- return [
807
- 4,
808
- fetch("https://registry.npmjs.org/".concat(packageName, "/latest"), {
809
- headers: headers
810
- })
811
- ];
812
- case 4:
813
- response = _state.sent();
814
- if (response.status === 304 && cached) {
815
- return [
816
- 2,
817
- cached.version
818
- ];
819
- }
820
- if (!response.ok) {
821
- throw new Error("Failed to fetch latest version: ".concat(response.statusText));
822
- }
823
- return [
824
- 4,
825
- response.json()
826
- ];
827
- case 5:
828
- data = _state.sent();
829
- latestVersion = data.version;
830
- return [
831
- 4,
832
- storageServer.set(versionCacheKey, {
833
- version: latestVersion,
834
- timestamp: Date.now()
835
- })
836
- ];
837
- case 6:
838
- _state.sent();
839
- return [
840
- 4,
841
- storageServer.set(metadataCacheKey, {
842
- etag: response.headers.get("ETag") || void 0,
843
- lastModified: response.headers.get("Last-Modified") || void 0
844
- })
845
- ];
846
- case 7:
847
- _state.sent();
848
- return [
849
- 2,
850
- latestVersion
851
- ];
852
- case 8:
853
- error = _state.sent();
854
- commandLog.error("Error fetching latest version for ".concat(packageName, ": ").concat(error.message));
855
- if (cached) {
856
- commandLog.warning("Falling back to cached version for ".concat(packageName, ": ").concat(cached.version));
857
- return [
858
- 2,
859
- cached.version
860
- ];
861
- }
862
- throw error;
863
- case 9:
864
- return [
865
- 2
866
- ];
867
- }
868
- });
869
- });
870
- return _getLatestPackageVersion.apply(this, arguments);
871
- }
872
- function checkPackage(packageName) {
873
- return _checkPackage.apply(this, arguments);
874
- }
875
- function _checkPackage() {
876
- _checkPackage = _async_to_generator(function(packageName) {
877
- var result, packageFound, cyberskillPackageJsonPath, isCurrentProject, _tmp, error;
878
- return _ts_generator(this, function(_state) {
879
- switch(_state.label){
880
- case 0:
881
- result = {
882
- isInstalled: false,
883
- isCurrentProject: false,
884
- installedPath: "",
885
- installedVersion: "",
886
- latestVersion: "",
887
- file: {}
888
- };
889
- _state.label = 1;
890
- case 1:
891
- _state.trys.push([
892
- 1,
893
- 5,
894
- ,
895
- 6
896
- ]);
897
- packageFound = getPackageJson(packageName);
898
- if (!packageFound) {
899
- return [
900
- 2,
901
- result
902
- ];
903
- }
904
- cyberskillPackageJsonPath = resolveCyberSkillPath(PACKAGE_JSON);
905
- isCurrentProject = packageFound.path === cyberskillPackageJsonPath;
906
- result.file = packageFound.file;
907
- result.isInstalled = true;
908
- result.installedPath = packageFound.path;
909
- result.installedVersion = packageFound.file.version;
910
- result.isCurrentProject = isCurrentProject;
911
- if (!isCurrentProject) return [
912
- 3,
913
- 2
914
- ];
915
- _tmp = packageFound.file.version;
916
- return [
917
- 3,
918
- 4
919
- ];
920
- case 2:
921
- return [
922
- 4,
923
- getLatestPackageVersion(packageName, true)
924
- ];
925
- case 3:
926
- _tmp = _state.sent();
927
- _state.label = 4;
928
- case 4:
929
- result.latestVersion = _tmp;
930
- return [
931
- 2,
932
- result
933
- ];
934
- case 5:
935
- error = _state.sent();
936
- commandLog.error('Error checking package "'.concat(packageName, '": ').concat(error.message));
937
- return [
938
- 2,
939
- result
940
- ];
941
- case 6:
942
- return [
943
- 2
944
- ];
945
- }
946
- });
947
- });
948
- return _checkPackage.apply(this, arguments);
949
- }
950
- // src/utils/command.ts
951
- var DEBUG = process2.env.DEBUG === "true";
952
- var execPromise = util.promisify(exec);
953
- var gray = chalk.gray, blue = chalk.blue;
954
- var getTimeStamp = function() {
955
- return gray("[".concat(/* @__PURE__ */ new Date().toLocaleTimeString(), "]"));
956
- };
957
- function chalkKeyword(color) {
958
- var chalkColor = chalk[color];
959
- return typeof chalkColor === "function" ? chalkColor : chalk.green;
960
- }
961
- function printLog(type, color, icon, message) {
962
- var chalkColor = chalkKeyword(color);
963
- console.log("".concat(getTimeStamp(), " ").concat(chalkColor("".concat(icon, " ").concat(type)), " ").concat(message));
964
- }
965
- function printBoxedLog(title, content) {
966
- var _ref = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, _ref_color = _ref.color, color = _ref_color === void 0 ? "green" : _ref_color, _ref_padding = _ref.padding, padding = _ref_padding === void 0 ? 1 : _ref_padding, _ref_margin = _ref.margin, margin = _ref_margin === void 0 ? 1 : _ref_margin, _ref_borderStyle = _ref.borderStyle, borderStyle = _ref_borderStyle === void 0 ? "round" : _ref_borderStyle, _ref_titleColor = _ref.titleColor, titleColor = _ref_titleColor === void 0 ? "bold" : _ref_titleColor;
967
- var chalkColor = chalkKeyword(color);
968
- var chalkTitleColor = chalkKeyword(titleColor);
969
- if (typeof content === "string") {
970
- console.log(boxen(chalkTitleColor(chalkColor("".concat(title, "\n").concat(content))), {
971
- padding: padding,
972
- margin: margin,
973
- borderStyle: borderStyle,
974
- borderColor: color
975
- }));
976
- return;
977
- }
978
- if (Array.isArray(content) && content.length) {
979
- content.forEach(function(param) {
980
- var file = param.file, position = param.position, rule = param.rule, message = param.message;
981
- console.log("".concat(getTimeStamp(), " ").concat(chalkColor("File:"), " ").concat(blue("".concat(file).concat(position ? ":".concat(position) : ""))));
982
- if (rule) console.log(" ".concat(chalkColor("Rule:"), " ").concat(chalkColor(rule)));
983
- console.log(" ".concat(chalkColor("Message:"), " ").concat(chalkColor(message)));
984
- });
985
- console.log(boxen(chalkTitleColor(chalkColor("".concat(title, ": ").concat(content.length))), {
986
- padding: padding,
987
- margin: margin,
988
- borderStyle: borderStyle,
989
- borderColor: color
990
- }));
991
- console.log(gray("\u2500".repeat(40)));
992
- }
993
- }
994
- var commandLog = {
995
- success: function(message) {
996
- return printLog("SUCCESS", "green", "\u2714", message);
997
- },
998
- error: function(message) {
999
- return printLog("ERROR", "red", "\u2716", message);
1000
- },
1001
- warning: function(message) {
1002
- return printLog("WARNING", "yellow", "\u26A0", message);
1003
- },
1004
- info: function(message) {
1005
- return printLog("INFO", "blue", "\u2139", message);
1006
- },
1007
- printBoxedLog: printBoxedLog
1008
- };
1009
- var getErrorListKey = function(timestamp) {
1010
- return "error_list:".concat(timestamp);
1011
- };
1012
- function saveErrorListToStorage(errorList) {
1013
- return _saveErrorListToStorage.apply(this, arguments);
1014
- }
1015
- function _saveErrorListToStorage() {
1016
- _saveErrorListToStorage = _async_to_generator(function(errorList) {
1017
- var timestamp, key, error;
1018
- return _ts_generator(this, function(_state) {
1019
- switch(_state.label){
1020
- case 0:
1021
- if (errorList.length === 0) {
1022
- return [
1023
- 2
1024
- ];
1025
- }
1026
- timestamp = Date.now();
1027
- key = getErrorListKey(timestamp);
1028
- _state.label = 1;
1029
- case 1:
1030
- _state.trys.push([
1031
- 1,
1032
- 3,
1033
- ,
1034
- 4
1035
- ]);
1036
- return [
1037
- 4,
1038
- storageServer.set(key, {
1039
- errors: errorList,
1040
- timestamp: timestamp
1041
- })
1042
- ];
1043
- case 2:
1044
- _state.sent();
1045
- setTimeout(/*#__PURE__*/ _async_to_generator(function() {
1046
- var logPath;
1047
- return _ts_generator(this, function(_state) {
1048
- switch(_state.label){
1049
- case 0:
1050
- return [
1051
- 4,
1052
- storageServer.getLogLink(key)
1053
- ];
1054
- case 1:
1055
- logPath = _state.sent();
1056
- if (logPath) {
1057
- commandLog.info("\uD83D\uDCC2 Open the error list manually: ".concat(logPath));
1058
- }
1059
- return [
1060
- 2
1061
- ];
1062
- }
1063
- });
1064
- }), 10);
1065
- return [
1066
- 3,
1067
- 4
1068
- ];
1069
- case 3:
1070
- error = _state.sent();
1071
- commandLog.error("Failed to save errors: ".concat(error.message));
1072
- return [
1073
- 3,
1074
- 4
1075
- ];
1076
- case 4:
1077
- return [
1078
- 2
1079
- ];
1080
- }
1081
- });
1082
- });
1083
- return _saveErrorListToStorage.apply(this, arguments);
1084
- }
1085
- function getStoredErrorLists() {
1086
- return _getStoredErrorLists.apply(this, arguments);
1087
- }
1088
- function _getStoredErrorLists() {
1089
- _getStoredErrorLists = _async_to_generator(function() {
1090
- var keys, errorKeys, allErrors, error;
1091
- return _ts_generator(this, function(_state) {
1092
- switch(_state.label){
1093
- case 0:
1094
- _state.trys.push([
1095
- 0,
1096
- 3,
1097
- ,
1098
- 4
1099
- ]);
1100
- return [
1101
- 4,
1102
- storageServer.keys()
1103
- ];
1104
- case 1:
1105
- keys = _state.sent();
1106
- errorKeys = Array.isArray(keys) ? keys.filter(function(key) {
1107
- var _key_startsWith;
1108
- return key === null || key === void 0 ? void 0 : (_key_startsWith = key.startsWith) === null || _key_startsWith === void 0 ? void 0 : _key_startsWith.call(key, "error_list:");
1109
- }) : [];
1110
- return [
1111
- 4,
1112
- Promise.all(errorKeys.map(/*#__PURE__*/ function() {
1113
- var _ref = _async_to_generator(function(key) {
1114
- var entry;
1115
- return _ts_generator(this, function(_state) {
1116
- switch(_state.label){
1117
- case 0:
1118
- return [
1119
- 4,
1120
- storageServer.get(key)
1121
- ];
1122
- case 1:
1123
- entry = _state.sent();
1124
- return [
1125
- 2,
1126
- (entry === null || entry === void 0 ? void 0 : entry.errors) || []
1127
- ];
1128
- }
1129
- });
1130
- });
1131
- return function(key) {
1132
- return _ref.apply(this, arguments);
1133
- };
1134
- }()))
1135
- ];
1136
- case 2:
1137
- allErrors = _state.sent();
1138
- return [
1139
- 2,
1140
- allErrors.flat()
1141
- ];
1142
- case 3:
1143
- error = _state.sent();
1144
- commandLog.error("Failed to retrieve stored errors: ".concat(error.message));
1145
- return [
1146
- 2,
1147
- []
1148
- ];
1149
- case 4:
1150
- return [
1151
- 2
1152
- ];
1153
- }
1154
- });
1155
- });
1156
- return _getStoredErrorLists.apply(this, arguments);
1157
- }
1158
- function clearAllErrorLists() {
1159
- return _clearAllErrorLists.apply(this, arguments);
1160
- }
1161
- function _clearAllErrorLists() {
1162
- _clearAllErrorLists = _async_to_generator(function() {
1163
- var keys, errorKeys, error;
1164
- return _ts_generator(this, function(_state) {
1165
- switch(_state.label){
1166
- case 0:
1167
- _state.trys.push([
1168
- 0,
1169
- 3,
1170
- ,
1171
- 4
1172
- ]);
1173
- return [
1174
- 4,
1175
- storageServer.keys()
1176
- ];
1177
- case 1:
1178
- keys = _state.sent();
1179
- errorKeys = Array.isArray(keys) ? keys.filter(function(key) {
1180
- var _key_startsWith;
1181
- return key === null || key === void 0 ? void 0 : (_key_startsWith = key.startsWith) === null || _key_startsWith === void 0 ? void 0 : _key_startsWith.call(key, "error_list:");
1182
- }) : [];
1183
- return [
1184
- 4,
1185
- Promise.all(errorKeys.map(function(key) {
1186
- return storageServer.remove(key);
1187
- }))
1188
- ];
1189
- case 2:
1190
- _state.sent();
1191
- return [
1192
- 3,
1193
- 4
1194
- ];
1195
- case 3:
1196
- error = _state.sent();
1197
- commandLog.error("Failed to clear error lists: ".concat(error.message));
1198
- return [
1199
- 3,
1200
- 4
1201
- ];
1202
- case 4:
1203
- return [
1204
- 2
1205
- ];
1206
- }
1207
- });
1208
- });
1209
- return _clearAllErrorLists.apply(this, arguments);
1210
- }
1211
- function parseTextErrors(output) {
1212
- var errorList = [];
1213
- var unmatchedLines = [];
1214
- var lastFilePath = "";
1215
- var eslintErrorDetailsRegex = /^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/;
1216
- var tsRegex = /^(.+?)\((\d+),(\d+)\):\s+(error|warning)\s+TS\d+:\s+(\S.+)$/;
1217
- var commitlintRegex = /^✖\s+(.*?)\s+\[(.*?)\]$/;
1218
- output.split("\n").forEach(function(line) {
1219
- if (line.startsWith("/")) {
1220
- lastFilePath = line.trim();
1221
- } else {
1222
- var eslintMatch = eslintErrorDetailsRegex.exec(line) || [];
1223
- var tsMatch = tsRegex.exec(line) || [];
1224
- var commitlintMatch = commitlintRegex.exec(line) || [];
1225
- if (eslintMatch.length && lastFilePath) {
1226
- errorList.push({
1227
- file: lastFilePath,
1228
- position: "".concat(eslintMatch[1], ":").concat(eslintMatch[2]),
1229
- type: eslintMatch[3] === "error" /* Error */ ? "error" /* Error */ : "warning" /* Warning */ ,
1230
- message: eslintMatch[4].trim(),
1231
- rule: eslintMatch[5].trim()
1232
- });
1233
- } else if (tsMatch.length) {
1234
- errorList.push({
1235
- file: tsMatch[1],
1236
- position: "".concat(tsMatch[2], ":").concat(tsMatch[3]),
1237
- type: tsMatch[4] === "error" /* Error */ ? "error" /* Error */ : "warning" /* Warning */ ,
1238
- message: tsMatch[5].trim()
1239
- });
1240
- } else if (commitlintMatch.length) {
1241
- errorList.push({
1242
- file: "commitlint",
1243
- type: "error" /* Error */ ,
1244
- message: commitlintMatch[1].trim(),
1245
- rule: commitlintMatch[2].trim()
1246
- });
1247
- } else {
1248
- unmatchedLines.push(line.trim());
1249
- }
1250
- }
1251
- });
1252
- if (errorList.length) {
1253
- saveErrorListToStorage(errorList);
1254
- }
1255
- if (unmatchedLines.length && DEBUG) {
1256
- commandLog.warning("Unmatched lines:");
1257
- unmatchedLines.forEach(function(line) {
1258
- return console.log(" ".concat(line));
1259
- });
1260
- }
1261
- }
1262
- function parseCommandOutput(output) {
1263
- try {
1264
- var results = JSON.parse(output);
1265
- var errorList = [];
1266
- results.forEach(function(param) {
1267
- var filePath = param.filePath, messages = param.messages;
1268
- messages.forEach(function(param) {
1269
- var severity = param.severity, line = param.line, column = param.column, ruleId = param.ruleId, message = param.message;
1270
- errorList.push({
1271
- type: severity === 2 ? "error" /* Error */ : "warning" /* Warning */ ,
1272
- file: filePath,
1273
- position: "".concat(line, ":").concat(column),
1274
- rule: ruleId,
1275
- message: message
1276
- });
1277
- });
1278
- });
1279
- if (errorList.length) {
1280
- saveErrorListToStorage(errorList);
1281
- }
1282
- } catch (e) {
1283
- parseTextErrors(output);
1284
- }
1285
- }
1286
- function executeCommand(command) {
1287
- return _executeCommand.apply(this, arguments);
1288
- }
1289
- function _executeCommand() {
1290
- _executeCommand = _async_to_generator(function(command) {
1291
- var parser, controller, _ref, stdout, stderr, error, stdout1, stderr1, message;
1292
- var _arguments = arguments;
1293
- return _ts_generator(this, function(_state) {
1294
- switch(_state.label){
1295
- case 0:
1296
- parser = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : parseCommandOutput;
1297
- controller = new AbortController();
1298
- process2.on("SIGINT", function() {
1299
- commandLog.warning("Process interrupted. Terminating...");
1300
- controller.abort();
1301
- process2.exit();
1302
- });
1303
- _state.label = 1;
1304
- case 1:
1305
- _state.trys.push([
1306
- 1,
1307
- 3,
1308
- ,
1309
- 4
1310
- ]);
1311
- return [
1312
- 4,
1313
- execPromise(command, {
1314
- maxBuffer: 1024 * 1024 * 100,
1315
- signal: controller.signal
1316
- })
1317
- ];
1318
- case 2:
1319
- _ref = _state.sent(), stdout = _ref.stdout, stderr = _ref.stderr;
1320
- [
1321
- stdout,
1322
- stderr
1323
- ].forEach(function(output) {
1324
- return output && parser(output);
1325
- });
1326
- return [
1327
- 3,
1328
- 4
1329
- ];
1330
- case 3:
1331
- error = _state.sent();
1332
- stdout1 = error.stdout, stderr1 = error.stderr, message = error.message;
1333
- [
1334
- stdout1,
1335
- stderr1
1336
- ].forEach(function(output) {
1337
- return output && parser(output);
1338
- });
1339
- if (!stderr1 && !stdout1) {
1340
- commandLog.error("Command failed: ".concat(message));
1341
- }
1342
- return [
1343
- 3,
1344
- 4
1345
- ];
1346
- case 4:
1347
- return [
1348
- 2
1349
- ];
1350
- }
1351
- });
1352
- });
1353
- return _executeCommand.apply(this, arguments);
1354
- }
1355
- var commandFormatter = {
1356
- raw: function(cmd) {
1357
- return {
1358
- raw: true,
1359
- cmd: cmd
1360
- };
1361
- },
1362
- isRaw: function isRaw(cmd) {
1363
- return (typeof cmd === "undefined" ? "undefined" : _type_of(cmd)) === "object" && cmd !== null && cmd.raw === true;
1364
- },
1365
- format: function format(command, context) {
1366
- if (typeof command === "function") {
1367
- return commandFormatter.formatCLI(command(context), context);
1368
- }
1369
- if (commandFormatter.isRaw(command)) {
1370
- return command.cmd;
1371
- }
1372
- return commandFormatter.formatCLI(command, context);
1373
- },
1374
- formatCLI: function formatCLI(command, context) {
1375
- if (context === null || context === void 0 ? void 0 : context.isRemote) {
1376
- return "".concat(PNPM_DLX_CLI, " ").concat(CYBERSKILL_PACKAGE_NAME, " ").concat(command);
1377
- }
1378
- if (context === null || context === void 0 ? void 0 : context.isCurrentProject) {
1379
- return "".concat(PNPM_EXEC_CLI, " ").concat(TSX_CLI, " src/cli.ts ").concat(command);
1380
- }
1381
- return "".concat(PNPM_EXEC_CLI, " ").concat(CYBERSKILL_CLI, " ").concat(command);
1382
- }
1383
- };
1384
- function resolveCommands(input) {
1385
- return _resolveCommands.apply(this, arguments);
1386
- }
1387
- function _resolveCommands() {
1388
- _resolveCommands = _async_to_generator(function(input) {
1389
- var context, _context_isRemote, isRemote, isCurrentProject, _tmp, ctx, commands;
1390
- var _arguments = arguments;
1391
- return _ts_generator(this, function(_state) {
1392
- switch(_state.label){
1393
- case 0:
1394
- context = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {};
1395
- isRemote = (_context_isRemote = context === null || context === void 0 ? void 0 : context.isRemote) !== null && _context_isRemote !== void 0 ? _context_isRemote : false;
1396
- if (!isRemote) return [
1397
- 3,
1398
- 1
1399
- ];
1400
- _tmp = false;
1401
- return [
1402
- 3,
1403
- 3
1404
- ];
1405
- case 1:
1406
- return [
1407
- 4,
1408
- checkPackage(CYBERSKILL_PACKAGE_NAME)
1409
- ];
1410
- case 2:
1411
- _tmp = _state.sent().isCurrentProject;
1412
- _state.label = 3;
1413
- case 3:
1414
- isCurrentProject = _tmp;
1415
- ctx = {
1416
- isRemote: isRemote,
1417
- isCurrentProject: isCurrentProject
1418
- };
1419
- commands = typeof input === "function" ? input(ctx) : input;
1420
- return [
1421
- 2,
1422
- Object.fromEntries(Object.entries(commands).map(function(param) {
1423
- var _param = _sliced_to_array(param, 2), key = _param[0], cmd = _param[1];
1424
- return [
1425
- key,
1426
- commandFormatter.format(cmd, ctx)
1427
- ];
1428
- }))
1429
- ];
1430
- }
1431
- });
1432
- });
1433
- return _resolveCommands.apply(this, arguments);
1434
- }
1435
- // src/constants/path.ts
1436
- var __filename2 = fileURLToPath(import.meta.url);
1437
- var __dirname2 = dirname2(__filename2);
1438
- var CYBERSKILL_DIRECTORY = resolve2(__dirname2, "../../");
1439
- var WORKING_DIRECTORY = process3.env.INIT_CWD || process3.cwd();
1440
- var CYBERSKILL_PACKAGE_NAME = "@cyberskill/shared";
1441
- var CYBERSKILL_STORAGE = ".cyberskill-storage";
1442
- var NODE_MODULES = "node_modules";
1443
- var BUILD_DIRECTORY = "dist";
1444
- var PACKAGE_JSON = "package.json";
1445
- var PACKAGE_LOCK_JSON = "package-lock.json";
1446
- var TSCONFIG_JSON = "tsconfig.json";
1447
- var GIT_IGNORE = ".gitignore";
1448
- var SIMPLE_GIT_HOOK_JSON = ".simple-git-hooks.json";
1449
- var PNPM_LOCK_YAML = "pnpm-lock.yaml";
1450
- var GIT_HOOK = ".git/hooks";
1451
- var GIT_COMMIT_EDITMSG = ".git/COMMIT_EDITMSG";
1452
- var CYBERSKILL_CLI = "cyberskill";
1453
- var ESLINT_CLI = "eslint";
1454
- var VITEST_CLI = "vitest";
1455
- var COMMIT_LINT_CLI = "commitlint";
1456
- var LINT_STAGED_CLI = "lint-staged";
1457
- var RIMRAF_CLI = "rimraf";
1458
- var TSC_CLI = "tsc";
1459
- var TSX_CLI = "tsx";
1460
- var GIT_CLI = "git";
1461
- var PNPM_CLI = "pnpm";
1462
- var PNPM_DLX_CLI = "pnpm dlx";
1463
- var PNPM_EXEC_CLI = "pnpm exec";
1464
- var SIMPLE_GIT_HOOK_CLI = "simple-git-hooks";
1465
- var ESLINT_INSPECT_CLI = "@eslint/config-inspector";
1466
- var NODE_MODULES_INSPECT_CLI = "node_modules-inspect";
1467
- var PATH = {
1468
- CYBERSKILL_DIRECTORY: CYBERSKILL_DIRECTORY,
1469
- WORKING_DIRECTORY: WORKING_DIRECTORY,
1470
- TS_CONFIG: resolveWorkingPath(TSCONFIG_JSON),
1471
- GIT_IGNORE: resolveWorkingPath(GIT_IGNORE),
1472
- GIT_HOOK: resolveWorkingPath(GIT_HOOK),
1473
- GIT_COMMIT_MSG: resolveWorkingPath(GIT_COMMIT_EDITMSG),
1474
- SIMPLE_GIT_HOOKS_JSON: resolveWorkingPath(SIMPLE_GIT_HOOK_JSON),
1475
- PACKAGE_JSON: resolveWorkingPath(PACKAGE_JSON),
1476
- PACKAGE_LOCK_JSON: resolveWorkingPath(PACKAGE_LOCK_JSON),
1477
- PNPM_LOCK_YAML: resolveWorkingPath(PNPM_LOCK_YAML),
1478
- NODE_MODULES: resolveWorkingPath(NODE_MODULES),
1479
- CYBERSKILL: {
1480
- LINT_STAGED_CONFIG: resolveCyberSkillPath("./configs/lint-staged/base.js"),
1481
- COMMITLINT_CONFIG: resolveCyberSkillPath("./configs/commitlint/base.js"),
1482
- UNIT_TEST_CONFIG: resolveCyberSkillPath("./configs/vitest/react/unit.js"),
1483
- E2E_TEST_CONFIG: resolveCyberSkillPath("./configs/vitest/react/e2e.js")
1484
- }
1485
- };
1486
- function HOOK(param) {
1487
- var isCurrentProject = param.isCurrentProject;
1488
- return _object_spread({
1489
- "pre-commit": LINT_STAGED_CLI,
1490
- "commit-msg": COMMIT_LINT_CLI
1491
- }, isCurrentProject && {
1492
- "pre-push": commandFormatter.raw("".concat(GIT_CLI, " pull"))
1493
- });
1494
- }
1495
- var COMMAND = {
1496
- SIMPLE_GIT_HOOKS: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(SIMPLE_GIT_HOOK_CLI)),
1497
- ESLINT_INSPECT: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(ESLINT_INSPECT_CLI)),
1498
- NODE_MODULES_INSPECT: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(NODE_MODULES_INSPECT_CLI)),
1499
- RESET: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(RIMRAF_CLI, " ").concat(NODE_MODULES, " ").concat(PNPM_LOCK_YAML)),
1500
- ESLINT_CHECK: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(ESLINT_CLI, " ").concat(PATH.WORKING_DIRECTORY)),
1501
- ESLINT_FIX: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(ESLINT_CLI, " ").concat(PATH.WORKING_DIRECTORY, " --fix")),
1502
- TYPESCRIPT_CHECK: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(TSC_CLI, " -p ").concat(PATH.TS_CONFIG, " --noEmit")),
1503
- CYBERSKILL: {
1504
- TEST_UNIT: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(VITEST_CLI, " --config ").concat(PATH.CYBERSKILL.UNIT_TEST_CONFIG)),
1505
- TEST_E2E: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(VITEST_CLI, " --config ").concat(PATH.CYBERSKILL.E2E_TEST_CONFIG)),
1506
- COMMIT_LINT: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(COMMIT_LINT_CLI, " --edit ").concat(PATH.GIT_COMMIT_MSG, " --config ").concat(PATH.CYBERSKILL.COMMITLINT_CONFIG)),
1507
- LINT_STAGED: commandFormatter.raw("".concat(PNPM_EXEC_CLI, " ").concat(LINT_STAGED_CLI, " --config ").concat(PATH.CYBERSKILL.LINT_STAGED_CONFIG))
1508
- },
1509
- CONFIGURE_GIT_HOOK: commandFormatter.raw("".concat(GIT_CLI, " config core.hooksPath ").concat(PATH.GIT_HOOK)),
1510
- BUILD: commandFormatter.raw("".concat(PNPM_CLI, " run build")),
1511
- STAGE_BUILD_DIRECTORY: commandFormatter.raw("".concat(GIT_CLI, " add ").concat(BUILD_DIRECTORY)),
1512
- PNPM_INSTALL_STANDARD: commandFormatter.raw("".concat(PNPM_CLI, " install")),
1513
- PNPM_INSTALL_LEGACY: commandFormatter.raw("".concat(PNPM_CLI, " install --legacy-peer-deps")),
1514
- PNPM_INSTALL_FORCE: commandFormatter.raw("".concat(PNPM_CLI, " install --force"))
1515
- };
1516
- // src/constants/response-status.ts
1517
- var RESPONSE_STATUS = {
1518
- GRAPHQL_PARSE_FAILED: {
1519
- CODE: "GRAPHQL_PARSE_FAILED",
1520
- MESSAGE: "The GraphQL operation string contains a syntax error."
1521
- },
1522
- GRAPHQL_VALIDATION_FAILED: {
1523
- CODE: "GRAPHQL_VALIDATION_FAILED",
1524
- MESSAGE: "The GraphQL operation is not valid against the server's schema."
1525
- },
1526
- BAD_USER_INPUT: {
1527
- CODE: "BAD_USER_INPUT",
1528
- MESSAGE: "The GraphQL operation includes an invalid value for a field argument."
1529
- },
1530
- PERSISTED_QUERY_NOT_FOUND: {
1531
- CODE: "PERSISTED_QUERY_NOT_FOUND",
1532
- MESSAGE: "A client sent the hash of a query string to execute via automatic persisted queries, but the query was not in the APQ cache."
1533
- },
1534
- PERSISTED_QUERY_NOT_SUPPORTED: {
1535
- CODE: "PERSISTED_QUERY_NOT_SUPPORTED",
1536
- MESSAGE: "A client sent the hash of a query string to execute via automatic persisted queries, but the server has disabled APQ."
1537
- },
1538
- OPERATION_RESOLUTION_FAILURE: {
1539
- CODE: "OPERATION_RESOLUTION_FAILURE",
1540
- MESSAGE: "The request was parsed successfully and is valid against the server's schema, but the server couldn't resolve which operation to run. This occurs when a request containing multiple named operations doesn't specify which operation to run (i.e.,operationName), or if the named operation isn't included in the request."
1541
- },
1542
- CONTINUE: {
1543
- CODE: 100,
1544
- MESSAGE: "Continue"
1545
- },
1546
- SWITCHING_PROTOCOLS: {
1547
- CODE: 101,
1548
- MESSAGE: "Switching Protocols"
1549
- },
1550
- PROCESSING: {
1551
- CODE: 102,
1552
- MESSAGE: "Processing"
1553
- },
1554
- OK: {
1555
- CODE: 200,
1556
- MESSAGE: "OK"
1557
- },
1558
- CREATED: {
1559
- CODE: 201,
1560
- MESSAGE: "Created"
1561
- },
1562
- ACCEPTED: {
1563
- CODE: 202,
1564
- MESSAGE: "Accepted"
1565
- },
1566
- NON_AUTHORITATIVE_INFORMATION: {
1567
- CODE: 203,
1568
- MESSAGE: "Non Authoritative Information"
1569
- },
1570
- NO_CONTENT: {
1571
- CODE: 204,
1572
- MESSAGE: "No Content"
1573
- },
1574
- RESET_CONTENT: {
1575
- CODE: 205,
1576
- MESSAGE: "Reset Content"
1577
- },
1578
- PARTIAL_CONTENT: {
1579
- CODE: 206,
1580
- MESSAGE: "Partial Content"
1581
- },
1582
- MULTI_STATUS: {
1583
- CODE: 207,
1584
- MESSAGE: "Multi-Status"
1585
- },
1586
- MULTIPLE_CHOICES: {
1587
- CODE: 300,
1588
- MESSAGE: "Multiple Choices"
1589
- },
1590
- MOVED_PERMANENTLY: {
1591
- CODE: 301,
1592
- MESSAGE: "Moved Permanently"
1593
- },
1594
- MOVED_TEMPORARILY: {
1595
- CODE: 302,
1596
- MESSAGE: "Moved Temporarily"
1597
- },
1598
- SEE_OTHER: {
1599
- CODE: 303,
1600
- MESSAGE: "See Other"
1601
- },
1602
- NOT_MODIFIED: {
1603
- CODE: 304,
1604
- MESSAGE: "Not Modified"
1605
- },
1606
- USE_PROXY: {
1607
- CODE: 305,
1608
- MESSAGE: "Use Proxy"
1609
- },
1610
- TEMPORARY_REDIRECT: {
1611
- CODE: 307,
1612
- MESSAGE: "Temporary Redirect"
1613
- },
1614
- PERMANENT_REDIRECT: {
1615
- CODE: 308,
1616
- MESSAGE: "Permanent Redirect"
1617
- },
1618
- BAD_REQUEST: {
1619
- CODE: 400,
1620
- MESSAGE: "Bad Request"
1621
- },
1622
- UNAUTHORIZED: {
1623
- CODE: 401,
1624
- MESSAGE: "Unauthorized"
1625
- },
1626
- PAYMENT_REQUIRED: {
1627
- CODE: 402,
1628
- MESSAGE: "Payment Required"
1629
- },
1630
- FORBIDDEN: {
1631
- CODE: 403,
1632
- MESSAGE: "Forbidden"
1633
- },
1634
- NOT_FOUND: {
1635
- CODE: 404,
1636
- MESSAGE: "Not Found"
1637
- },
1638
- METHOD_NOT_ALLOWED: {
1639
- CODE: 405,
1640
- MESSAGE: "Method Not Allowed"
1641
- },
1642
- NOT_ACCEPTABLE: {
1643
- CODE: 406,
1644
- MESSAGE: "Not Acceptable"
1645
- },
1646
- PROXY_AUTHENTICATION_REQUIRED: {
1647
- CODE: 407,
1648
- MESSAGE: "Proxy Authentication Required"
1649
- },
1650
- REQUEST_TIMEOUT: {
1651
- CODE: 408,
1652
- MESSAGE: "Request Timeout"
1653
- },
1654
- CONFLICT: {
1655
- CODE: 409,
1656
- MESSAGE: "Conflict"
1657
- },
1658
- GONE: {
1659
- CODE: 410,
1660
- MESSAGE: "Gone"
1661
- },
1662
- LENGTH_REQUIRED: {
1663
- CODE: 411,
1664
- MESSAGE: "Length Required"
1665
- },
1666
- PRECONDITION_FAILED: {
1667
- CODE: 412,
1668
- MESSAGE: "Precondition Failed"
1669
- },
1670
- REQUEST_TOO_LONG: {
1671
- CODE: 413,
1672
- MESSAGE: "Request Entity Too Large"
1673
- },
1674
- REQUEST_URI_TOO_LONG: {
1675
- CODE: 414,
1676
- MESSAGE: "Request-URI Too Long"
1677
- },
1678
- UNSUPPORTED_MEDIA_TYPE: {
1679
- CODE: 415,
1680
- MESSAGE: "Unsupported Media Type"
1681
- },
1682
- REQUESTED_RANGE_NOT_SATISFIABLE: {
1683
- CODE: 416,
1684
- MESSAGE: "Requested Range Not Satisfiable"
1685
- },
1686
- EXPECTATION_FAILED: {
1687
- CODE: 417,
1688
- MESSAGE: "Expectation Failed"
1689
- },
1690
- IM_A_TEAPOT: {
1691
- CODE: 418,
1692
- MESSAGE: "I'm a teapot"
1693
- },
1694
- INSUFFICIENT_SPACE_ON_RESOURCE: {
1695
- CODE: 419,
1696
- MESSAGE: "Insufficient Space on Resource"
1697
- },
1698
- METHOD_FAILURE: {
1699
- CODE: 420,
1700
- MESSAGE: "Method Failure"
1701
- },
1702
- MISDIRECTED_REQUEST: {
1703
- CODE: 421,
1704
- MESSAGE: "Misdirected Request"
1705
- },
1706
- UNPROCESSABLE_ENTITY: {
1707
- CODE: 422,
1708
- MESSAGE: "Unprocessable Entity"
1709
- },
1710
- LOCKED: {
1711
- CODE: 423,
1712
- MESSAGE: "Locked"
1713
- },
1714
- FAILED_DEPENDENCY: {
1715
- CODE: 424,
1716
- MESSAGE: "Failed Dependency"
1717
- },
1718
- PRECONDITION_REQUIRED: {
1719
- CODE: 428,
1720
- MESSAGE: "Precondition Required"
1721
- },
1722
- TOO_MANY_REQUESTS: {
1723
- CODE: 429,
1724
- MESSAGE: "Too Many Requests"
1725
- },
1726
- REQUEST_HEADER_FIELDS_TOO_LARGE: {
1727
- CODE: 431,
1728
- MESSAGE: "Request Header Fields Too Large"
1729
- },
1730
- UNAVAILABLE_FOR_LEGAL_REASONS: {
1731
- CODE: 451,
1732
- MESSAGE: "Unavailable For Legal Reasons"
1733
- },
1734
- INTERNAL_SERVER_ERROR: {
1735
- CODE: 500,
1736
- MESSAGE: "Internal Server Error"
1737
- },
1738
- NOT_IMPLEMENTED: {
1739
- CODE: 501,
1740
- MESSAGE: "Not Implemented"
1741
- },
1742
- BAD_GATEWAY: {
1743
- CODE: 502,
1744
- MESSAGE: "Bad Gateway"
1745
- },
1746
- SERVICE_UNAVAILABLE: {
1747
- CODE: 503,
1748
- MESSAGE: "Service Unavailable"
1749
- },
1750
- GATEWAY_TIMEOUT: {
1751
- CODE: 504,
1752
- MESSAGE: "Gateway Timeout"
1753
- },
1754
- HTTP_VERSION_NOT_SUPPORTED: {
1755
- CODE: 505,
1756
- MESSAGE: "HTTP Version Not Supported"
1757
- },
1758
- INSUFFICIENT_STORAGE: {
1759
- CODE: 507,
1760
- MESSAGE: "Insufficient Storage"
1761
- },
1762
- NETWORK_AUTHENTICATION_REQUIRED: {
1763
- CODE: 511,
1764
- MESSAGE: "Network Authentication Required"
1765
- }
1766
- };
1767
- // src/nodejs/mongo.ts
1768
- import { format } from "date-fns";
1769
- import { Document } from "mongoose";
1770
- import aggregatePaginate from "mongoose-aggregate-paginate-v2";
1771
- import mongoosePaginate from "mongoose-paginate-v2";
1772
- import { v4 as uuidv4 } from "uuid";
1773
- // src/utils/string.ts
1774
- import cryptoJS from "crypto-js";
1775
- import slugifyRaw from "slugify";
1776
- var slugify = slugifyRaw.default || slugifyRaw;
1777
- function generateSlug() {
1778
- var str = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", options = arguments.length > 1 ? arguments[1] : void 0;
1779
- var _ref = options || {}, _ref_lower = _ref.lower, lower = _ref_lower === void 0 ? true : _ref_lower, _ref_locale = _ref.locale, locale = _ref_locale === void 0 ? "vi" : _ref_locale, rest = _object_without_properties(_ref, [
1780
- "lower",
1781
- "locale"
1782
- ]);
1783
- return slugify(str, _object_spread({
1784
- lower: lower,
1785
- locale: locale
1786
- }, rest));
1787
- }
1788
- function generateShortId(uuid) {
1789
- var length = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 4;
1790
- return cryptoJS.SHA256(uuid).toString(cryptoJS.enc.Hex).slice(0, length);
1791
- }
1792
- // src/utils/validate.ts
1793
- var validate = {
1794
- isEmpty: function isEmpty(value) {
1795
- if (value === null || value === void 0) {
1796
- return true;
1797
- }
1798
- if (Array.isArray(value)) {
1799
- return value.length === 0;
1800
- }
1801
- if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === "object") {
1802
- if (_instanceof(value, Date)) {
1803
- return false;
1804
- }
1805
- return Object.keys(value).length === 0;
1806
- }
1807
- if (typeof value === "string") {
1808
- return value.trim().length === 0;
1809
- }
1810
- return false;
1811
- }
1812
- };
1813
- // src/nodejs/mongo.ts
1814
- var mongo = {
1815
- getDateTime: function getDateTime() {
1816
- var now = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : /* @__PURE__ */ new Date();
1817
- return format(now, "yyyy-MM-dd HH:mm:ss.SSS");
1818
- },
1819
- createGenericFields: function createGenericFields() {
1820
- var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref_returnDateAs = _ref.returnDateAs, returnDateAs = _ref_returnDateAs === void 0 ? "string" : _ref_returnDateAs;
1821
- var now = returnDateAs === "string" ? mongo.getDateTime() : /* @__PURE__ */ new Date();
1822
- return {
1823
- id: uuidv4(),
1824
- isDel: false,
1825
- createdAt: now,
1826
- updatedAt: now
1827
- };
1828
- },
1829
- applyPlugins: function applyPlugins(schema, plugins) {
1830
- plugins.filter(function(plugin) {
1831
- return typeof plugin === "function";
1832
- }).forEach(function(plugin) {
1833
- return schema.plugin(plugin);
1834
- });
1835
- },
1836
- applyMiddlewares: function applyMiddlewares(schema, middlewares) {
1837
- middlewares.forEach(function(param) {
1838
- var method = param.method, pre = param.pre, post = param.post;
1839
- if (method && pre) {
1840
- schema.pre(method, pre);
1841
- }
1842
- if (method && post) {
1843
- schema.post(method, post);
1844
- }
1845
- });
1846
- },
1847
- createGenericSchema: function createGenericSchema(mongoose) {
1848
- return new mongoose.Schema({
1849
- id: {
1850
- type: String,
1851
- default: uuidv4,
1852
- required: true,
1853
- unique: true
1854
- },
1855
- isDel: {
1856
- type: Boolean,
1857
- default: false,
1858
- required: true
1859
- }
1860
- }, {
1861
- timestamps: true
1862
- });
1863
- },
1864
- createSchema: function createSchema(param) {
1865
- var mongoose = param.mongoose, schema = param.schema, _param_virtuals = param.virtuals, virtuals = _param_virtuals === void 0 ? [] : _param_virtuals, _param_standalone = param.standalone, standalone = _param_standalone === void 0 ? false : _param_standalone;
1866
- var createdSchema = new mongoose.Schema(schema, {
1867
- strict: true
1868
- });
1869
- virtuals.forEach(function(param) {
1870
- var name = param.name, options = param.options, get = param.get;
1871
- var virtualInstance = createdSchema.virtual(name, options);
1872
- if (get) virtualInstance.get(get);
1873
- });
1874
- if (!standalone) {
1875
- createdSchema.add(mongo.createGenericSchema(mongoose));
1876
- }
1877
- return createdSchema;
1878
- },
1879
- createModel: function createModel(param) {
1880
- var currentMongooseInstance = param.mongoose, name = param.name, schema = param.schema, _param_pagination = param.pagination, pagination = _param_pagination === void 0 ? false : _param_pagination, _param_aggregate = param.aggregate, aggregate = _param_aggregate === void 0 ? false : _param_aggregate, _param_virtuals = param.virtuals, virtuals = _param_virtuals === void 0 ? [] : _param_virtuals, _param_middlewares = param.middlewares, middlewares = _param_middlewares === void 0 ? [] : _param_middlewares;
1881
- if (!name) {
1882
- throw new Error("Model name is required.");
1883
- }
1884
- if (currentMongooseInstance.models[name]) {
1885
- return currentMongooseInstance.models[name];
1886
- }
1887
- var createdSchema = mongo.createSchema({
1888
- mongoose: currentMongooseInstance,
1889
- schema: schema,
1890
- virtuals: virtuals
1891
- });
1892
- mongo.applyPlugins(createdSchema, [
1893
- pagination && mongoosePaginate,
1894
- aggregate && aggregatePaginate
1895
- ]);
1896
- mongo.applyMiddlewares(createdSchema, middlewares);
1897
- return currentMongooseInstance.model(name, createdSchema);
1898
- },
1899
- createSlugQuery: function createSlugQuery(slug) {
1900
- var filters = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, id = arguments.length > 2 ? arguments[2] : void 0;
1901
- return _object_spread_props(_object_spread({}, filters, id && {
1902
- id: {
1903
- $ne: id
1904
- }
1905
- }), {
1906
- $or: [
1907
- {
1908
- slug: slug
1909
- },
1910
- {
1911
- slugHistory: slug
1912
- }
1913
- ]
1914
- });
1915
- },
1916
- validator: {
1917
- isEmpty: function isEmpty() {
1918
- return /*#__PURE__*/ function() {
1919
- var _ref = _async_to_generator(function(value) {
1920
- return _ts_generator(this, function(_state) {
1921
- return [
1922
- 2,
1923
- !validate.isEmpty(value)
1924
- ];
1925
- });
1926
- });
1927
- return function(value) {
1928
- return _ref.apply(this, arguments);
1929
- };
1930
- }();
1931
- },
1932
- isUnique: function isUnique(fields) {
1933
- return /*#__PURE__*/ function() {
1934
- var _ref = _async_to_generator(function(value) {
1935
- var query, existingDocument;
1936
- return _ts_generator(this, function(_state) {
1937
- switch(_state.label){
1938
- case 0:
1939
- if (!Array.isArray(fields) || fields.length === 0) {
1940
- throw new Error("Fields must be a non-empty array of strings.");
1941
- }
1942
- query = {
1943
- $or: fields.map(function(field) {
1944
- return _define_property({}, field, value);
1945
- })
1946
- };
1947
- return [
1948
- 4,
1949
- this.constructor.findOne(query)
1950
- ];
1951
- case 1:
1952
- existingDocument = _state.sent();
1953
- return [
1954
- 2,
1955
- !existingDocument
1956
- ];
1957
- }
1958
- });
1959
- });
1960
- return function(value) {
1961
- return _ref.apply(this, arguments);
1962
- };
1963
- }();
1964
- },
1965
- matchesRegex: function matchesRegex(regexArray) {
1966
- return /*#__PURE__*/ function() {
1967
- var _ref = _async_to_generator(function(value) {
1968
- return _ts_generator(this, function(_state) {
1969
- if (!Array.isArray(regexArray) || regexArray.some(function(r) {
1970
- return !_instanceof(r, RegExp);
1971
- })) {
1972
- throw new Error("regexArray must be an array of valid RegExp objects.");
1973
- }
1974
- return [
1975
- 2,
1976
- regexArray.every(function(regex) {
1977
- return regex.test(value);
1978
- })
1979
- ];
1980
- });
1981
- });
1982
- return function(value) {
1983
- return _ref.apply(this, arguments);
1984
- };
1985
- }();
1986
- }
1987
- }
1988
- };
1989
- var MongoController = /*#__PURE__*/ function() {
1990
- "use strict";
1991
- function MongoController(db, collectionName) {
1992
- _class_call_check(this, MongoController);
1993
- this.collection = db.collection(collectionName);
1994
- }
1995
- _create_class(MongoController, [
1996
- {
1997
- key: "createOne",
1998
- value: function createOne(document) {
1999
- var _this = this;
2000
- return _async_to_generator(function() {
2001
- var finalDocument, result, error;
2002
- return _ts_generator(this, function(_state) {
2003
- switch(_state.label){
2004
- case 0:
2005
- _state.trys.push([
2006
- 0,
2007
- 2,
2008
- ,
2009
- 3
2010
- ]);
2011
- finalDocument = _object_spread({}, mongo.createGenericFields(), document);
2012
- return [
2013
- 4,
2014
- _this.collection.insertOne(finalDocument)
2015
- ];
2016
- case 1:
2017
- result = _state.sent();
2018
- return [
2019
- 2,
2020
- {
2021
- success: true,
2022
- message: "Document created successfully",
2023
- result: result
2024
- }
2025
- ];
2026
- case 2:
2027
- error = _state.sent();
2028
- return [
2029
- 2,
2030
- {
2031
- success: false,
2032
- message: error.message
2033
- }
2034
- ];
2035
- case 3:
2036
- return [
2037
- 2
2038
- ];
2039
- }
2040
- });
2041
- })();
2042
- }
2043
- },
2044
- {
2045
- key: "createMany",
2046
- value: function createMany(documents) {
2047
- var _this = this;
2048
- return _async_to_generator(function() {
2049
- var finalDocuments, result, error;
2050
- return _ts_generator(this, function(_state) {
2051
- switch(_state.label){
2052
- case 0:
2053
- _state.trys.push([
2054
- 0,
2055
- 2,
2056
- ,
2057
- 3
2058
- ]);
2059
- finalDocuments = documents.map(function(document) {
2060
- return _object_spread({}, mongo.createGenericFields(), document);
2061
- });
2062
- return [
2063
- 4,
2064
- _this.collection.insertMany(finalDocuments)
2065
- ];
2066
- case 1:
2067
- result = _state.sent();
2068
- if (result.insertedCount === 0) {
2069
- return [
2070
- 2,
2071
- {
2072
- success: false,
2073
- message: "No documents were inserted"
2074
- }
2075
- ];
2076
- }
2077
- return [
2078
- 2,
2079
- {
2080
- success: true,
2081
- message: "".concat(result.insertedCount, " documents created successfully"),
2082
- result: result
2083
- }
2084
- ];
2085
- case 2:
2086
- error = _state.sent();
2087
- return [
2088
- 2,
2089
- {
2090
- success: false,
2091
- message: error.message
2092
- }
2093
- ];
2094
- case 3:
2095
- return [
2096
- 2
2097
- ];
2098
- }
2099
- });
2100
- })();
2101
- }
2102
- },
2103
- {
2104
- key: "findOne",
2105
- value: function findOne(filter) {
2106
- var _this = this;
2107
- return _async_to_generator(function() {
2108
- var result, error;
2109
- return _ts_generator(this, function(_state) {
2110
- switch(_state.label){
2111
- case 0:
2112
- _state.trys.push([
2113
- 0,
2114
- 2,
2115
- ,
2116
- 3
2117
- ]);
2118
- return [
2119
- 4,
2120
- _this.collection.findOne(filter)
2121
- ];
2122
- case 1:
2123
- result = _state.sent();
2124
- if (!result) {
2125
- return [
2126
- 2,
2127
- {
2128
- success: false,
2129
- message: "Document not found"
2130
- }
2131
- ];
2132
- }
2133
- return [
2134
- 2,
2135
- {
2136
- success: true,
2137
- message: "Document found",
2138
- result: result
2139
- }
2140
- ];
2141
- case 2:
2142
- error = _state.sent();
2143
- return [
2144
- 2,
2145
- {
2146
- success: false,
2147
- message: error.message
2148
- }
2149
- ];
2150
- case 3:
2151
- return [
2152
- 2
2153
- ];
2154
- }
2155
- });
2156
- })();
2157
- }
2158
- },
2159
- {
2160
- key: "findAll",
2161
- value: function findAll() {
2162
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2163
- var _this = this;
2164
- return _async_to_generator(function() {
2165
- var result, error;
2166
- return _ts_generator(this, function(_state) {
2167
- switch(_state.label){
2168
- case 0:
2169
- _state.trys.push([
2170
- 0,
2171
- 2,
2172
- ,
2173
- 3
2174
- ]);
2175
- return [
2176
- 4,
2177
- _this.collection.find(filter).toArray()
2178
- ];
2179
- case 1:
2180
- result = _state.sent();
2181
- return [
2182
- 2,
2183
- {
2184
- success: true,
2185
- message: "Documents retrieved successfully",
2186
- result: result
2187
- }
2188
- ];
2189
- case 2:
2190
- error = _state.sent();
2191
- return [
2192
- 2,
2193
- {
2194
- success: false,
2195
- message: error.message
2196
- }
2197
- ];
2198
- case 3:
2199
- return [
2200
- 2
2201
- ];
2202
- }
2203
- });
2204
- })();
2205
- }
2206
- },
2207
- {
2208
- key: "count",
2209
- value: function count() {
2210
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2211
- var _this = this;
2212
- return _async_to_generator(function() {
2213
- var result, error;
2214
- return _ts_generator(this, function(_state) {
2215
- switch(_state.label){
2216
- case 0:
2217
- _state.trys.push([
2218
- 0,
2219
- 2,
2220
- ,
2221
- 3
2222
- ]);
2223
- return [
2224
- 4,
2225
- _this.collection.countDocuments(filter)
2226
- ];
2227
- case 1:
2228
- result = _state.sent();
2229
- return [
2230
- 2,
2231
- {
2232
- success: true,
2233
- message: "Count retrieved successfully",
2234
- result: result
2235
- }
2236
- ];
2237
- case 2:
2238
- error = _state.sent();
2239
- return [
2240
- 2,
2241
- {
2242
- success: false,
2243
- message: error.message
2244
- }
2245
- ];
2246
- case 3:
2247
- return [
2248
- 2
2249
- ];
2250
- }
2251
- });
2252
- })();
2253
- }
2254
- },
2255
- {
2256
- key: "updateOne",
2257
- value: function updateOne(filter, update) {
2258
- var _this = this;
2259
- return _async_to_generator(function() {
2260
- var result, error;
2261
- return _ts_generator(this, function(_state) {
2262
- switch(_state.label){
2263
- case 0:
2264
- _state.trys.push([
2265
- 0,
2266
- 2,
2267
- ,
2268
- 3
2269
- ]);
2270
- return [
2271
- 4,
2272
- _this.collection.updateOne(filter, {
2273
- $set: update
2274
- })
2275
- ];
2276
- case 1:
2277
- result = _state.sent();
2278
- if (result.matchedCount === 0) {
2279
- return [
2280
- 2,
2281
- {
2282
- success: false,
2283
- message: "No documents matched the filter"
2284
- }
2285
- ];
2286
- }
2287
- return [
2288
- 2,
2289
- {
2290
- success: true,
2291
- message: "Document updated successfully",
2292
- result: result
2293
- }
2294
- ];
2295
- case 2:
2296
- error = _state.sent();
2297
- return [
2298
- 2,
2299
- {
2300
- success: false,
2301
- message: error.message
2302
- }
2303
- ];
2304
- case 3:
2305
- return [
2306
- 2
2307
- ];
2308
- }
2309
- });
2310
- })();
2311
- }
2312
- },
2313
- {
2314
- key: "updateMany",
2315
- value: function updateMany(filter, update) {
2316
- var _this = this;
2317
- return _async_to_generator(function() {
2318
- var result, error;
2319
- return _ts_generator(this, function(_state) {
2320
- switch(_state.label){
2321
- case 0:
2322
- _state.trys.push([
2323
- 0,
2324
- 2,
2325
- ,
2326
- 3
2327
- ]);
2328
- return [
2329
- 4,
2330
- _this.collection.updateMany(filter, {
2331
- $set: update
2332
- })
2333
- ];
2334
- case 1:
2335
- result = _state.sent();
2336
- if (result.matchedCount === 0) {
2337
- return [
2338
- 2,
2339
- {
2340
- success: false,
2341
- message: "No documents matched the filter"
2342
- }
2343
- ];
2344
- }
2345
- return [
2346
- 2,
2347
- {
2348
- success: true,
2349
- message: "Documents updated successfully",
2350
- result: result
2351
- }
2352
- ];
2353
- case 2:
2354
- error = _state.sent();
2355
- return [
2356
- 2,
2357
- {
2358
- success: false,
2359
- message: error.message
2360
- }
2361
- ];
2362
- case 3:
2363
- return [
2364
- 2
2365
- ];
2366
- }
2367
- });
2368
- })();
2369
- }
2370
- },
2371
- {
2372
- key: "deleteOne",
2373
- value: function deleteOne(filter) {
2374
- var _this = this;
2375
- return _async_to_generator(function() {
2376
- var result, error;
2377
- return _ts_generator(this, function(_state) {
2378
- switch(_state.label){
2379
- case 0:
2380
- _state.trys.push([
2381
- 0,
2382
- 2,
2383
- ,
2384
- 3
2385
- ]);
2386
- return [
2387
- 4,
2388
- _this.collection.deleteOne(filter)
2389
- ];
2390
- case 1:
2391
- result = _state.sent();
2392
- if (result.deletedCount === 0) {
2393
- return [
2394
- 2,
2395
- {
2396
- success: false,
2397
- message: "No documents matched the filter"
2398
- }
2399
- ];
2400
- }
2401
- return [
2402
- 2,
2403
- {
2404
- success: true,
2405
- message: "Document deleted successfully",
2406
- result: result
2407
- }
2408
- ];
2409
- case 2:
2410
- error = _state.sent();
2411
- return [
2412
- 2,
2413
- {
2414
- success: false,
2415
- message: error.message
2416
- }
2417
- ];
2418
- case 3:
2419
- return [
2420
- 2
2421
- ];
2422
- }
2423
- });
2424
- })();
2425
- }
2426
- },
2427
- {
2428
- key: "deleteMany",
2429
- value: function deleteMany(filter) {
2430
- var _this = this;
2431
- return _async_to_generator(function() {
2432
- var result, error;
2433
- return _ts_generator(this, function(_state) {
2434
- switch(_state.label){
2435
- case 0:
2436
- _state.trys.push([
2437
- 0,
2438
- 2,
2439
- ,
2440
- 3
2441
- ]);
2442
- return [
2443
- 4,
2444
- _this.collection.deleteMany(filter)
2445
- ];
2446
- case 1:
2447
- result = _state.sent();
2448
- if (result.deletedCount === 0) {
2449
- return [
2450
- 2,
2451
- {
2452
- success: false,
2453
- message: "No documents matched the filter"
2454
- }
2455
- ];
2456
- }
2457
- return [
2458
- 2,
2459
- {
2460
- success: true,
2461
- message: "Documents deleted successfully",
2462
- result: result
2463
- }
2464
- ];
2465
- case 2:
2466
- error = _state.sent();
2467
- return [
2468
- 2,
2469
- {
2470
- success: false,
2471
- message: error.message
2472
- }
2473
- ];
2474
- case 3:
2475
- return [
2476
- 2
2477
- ];
2478
- }
2479
- });
2480
- })();
2481
- }
2482
- }
2483
- ]);
2484
- return MongoController;
2485
- }();
2486
- var MongooseController = /*#__PURE__*/ function() {
2487
- "use strict";
2488
- function MongooseController(model) {
2489
- _class_call_check(this, MongooseController);
2490
- this.model = model;
2491
- }
2492
- _create_class(MongooseController, [
2493
- {
2494
- key: "getModelName",
2495
- value: function getModelName() {
2496
- return this.model.modelName;
2497
- }
2498
- },
2499
- {
2500
- key: "findOne",
2501
- value: function findOne() {
2502
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, projection = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, populate = arguments.length > 3 ? arguments[3] : void 0;
2503
- var _this = this;
2504
- return _async_to_generator(function() {
2505
- var query, result, error;
2506
- return _ts_generator(this, function(_state) {
2507
- switch(_state.label){
2508
- case 0:
2509
- _state.trys.push([
2510
- 0,
2511
- 2,
2512
- ,
2513
- 3
2514
- ]);
2515
- query = _this.model.findOne(filter, projection, options);
2516
- if (populate) {
2517
- query.populate(populate);
2518
- }
2519
- return [
2520
- 4,
2521
- query.exec()
2522
- ];
2523
- case 1:
2524
- result = _state.sent();
2525
- if (!result) {
2526
- return [
2527
- 2,
2528
- {
2529
- success: false,
2530
- message: "No ".concat(_this.getModelName(), " found."),
2531
- code: RESPONSE_STATUS.NOT_FOUND.CODE
2532
- }
2533
- ];
2534
- }
2535
- return [
2536
- 2,
2537
- {
2538
- success: true,
2539
- result: result
2540
- }
2541
- ];
2542
- case 2:
2543
- error = _state.sent();
2544
- return [
2545
- 2,
2546
- {
2547
- success: false,
2548
- message: error.message,
2549
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2550
- }
2551
- ];
2552
- case 3:
2553
- return [
2554
- 2
2555
- ];
2556
- }
2557
- });
2558
- })();
2559
- }
2560
- },
2561
- {
2562
- key: "findAll",
2563
- value: function findAll() {
2564
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, projection = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, populate = arguments.length > 3 ? arguments[3] : void 0;
2565
- var _this = this;
2566
- return _async_to_generator(function() {
2567
- var query, result, error;
2568
- return _ts_generator(this, function(_state) {
2569
- switch(_state.label){
2570
- case 0:
2571
- _state.trys.push([
2572
- 0,
2573
- 2,
2574
- ,
2575
- 3
2576
- ]);
2577
- query = _this.model.find(filter, projection, options);
2578
- if (populate) {
2579
- query.populate(populate);
2580
- }
2581
- return [
2582
- 4,
2583
- query.exec()
2584
- ];
2585
- case 1:
2586
- result = _state.sent();
2587
- return [
2588
- 2,
2589
- {
2590
- success: true,
2591
- result: result
2592
- }
2593
- ];
2594
- case 2:
2595
- error = _state.sent();
2596
- return [
2597
- 2,
2598
- {
2599
- success: false,
2600
- message: error.message,
2601
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2602
- }
2603
- ];
2604
- case 3:
2605
- return [
2606
- 2
2607
- ];
2608
- }
2609
- });
2610
- })();
2611
- }
2612
- },
2613
- {
2614
- key: "findPaging",
2615
- value: function findPaging() {
2616
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2617
- var _this = this;
2618
- return _async_to_generator(function() {
2619
- var result, error;
2620
- return _ts_generator(this, function(_state) {
2621
- switch(_state.label){
2622
- case 0:
2623
- _state.trys.push([
2624
- 0,
2625
- 2,
2626
- ,
2627
- 3
2628
- ]);
2629
- return [
2630
- 4,
2631
- _this.model.paginate(filter, options)
2632
- ];
2633
- case 1:
2634
- result = _state.sent();
2635
- return [
2636
- 2,
2637
- {
2638
- success: true,
2639
- result: result
2640
- }
2641
- ];
2642
- case 2:
2643
- error = _state.sent();
2644
- return [
2645
- 2,
2646
- {
2647
- success: false,
2648
- message: error.message,
2649
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2650
- }
2651
- ];
2652
- case 3:
2653
- return [
2654
- 2
2655
- ];
2656
- }
2657
- });
2658
- })();
2659
- }
2660
- },
2661
- {
2662
- key: "findPagingAggregate",
2663
- value: function findPagingAggregate(pipeline) {
2664
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2665
- var _this = this;
2666
- return _async_to_generator(function() {
2667
- var result, error;
2668
- return _ts_generator(this, function(_state) {
2669
- switch(_state.label){
2670
- case 0:
2671
- _state.trys.push([
2672
- 0,
2673
- 2,
2674
- ,
2675
- 3
2676
- ]);
2677
- return [
2678
- 4,
2679
- _this.model.aggregatePaginate(_this.model.aggregate(pipeline), options)
2680
- ];
2681
- case 1:
2682
- result = _state.sent();
2683
- return [
2684
- 2,
2685
- {
2686
- success: true,
2687
- result: result
2688
- }
2689
- ];
2690
- case 2:
2691
- error = _state.sent();
2692
- return [
2693
- 2,
2694
- {
2695
- success: false,
2696
- message: error.message,
2697
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2698
- }
2699
- ];
2700
- case 3:
2701
- return [
2702
- 2
2703
- ];
2704
- }
2705
- });
2706
- })();
2707
- }
2708
- },
2709
- {
2710
- key: "count",
2711
- value: function count() {
2712
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2713
- var _this = this;
2714
- return _async_to_generator(function() {
2715
- var result, error;
2716
- return _ts_generator(this, function(_state) {
2717
- switch(_state.label){
2718
- case 0:
2719
- _state.trys.push([
2720
- 0,
2721
- 2,
2722
- ,
2723
- 3
2724
- ]);
2725
- return [
2726
- 4,
2727
- _this.model.countDocuments(filter)
2728
- ];
2729
- case 1:
2730
- result = _state.sent();
2731
- return [
2732
- 2,
2733
- {
2734
- success: true,
2735
- result: result
2736
- }
2737
- ];
2738
- case 2:
2739
- error = _state.sent();
2740
- return [
2741
- 2,
2742
- {
2743
- success: false,
2744
- message: error.message,
2745
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2746
- }
2747
- ];
2748
- case 3:
2749
- return [
2750
- 2
2751
- ];
2752
- }
2753
- });
2754
- })();
2755
- }
2756
- },
2757
- {
2758
- key: "createOne",
2759
- value: function createOne(doc) {
2760
- var _this = this;
2761
- return _async_to_generator(function() {
2762
- var result, error;
2763
- return _ts_generator(this, function(_state) {
2764
- switch(_state.label){
2765
- case 0:
2766
- _state.trys.push([
2767
- 0,
2768
- 2,
2769
- ,
2770
- 3
2771
- ]);
2772
- return [
2773
- 4,
2774
- _this.model.create(doc)
2775
- ];
2776
- case 1:
2777
- result = _state.sent();
2778
- return [
2779
- 2,
2780
- {
2781
- success: true,
2782
- result: result
2783
- }
2784
- ];
2785
- case 2:
2786
- error = _state.sent();
2787
- return [
2788
- 2,
2789
- {
2790
- success: false,
2791
- message: error.message,
2792
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2793
- }
2794
- ];
2795
- case 3:
2796
- return [
2797
- 2
2798
- ];
2799
- }
2800
- });
2801
- })();
2802
- }
2803
- },
2804
- {
2805
- key: "createMany",
2806
- value: function createMany(docs) {
2807
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2808
- var _this = this;
2809
- return _async_to_generator(function() {
2810
- var createdDocuments, result, error;
2811
- return _ts_generator(this, function(_state) {
2812
- switch(_state.label){
2813
- case 0:
2814
- _state.trys.push([
2815
- 0,
2816
- 2,
2817
- ,
2818
- 3
2819
- ]);
2820
- return [
2821
- 4,
2822
- _this.model.insertMany(docs, options)
2823
- ];
2824
- case 1:
2825
- createdDocuments = _state.sent();
2826
- result = createdDocuments.map(function(doc) {
2827
- if (_instanceof(doc, Document)) {
2828
- return doc.toObject();
2829
- }
2830
- return null;
2831
- }).filter(function(doc) {
2832
- return doc !== null;
2833
- });
2834
- return [
2835
- 2,
2836
- {
2837
- success: true,
2838
- result: result
2839
- }
2840
- ];
2841
- case 2:
2842
- error = _state.sent();
2843
- return [
2844
- 2,
2845
- {
2846
- success: false,
2847
- message: error.message,
2848
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2849
- }
2850
- ];
2851
- case 3:
2852
- return [
2853
- 2
2854
- ];
2855
- }
2856
- });
2857
- })();
2858
- }
2859
- },
2860
- {
2861
- key: "updateOne",
2862
- value: function updateOne() {
2863
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, update = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
2864
- var _this = this;
2865
- return _async_to_generator(function() {
2866
- var result, error;
2867
- return _ts_generator(this, function(_state) {
2868
- switch(_state.label){
2869
- case 0:
2870
- _state.trys.push([
2871
- 0,
2872
- 2,
2873
- ,
2874
- 3
2875
- ]);
2876
- return [
2877
- 4,
2878
- _this.model.findOneAndUpdate(filter, update, _object_spread({
2879
- new: true
2880
- }, options)).exec()
2881
- ];
2882
- case 1:
2883
- result = _state.sent();
2884
- if (!result) {
2885
- return [
2886
- 2,
2887
- {
2888
- success: false,
2889
- message: "Failed to update ".concat(_this.getModelName(), "."),
2890
- code: RESPONSE_STATUS.NOT_FOUND.CODE
2891
- }
2892
- ];
2893
- }
2894
- return [
2895
- 2,
2896
- {
2897
- success: true,
2898
- result: result
2899
- }
2900
- ];
2901
- case 2:
2902
- error = _state.sent();
2903
- return [
2904
- 2,
2905
- {
2906
- success: false,
2907
- message: error.message,
2908
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2909
- }
2910
- ];
2911
- case 3:
2912
- return [
2913
- 2
2914
- ];
2915
- }
2916
- });
2917
- })();
2918
- }
2919
- },
2920
- {
2921
- key: "updateMany",
2922
- value: function updateMany() {
2923
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, update = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
2924
- var _this = this;
2925
- return _async_to_generator(function() {
2926
- var result, error;
2927
- return _ts_generator(this, function(_state) {
2928
- switch(_state.label){
2929
- case 0:
2930
- _state.trys.push([
2931
- 0,
2932
- 2,
2933
- ,
2934
- 3
2935
- ]);
2936
- return [
2937
- 4,
2938
- _this.model.updateMany(filter, update, options).exec()
2939
- ];
2940
- case 1:
2941
- result = _state.sent();
2942
- return [
2943
- 2,
2944
- {
2945
- success: true,
2946
- result: result
2947
- }
2948
- ];
2949
- case 2:
2950
- error = _state.sent();
2951
- return [
2952
- 2,
2953
- {
2954
- success: false,
2955
- message: error.message,
2956
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
2957
- }
2958
- ];
2959
- case 3:
2960
- return [
2961
- 2
2962
- ];
2963
- }
2964
- });
2965
- })();
2966
- }
2967
- },
2968
- {
2969
- key: "deleteOne",
2970
- value: function deleteOne() {
2971
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2972
- var _this = this;
2973
- return _async_to_generator(function() {
2974
- var result, error;
2975
- return _ts_generator(this, function(_state) {
2976
- switch(_state.label){
2977
- case 0:
2978
- _state.trys.push([
2979
- 0,
2980
- 2,
2981
- ,
2982
- 3
2983
- ]);
2984
- return [
2985
- 4,
2986
- _this.model.findOneAndDelete(filter, options).exec()
2987
- ];
2988
- case 1:
2989
- result = _state.sent();
2990
- if (!result) {
2991
- return [
2992
- 2,
2993
- {
2994
- success: false,
2995
- message: "No ".concat(_this.getModelName(), " found to delete."),
2996
- code: RESPONSE_STATUS.NOT_FOUND.CODE
2997
- }
2998
- ];
2999
- }
3000
- return [
3001
- 2,
3002
- {
3003
- success: true,
3004
- result: result
3005
- }
3006
- ];
3007
- case 2:
3008
- error = _state.sent();
3009
- return [
3010
- 2,
3011
- {
3012
- success: false,
3013
- message: error.message,
3014
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
3015
- }
3016
- ];
3017
- case 3:
3018
- return [
3019
- 2
3020
- ];
3021
- }
3022
- });
3023
- })();
3024
- }
3025
- },
3026
- {
3027
- key: "deleteMany",
3028
- value: function deleteMany() {
3029
- var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
3030
- var _this = this;
3031
- return _async_to_generator(function() {
3032
- var result, error;
3033
- return _ts_generator(this, function(_state) {
3034
- switch(_state.label){
3035
- case 0:
3036
- _state.trys.push([
3037
- 0,
3038
- 2,
3039
- ,
3040
- 3
3041
- ]);
3042
- return [
3043
- 4,
3044
- _this.model.deleteMany(filter, options).exec()
3045
- ];
3046
- case 1:
3047
- result = _state.sent();
3048
- if (result.deletedCount === 0) {
3049
- return [
3050
- 2,
3051
- {
3052
- success: false,
3053
- message: "No documents found to delete.",
3054
- code: RESPONSE_STATUS.NOT_FOUND.CODE
3055
- }
3056
- ];
3057
- }
3058
- return [
3059
- 2,
3060
- {
3061
- success: true,
3062
- result: result
3063
- }
3064
- ];
3065
- case 2:
3066
- error = _state.sent();
3067
- return [
3068
- 2,
3069
- {
3070
- success: false,
3071
- message: error.message,
3072
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
3073
- }
3074
- ];
3075
- case 3:
3076
- return [
3077
- 2
3078
- ];
3079
- }
3080
- });
3081
- })();
3082
- }
3083
- },
3084
- {
3085
- key: "createShortId",
3086
- value: function createShortId(id) {
3087
- var length = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 4;
3088
- var _this = this;
3089
- return _async_to_generator(function() {
3090
- var maxRetries, existingShortIds, retries, shortId, shortIdExists;
3091
- return _ts_generator(this, function(_state) {
3092
- switch(_state.label){
3093
- case 0:
3094
- maxRetries = 10;
3095
- existingShortIds = /* @__PURE__ */ new Set();
3096
- retries = 0;
3097
- _state.label = 1;
3098
- case 1:
3099
- if (!(retries < maxRetries)) return [
3100
- 3,
3101
- 4
3102
- ];
3103
- shortId = generateShortId(id, retries + length);
3104
- if (!!existingShortIds.has(shortId)) return [
3105
- 3,
3106
- 3
3107
- ];
3108
- existingShortIds.add(shortId);
3109
- return [
3110
- 4,
3111
- _this.model.exists({
3112
- shortId: shortId
3113
- })
3114
- ];
3115
- case 2:
3116
- shortIdExists = _state.sent();
3117
- if (!shortIdExists) {
3118
- return [
3119
- 2,
3120
- {
3121
- success: true,
3122
- result: shortId
3123
- }
3124
- ];
3125
- }
3126
- _state.label = 3;
3127
- case 3:
3128
- retries++;
3129
- return [
3130
- 3,
3131
- 1
3132
- ];
3133
- case 4:
3134
- return [
3135
- 2,
3136
- {
3137
- success: false,
3138
- message: "Failed to create a unique shortId",
3139
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
3140
- }
3141
- ];
3142
- }
3143
- });
3144
- })();
3145
- }
3146
- },
3147
- {
3148
- key: "createSlug",
3149
- value: function createSlug(fieldName, fields) {
3150
- var filters = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
3151
- var _this = this;
3152
- return _async_to_generator(function() {
3153
- var fieldValue, createUniqueSlug, slugResults, _tmp, _tmp1, _i, lang, slug, slug1, uniqueSlug, error;
3154
- return _ts_generator(this, function(_state) {
3155
- switch(_state.label){
3156
- case 0:
3157
- _state.trys.push([
3158
- 0,
3159
- 8,
3160
- ,
3161
- 9
3162
- ]);
3163
- fieldValue = fields[fieldName];
3164
- createUniqueSlug = /*#__PURE__*/ function() {
3165
- var _ref = _async_to_generator(function(slug) {
3166
- var existingDoc, suffix, uniqueSlug;
3167
- return _ts_generator(this, function(_state) {
3168
- switch(_state.label){
3169
- case 0:
3170
- return [
3171
- 4,
3172
- _this.model.findOne(mongo.createSlugQuery(slug, filters, fields.id))
3173
- ];
3174
- case 1:
3175
- existingDoc = _state.sent();
3176
- if (!existingDoc) return [
3177
- 2,
3178
- slug
3179
- ];
3180
- suffix = 1;
3181
- _state.label = 2;
3182
- case 2:
3183
- uniqueSlug = "".concat(slug, "-").concat(suffix);
3184
- return [
3185
- 4,
3186
- _this.model.findOne(mongo.createSlugQuery(uniqueSlug, filters, fields.id))
3187
- ];
3188
- case 3:
3189
- existingDoc = _state.sent();
3190
- suffix++;
3191
- _state.label = 4;
3192
- case 4:
3193
- if (existingDoc) return [
3194
- 3,
3195
- 2
3196
- ];
3197
- _state.label = 5;
3198
- case 5:
3199
- return [
3200
- 2,
3201
- uniqueSlug
3202
- ];
3203
- }
3204
- });
3205
- });
3206
- return function createUniqueSlug(slug) {
3207
- return _ref.apply(this, arguments);
3208
- };
3209
- }();
3210
- if (!((typeof fieldValue === "undefined" ? "undefined" : _type_of(fieldValue)) === "object")) return [
3211
- 3,
3212
- 5
3213
- ];
3214
- slugResults = {};
3215
- _tmp = [];
3216
- for(_tmp1 in fieldValue)_tmp.push(_tmp1);
3217
- _i = 0;
3218
- _state.label = 1;
3219
- case 1:
3220
- if (!(_i < _tmp.length)) return [
3221
- 3,
3222
- 4
3223
- ];
3224
- lang = _tmp[_i];
3225
- slug = generateSlug(fieldValue[lang]);
3226
- return [
3227
- 4,
3228
- createUniqueSlug(slug)
3229
- ];
3230
- case 2:
3231
- slugResults[lang] = _state.sent();
3232
- _state.label = 3;
3233
- case 3:
3234
- _i++;
3235
- return [
3236
- 3,
3237
- 1
3238
- ];
3239
- case 4:
3240
- return [
3241
- 2,
3242
- {
3243
- success: true,
3244
- result: slugResults
3245
- }
3246
- ];
3247
- case 5:
3248
- slug1 = generateSlug(fieldValue);
3249
- return [
3250
- 4,
3251
- createUniqueSlug(slug1)
3252
- ];
3253
- case 6:
3254
- uniqueSlug = _state.sent();
3255
- return [
3256
- 2,
3257
- {
3258
- success: true,
3259
- result: uniqueSlug
3260
- }
3261
- ];
3262
- case 7:
3263
- return [
3264
- 3,
3265
- 9
3266
- ];
3267
- case 8:
3268
- error = _state.sent();
3269
- return [
3270
- 2,
3271
- {
3272
- success: false,
3273
- message: "Failed to create a unique slug: ".concat(error.message),
3274
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
3275
- }
3276
- ];
3277
- case 9:
3278
- return [
3279
- 2
3280
- ];
3281
- }
3282
- });
3283
- })();
3284
- }
3285
- },
3286
- {
3287
- key: "aggregate",
3288
- value: function aggregate(pipeline) {
3289
- var _this = this;
3290
- return _async_to_generator(function() {
3291
- var result, error;
3292
- return _ts_generator(this, function(_state) {
3293
- switch(_state.label){
3294
- case 0:
3295
- _state.trys.push([
3296
- 0,
3297
- 2,
3298
- ,
3299
- 3
3300
- ]);
3301
- return [
3302
- 4,
3303
- _this.model.aggregate(pipeline)
3304
- ];
3305
- case 1:
3306
- result = _state.sent();
3307
- return [
3308
- 2,
3309
- {
3310
- success: true,
3311
- result: result
3312
- }
3313
- ];
3314
- case 2:
3315
- error = _state.sent();
3316
- return [
3317
- 2,
3318
- {
3319
- success: false,
3320
- message: error.message,
3321
- code: RESPONSE_STATUS.INTERNAL_SERVER_ERROR.CODE
3322
- }
3323
- ];
3324
- case 3:
3325
- return [
3326
- 2
3327
- ];
3328
- }
3329
- });
3330
- })();
3331
- }
3332
- }
3333
- ]);
3334
- return MongooseController;
3335
- }();
3336
- // src/react/apollo-client.tsx
3337
- import { ApolloClient, ApolloLink, ApolloProvider as ApolloProviderDefault, HttpLink, InMemoryCache, split } from "@apollo/client";
3338
- import { onError } from "@apollo/client/link/error";
3339
- import { GraphQLWsLink } from "@apollo/client/link/subscriptions";
3340
- import { getMainDefinition } from "@apollo/client/utilities";
3341
- import { createClient as createGraphqlWebSocketClient } from "graphql-ws";
3342
- import { jsx } from "react/jsx-runtime";
3343
- function createLinks(options) {
3344
- var errorLink = onError(function(param) {
3345
- var graphQLErrors = param.graphQLErrors, networkError = param.networkError;
3346
- graphQLErrors === null || graphQLErrors === void 0 ? void 0 : graphQLErrors.forEach(function(param) {
3347
- var message = param.message, locations = param.locations, path3 = param.path;
3348
- return console.error("[GraphQL error]: Message: ".concat(message, ", Location: ").concat(locations, ", Path: ").concat(path3));
3349
- });
3350
- if (networkError) {
3351
- console.error("[Network error]: ".concat(networkError));
3352
- }
3353
- });
3354
- var httpLink = new HttpLink({
3355
- uri: options === null || options === void 0 ? void 0 : options.uri,
3356
- credentials: "include"
3357
- });
3358
- var wsLink = (options === null || options === void 0 ? void 0 : options.wsUrl) ? new GraphQLWsLink(createGraphqlWebSocketClient({
3359
- url: options.wsUrl
3360
- })) : null;
3361
- var splitLink = wsLink ? split(function(param) {
3362
- var query = param.query;
3363
- var mainDefinition = getMainDefinition(query);
3364
- if (mainDefinition.kind === "OperationDefinition") {
3365
- var operation = mainDefinition.operation;
3366
- return operation === "subscription";
3367
- }
3368
- return false;
3369
- }, wsLink, httpLink) : httpLink;
3370
- var cleanTypeName = new ApolloLink(function(operation, forward) {
3371
- if (operation.variables) {
3372
- operation.variables = JSON.parse(JSON.stringify(operation.variables), function(key, value) {
3373
- return key === "__typename" ? void 0 : value;
3374
- });
3375
- }
3376
- return forward(operation);
3377
- });
3378
- return {
3379
- errorLink: errorLink,
3380
- httpLink: httpLink,
3381
- wsLink: wsLink,
3382
- splitLink: splitLink,
3383
- cleanTypeName: cleanTypeName
3384
- };
3385
- }
3386
- function ApolloProvider(param) {
3387
- var isNextJS = param.isNextJS, options = param.options, children = param.children, CustomClient = param.client, CustomProvider = param.provider, CustomCache = param.cache;
3388
- var Client = CustomClient !== null && CustomClient !== void 0 ? CustomClient : ApolloClient;
3389
- if (typeof Client !== "function") {
3390
- throw new TypeError("Invalid ApolloClient provided. Ensure CustomClient is a class.");
3391
- }
3392
- var Provider = CustomProvider || ApolloProviderDefault;
3393
- var Cache = CustomCache || InMemoryCache;
3394
- var _createLinks = createLinks(options), cleanTypeName = _createLinks.cleanTypeName, errorLink = _createLinks.errorLink, splitLink = _createLinks.splitLink;
3395
- var client = new Client(_object_spread({
3396
- cache: _instanceof(Cache, InMemoryCache) ? Cache : new InMemoryCache(),
3397
- link: ApolloLink.from([
3398
- cleanTypeName,
3399
- errorLink,
3400
- splitLink
3401
- ].filter(Boolean))
3402
- }, options));
3403
- if (isNextJS) {
3404
- return /* @__PURE__ */ jsx(Provider, {
3405
- makeClient: function() {
3406
- return client;
3407
- },
3408
- children: children
3409
- });
3410
- }
3411
- return /* @__PURE__ */ jsx(Provider, {
3412
- client: client,
3413
- children: children
3414
- });
3415
- }
3416
- // src/react/loading.tsx
3417
- import cn from "classnames";
3418
- import { createContext, use, useCallback, useMemo, useState } from "react";
3419
- import styles from "./react/loading.module.scss";
3420
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
3421
- var LoadingContext = createContext(void 0);
3422
- function useLoading() {
3423
- var context = use(LoadingContext);
3424
- if (!context) {
3425
- throw new Error("useLoading must be used within a LoadingProvider");
3426
- }
3427
- return context;
3428
- }
3429
- function Loading(_param) {
3430
- var _param_full = _param.full, full = _param_full === void 0 ? false : _param_full, _param_block = _param.block, block = _param_block === void 0 ? false : _param_block, _param_className = _param.className, className = _param_className === void 0 ? "" : _param_className, _param_message = _param.message, message = _param_message === void 0 ? "Loading" : _param_message, rest = _object_without_properties(_param, [
3431
- "full",
3432
- "block",
3433
- "className",
3434
- "message"
3435
- ]);
3436
- function _renderLoading() {
3437
- return /* @__PURE__ */ jsxs("div", _object_spread_props(_object_spread({
3438
- className: styles.container
3439
- }, rest), {
3440
- children: [
3441
- /* @__PURE__ */ jsx2("div", {
3442
- className: styles.ring
3443
- }),
3444
- /* @__PURE__ */ jsx2("div", {
3445
- className: styles.ring
3446
- }),
3447
- /* @__PURE__ */ jsx2("div", {
3448
- className: styles.ring
3449
- }),
3450
- /* @__PURE__ */ jsx2("div", {
3451
- className: styles.ring
3452
- }),
3453
- message && /* @__PURE__ */ jsx2("div", {
3454
- className: styles.message,
3455
- children: message
3456
- })
3457
- ]
3458
- }));
3459
- }
3460
- if (full) {
3461
- return /* @__PURE__ */ jsx2("div", {
3462
- className: cn(styles.fullscreen, className),
3463
- children: _renderLoading()
3464
- });
3465
- } else if (block) {
3466
- return /* @__PURE__ */ jsx2("div", {
3467
- className: cn(styles.block, className),
3468
- children: _renderLoading()
3469
- });
3470
- }
3471
- return _renderLoading();
3472
- }
3473
- function LoadingProvider(param) {
3474
- var children = param.children;
3475
- var _useState = _sliced_to_array(useState(false), 2), isLoading = _useState[0], setIsLoading = _useState[1];
3476
- var _useState1 = _sliced_to_array(useState(false), 2), isGlobalLoading = _useState1[0], setIsGlobalLoading = _useState1[1];
3477
- var showLoading = useCallback(function() {
3478
- var global = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
3479
- setIsLoading(true);
3480
- setIsGlobalLoading(global);
3481
- }, []);
3482
- var hideLoading = useCallback(function() {
3483
- setIsLoading(false);
3484
- setIsGlobalLoading(false);
3485
- }, []);
3486
- var contextValue = useMemo(function() {
3487
- return {
3488
- isLoading: isLoading,
3489
- isGlobalLoading: isGlobalLoading,
3490
- showLoading: showLoading,
3491
- hideLoading: hideLoading
3492
- };
3493
- }, [
3494
- isLoading,
3495
- isGlobalLoading,
3496
- showLoading,
3497
- hideLoading
3498
- ]);
3499
- return /* @__PURE__ */ jsx2(LoadingContext, {
3500
- value: contextValue,
3501
- children: isLoading ? /* @__PURE__ */ jsx2(Loading, {
3502
- full: isGlobalLoading
3503
- }) : children
3504
- });
3505
- }
3506
- // src/react/next-intl.tsx
3507
- import { NextIntlClientProvider, useTranslations } from "next-intl";
3508
- import { createContext as createContext2, use as use2, useMemo as useMemo2 } from "react";
3509
- // src/react/storage.tsx
3510
- import { useCallback as useCallback2, useEffect, useState as useState2 } from "react";
3511
- // src/utils/serializer.ts
3512
- var serializer = {
3513
- serialize: function(value) {
3514
- return JSON.stringify(value, function(_, v) {
3515
- if (_instanceof(v, Date)) {
3516
- return {
3517
- __type: "Date",
3518
- value: v.toISOString()
3519
- };
3520
- }
3521
- return v;
3522
- });
3523
- },
3524
- deserialize: function(value) {
3525
- return JSON.parse(value, function(_, v) {
3526
- if ((v === null || v === void 0 ? void 0 : v.__type) === "Date") {
3527
- return new Date(v.value);
3528
- }
3529
- return v;
3530
- });
3531
- }
3532
- };
3533
- // src/utils/storage-client.ts
3534
- import localForage from "localforage";
3535
- var storageClient = {
3536
- get: function get(key) {
3537
- return _async_to_generator(function() {
3538
- var error;
3539
- return _ts_generator(this, function(_state) {
3540
- switch(_state.label){
3541
- case 0:
3542
- _state.trys.push([
3543
- 0,
3544
- 2,
3545
- ,
3546
- 3
3547
- ]);
3548
- return [
3549
- 4,
3550
- localForage.getItem(key)
3551
- ];
3552
- case 1:
3553
- return [
3554
- 2,
3555
- _state.sent()
3556
- ];
3557
- case 2:
3558
- error = _state.sent();
3559
- console.error('❌ [Storage:get] Error getting key "'.concat(key, '":'), error);
3560
- return [
3561
- 2,
3562
- null
3563
- ];
3564
- case 3:
3565
- return [
3566
- 2
3567
- ];
3568
- }
3569
- });
3570
- })();
3571
- },
3572
- set: function set(key, value) {
3573
- return _async_to_generator(function() {
3574
- var error;
3575
- return _ts_generator(this, function(_state) {
3576
- switch(_state.label){
3577
- case 0:
3578
- _state.trys.push([
3579
- 0,
3580
- 2,
3581
- ,
3582
- 3
3583
- ]);
3584
- return [
3585
- 4,
3586
- localForage.setItem(key, value)
3587
- ];
3588
- case 1:
3589
- _state.sent();
3590
- return [
3591
- 3,
3592
- 3
3593
- ];
3594
- case 2:
3595
- error = _state.sent();
3596
- console.error('❌ [Storage:set] Error setting key "'.concat(key, '":'), error);
3597
- return [
3598
- 3,
3599
- 3
3600
- ];
3601
- case 3:
3602
- return [
3603
- 2
3604
- ];
3605
- }
3606
- });
3607
- })();
3608
- },
3609
- remove: function remove(key) {
3610
- return _async_to_generator(function() {
3611
- var error;
3612
- return _ts_generator(this, function(_state) {
3613
- switch(_state.label){
3614
- case 0:
3615
- _state.trys.push([
3616
- 0,
3617
- 2,
3618
- ,
3619
- 3
3620
- ]);
3621
- return [
3622
- 4,
3623
- localForage.removeItem(key)
3624
- ];
3625
- case 1:
3626
- _state.sent();
3627
- return [
3628
- 3,
3629
- 3
3630
- ];
3631
- case 2:
3632
- error = _state.sent();
3633
- console.error('❌ [Storage:remove] Error removing key "'.concat(key, '":'), error);
3634
- return [
3635
- 3,
3636
- 3
3637
- ];
3638
- case 3:
3639
- return [
3640
- 2
3641
- ];
3642
- }
3643
- });
3644
- })();
3645
- },
3646
- keys: function keys() {
3647
- return _async_to_generator(function() {
3648
- var keys, error;
3649
- return _ts_generator(this, function(_state) {
3650
- switch(_state.label){
3651
- case 0:
3652
- _state.trys.push([
3653
- 0,
3654
- 2,
3655
- ,
3656
- 3
3657
- ]);
3658
- return [
3659
- 4,
3660
- localForage.keys()
3661
- ];
3662
- case 1:
3663
- keys = _state.sent();
3664
- return [
3665
- 2,
3666
- keys !== null && keys !== void 0 ? keys : []
3667
- ];
3668
- case 2:
3669
- error = _state.sent();
3670
- console.error("❌ [Storage:keys] Error getting keys:", error);
3671
- return [
3672
- 2,
3673
- []
3674
- ];
3675
- case 3:
3676
- return [
3677
- 2
3678
- ];
3679
- }
3680
- });
3681
- })();
3682
- }
3683
- };
3684
- // src/react/storage.tsx
3685
- function useStorage(key, initialValue) {
3686
- var serializer2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : serializer;
3687
- var _useState2 = _sliced_to_array(useState2(initialValue), 2), value = _useState2[0], setValue = _useState2[1];
3688
- var _useState21 = _sliced_to_array(useState2(false), 2), isLoaded = _useState21[0], setIsLoaded = _useState21[1];
3689
- useEffect(function() {
3690
- var isMounted = true;
3691
- var loadValue = /*#__PURE__*/ function() {
3692
- var _ref = _async_to_generator(function() {
3693
- var valueFound, parsedValue, serialized, error;
3694
- return _ts_generator(this, function(_state) {
3695
- switch(_state.label){
3696
- case 0:
3697
- _state.trys.push([
3698
- 0,
3699
- 6,
3700
- 7,
3701
- 8
3702
- ]);
3703
- return [
3704
- 4,
3705
- storageClient.get(key)
3706
- ];
3707
- case 1:
3708
- valueFound = _state.sent();
3709
- if (!isMounted) return [
3710
- 3,
3711
- 5
3712
- ];
3713
- if (!(valueFound !== null)) return [
3714
- 3,
3715
- 2
3716
- ];
3717
- parsedValue = serializer2.deserialize(valueFound);
3718
- setValue(parsedValue);
3719
- return [
3720
- 3,
3721
- 5
3722
- ];
3723
- case 2:
3724
- if (!(initialValue !== void 0)) return [
3725
- 3,
3726
- 4
3727
- ];
3728
- serialized = serializer2.serialize(initialValue);
3729
- return [
3730
- 4,
3731
- storageClient.set(key, serialized)
3732
- ];
3733
- case 3:
3734
- _state.sent();
3735
- setValue(initialValue);
3736
- return [
3737
- 3,
3738
- 5
3739
- ];
3740
- case 4:
3741
- setValue(void 0);
3742
- _state.label = 5;
3743
- case 5:
3744
- return [
3745
- 3,
3746
- 8
3747
- ];
3748
- case 6:
3749
- error = _state.sent();
3750
- console.error('Error loading value for key "'.concat(key, '":'), error);
3751
- if (isMounted) {
3752
- setValue(initialValue);
3753
- }
3754
- return [
3755
- 3,
3756
- 8
3757
- ];
3758
- case 7:
3759
- if (isMounted) setIsLoaded(true);
3760
- return [
3761
- 7
3762
- ];
3763
- case 8:
3764
- return [
3765
- 2
3766
- ];
3767
- }
3768
- });
3769
- });
3770
- return function loadValue() {
3771
- return _ref.apply(this, arguments);
3772
- };
3773
- }();
3774
- loadValue();
3775
- return function() {
3776
- isMounted = false;
3777
- setIsLoaded(false);
3778
- };
3779
- }, [
3780
- key,
3781
- initialValue,
3782
- serializer2
3783
- ]);
3784
- useEffect(function() {
3785
- if (!isLoaded) return;
3786
- var saveValue = /*#__PURE__*/ function() {
3787
- var _ref = _async_to_generator(function() {
3788
- var serialized, error;
3789
- return _ts_generator(this, function(_state) {
3790
- switch(_state.label){
3791
- case 0:
3792
- _state.trys.push([
3793
- 0,
3794
- 3,
3795
- ,
3796
- 4
3797
- ]);
3798
- if (!(value !== void 0)) return [
3799
- 3,
3800
- 2
3801
- ];
3802
- serialized = serializer2.serialize(value);
3803
- return [
3804
- 4,
3805
- storageClient.set(key, serialized)
3806
- ];
3807
- case 1:
3808
- _state.sent();
3809
- _state.label = 2;
3810
- case 2:
3811
- return [
3812
- 3,
3813
- 4
3814
- ];
3815
- case 3:
3816
- error = _state.sent();
3817
- console.error('Error saving value for key "'.concat(key, '":'), error);
3818
- return [
3819
- 3,
3820
- 4
3821
- ];
3822
- case 4:
3823
- return [
3824
- 2
3825
- ];
3826
- }
3827
- });
3828
- });
3829
- return function saveValue() {
3830
- return _ref.apply(this, arguments);
3831
- };
3832
- }();
3833
- saveValue();
3834
- }, [
3835
- value,
3836
- key,
3837
- serializer2,
3838
- isLoaded
3839
- ]);
3840
- var set = useCallback2(function(newValue) {
3841
- setValue(function(prev) {
3842
- return typeof newValue === "function" ? newValue(prev) : newValue;
3843
- });
3844
- }, []);
3845
- var remove = useCallback2(/*#__PURE__*/ _async_to_generator(function() {
3846
- var error;
3847
- return _ts_generator(this, function(_state) {
3848
- switch(_state.label){
3849
- case 0:
3850
- _state.trys.push([
3851
- 0,
3852
- 2,
3853
- ,
3854
- 3
3855
- ]);
3856
- return [
3857
- 4,
3858
- storageClient.remove(key)
3859
- ];
3860
- case 1:
3861
- _state.sent();
3862
- setValue(void 0);
3863
- return [
3864
- 3,
3865
- 3
3866
- ];
3867
- case 2:
3868
- error = _state.sent();
3869
- console.error('Error removing key "'.concat(key, '":'), error);
3870
- return [
3871
- 3,
3872
- 3
3873
- ];
3874
- case 3:
3875
- return [
3876
- 2
3877
- ];
3878
- }
3879
- });
3880
- }), [
3881
- key
3882
- ]);
3883
- return {
3884
- value: value,
3885
- set: set,
3886
- remove: remove
3887
- };
3888
- }
3889
- // src/react/next-intl.tsx
3890
- import { Fragment, jsx as jsx3 } from "react/jsx-runtime";
3891
- var NextIntlContext = createContext2(void 0);
3892
- function useNextIntl() {
3893
- var context = use2(NextIntlContext);
3894
- if (!context) {
3895
- throw new Error("useNextIntl must be used within a NextIntlProvider");
3896
- }
3897
- return context;
3898
- }
3899
- var useTranslateNextIntl = useTranslations;
3900
- function withNextIntl(Component) {
3901
- var PageWithI18n = function(props) {
3902
- var _languages_find;
3903
- var currentLanguage = useNextIntl().currentLanguage;
3904
- var messages = props.messages, languages = props.languages;
3905
- var defaultLang = "en";
3906
- var defaultMessages = messages[(currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.value) || defaultLang];
3907
- var timeZone = (_languages_find = languages.find(function(lang) {
3908
- return lang.value === (currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.value);
3909
- })) === null || _languages_find === void 0 ? void 0 : _languages_find.timezone;
3910
- if (!messages) {
3911
- console.warn("Missing messages for language: ".concat((currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.value) || defaultLang));
3912
- return null;
3913
- }
3914
- return /* @__PURE__ */ jsx3(NextIntlClientProvider, {
3915
- locale: (currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.value) || defaultLang,
3916
- messages: defaultMessages,
3917
- timeZone: timeZone,
3918
- children: /* @__PURE__ */ jsx3(Component, _object_spread({}, props))
3919
- });
3920
- };
3921
- PageWithI18n.displayName = "withNextIntl(".concat(Component.displayName || Component.name || "Component", ")");
3922
- return PageWithI18n;
3923
- }
3924
- function LanguageWrapperBase(param) {
3925
- var children = param.children;
3926
- return /* @__PURE__ */ jsx3(Fragment, {
3927
- children: children
3928
- });
3929
- }
3930
- var LanguageWrapper = withNextIntl(LanguageWrapperBase);
3931
- function NextIntlProvider(param) {
3932
- var children = param.children, languages = param.languages, messages = param.messages;
3933
- var _languages_;
3934
- var _useStorage = useStorage("lang", (_languages_ = languages === null || languages === void 0 ? void 0 : languages[0]) !== null && _languages_ !== void 0 ? _languages_ : {}), value = _useStorage.value, set = _useStorage.set;
3935
- var contextValue = useMemo2(function() {
3936
- return {
3937
- languages: languages,
3938
- currentLanguage: value,
3939
- setCurrentLanguage: set
3940
- };
3941
- }, [
3942
- languages,
3943
- set,
3944
- value
3945
- ]);
3946
- return /* @__PURE__ */ jsx3(NextIntlContext, {
3947
- value: contextValue,
3948
- children: /* @__PURE__ */ jsx3(LanguageWrapper, {
3949
- languages: languages,
3950
- messages: messages,
3951
- children: children
3952
- })
3953
- });
3954
- }
3955
- // src/typescript/mongo.ts
3956
- import { Collection, Db } from "mongodb";
3957
- import { Document as Document2, Model } from "mongoose";
3958
- var C_Db = /*#__PURE__*/ function(Db) {
3959
- "use strict";
3960
- _inherits(C_Db, Db);
3961
- function C_Db() {
3962
- _class_call_check(this, C_Db);
3963
- return _call_super(this, C_Db, arguments);
3964
- }
3965
- return C_Db;
3966
- }(Db);
3967
- var C_Document = /*#__PURE__*/ function(Document2) {
3968
- "use strict";
3969
- _inherits(C_Document, Document2);
3970
- function C_Document() {
3971
- _class_call_check(this, C_Document);
3972
- return _call_super(this, C_Document, arguments);
3973
- }
3974
- return C_Document;
3975
- }(Document2);
3976
- var C_Model = /*#__PURE__*/ function(Model) {
3977
- "use strict";
3978
- _inherits(C_Model, Model);
3979
- function C_Model() {
3980
- _class_call_check(this, C_Model);
3981
- return _call_super(this, C_Model, arguments);
3982
- }
3983
- return C_Model;
3984
- }(Model);
3985
- var C_Collection = /*#__PURE__*/ function(Collection) {
3986
- "use strict";
3987
- _inherits(C_Collection, Collection);
3988
- function C_Collection() {
3989
- _class_call_check(this, C_Collection);
3990
- return _call_super(this, C_Collection, arguments);
3991
- }
3992
- return C_Collection;
3993
- }(Collection);
3994
- // src/utils/log.ts
3995
- import { GraphQLError } from "graphql";
3996
- function throwResponse(param) {
3997
- var message = param.message, _param_status = param.status, status = _param_status === void 0 ? RESPONSE_STATUS.INTERNAL_SERVER_ERROR : _param_status, _param_type = param.type, type = _param_type === void 0 ? "graphql" : _param_type;
3998
- var _ref;
3999
- var responseMessage = (_ref = message !== null && message !== void 0 ? message : status.MESSAGE) !== null && _ref !== void 0 ? _ref : "Internal server error";
4000
- if (type === "graphql") {
4001
- throw new GraphQLError(responseMessage, {
4002
- extensions: {
4003
- code: status.CODE
4004
- }
4005
- });
4006
- } else {
4007
- throw new Error(responseMessage);
4008
- }
4009
- }
4010
- // src/utils/common.ts
4011
- import unorm from "unorm";
4012
- function isJson(str) {
4013
- try {
4014
- JSON.parse(str);
4015
- return true;
4016
- } catch (e) {
4017
- return false;
4018
- }
4019
- }
4020
- var charMap = {
4021
- a: [
4022
- "\xE0",
4023
- "\xE1",
4024
- "\u1EA1",
4025
- "\u1EA3",
4026
- "\xE3",
4027
- "\xE2",
4028
- "\u1EA7",
4029
- "\u1EA5",
4030
- "\u1EAD",
4031
- "\u1EA9",
4032
- "\u1EAB",
4033
- "\u0103",
4034
- "\u1EB1",
4035
- "\u1EAF",
4036
- "\u1EB7",
4037
- "\u1EB3",
4038
- "\u1EB5"
4039
- ],
4040
- e: [
4041
- "\xE8",
4042
- "\xE9",
4043
- "\u1EB9",
4044
- "\u1EBB",
4045
- "\u1EBD",
4046
- "\xEA",
4047
- "\u1EC1",
4048
- "\u1EBF",
4049
- "\u1EC7",
4050
- "\u1EC3",
4051
- "\u1EC5"
4052
- ],
4053
- i: [
4054
- "\xEC",
4055
- "\xED",
4056
- "\u1ECB",
4057
- "\u1EC9",
4058
- "\u0129"
4059
- ],
4060
- o: [
4061
- "\xF2",
4062
- "\xF3",
4063
- "\u1ECD",
4064
- "\u1ECF",
4065
- "\xF5",
4066
- "\xF4",
4067
- "\u1ED3",
4068
- "\u1ED1",
4069
- "\u1ED9",
4070
- "\u1ED5",
4071
- "\u1ED7",
4072
- "\u01A1",
4073
- "\u1EDD",
4074
- "\u1EDB",
4075
- "\u1EE3",
4076
- "\u1EDF",
4077
- "\u1EE1"
4078
- ],
4079
- u: [
4080
- "\xF9",
4081
- "\xFA",
4082
- "\u1EE5",
4083
- "\u1EE7",
4084
- "\u0169",
4085
- "\u01B0",
4086
- "\u1EEB",
4087
- "\u1EE9",
4088
- "\u1EF1",
4089
- "\u1EED",
4090
- "\u1EEF"
4091
- ],
4092
- y: [
4093
- "\u1EF3",
4094
- "\xFD",
4095
- "\u1EF5",
4096
- "\u1EF7",
4097
- "\u1EF9"
4098
- ],
4099
- d: [
4100
- "\u0111"
4101
- ]
4102
- };
4103
- var upperCharMap = Object.entries(charMap).reduce(function(map, param) {
4104
- var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
4105
- map[key.toUpperCase()] = value.map(function(char) {
4106
- return char.toUpperCase();
4107
- });
4108
- return map;
4109
- }, {});
4110
- function regexSearchMapper(str) {
4111
- str = unorm.nfkc(str);
4112
- var combinedMap = _object_spread({}, charMap, upperCharMap);
4113
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
4114
- try {
4115
- for(var _iterator = Object.entries(combinedMap)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
4116
- var _step_value = _sliced_to_array(_step.value, 2), baseChar = _step_value[0], variations = _step_value[1];
4117
- var pattern = "[".concat(baseChar).concat(variations.join(""), "]");
4118
- var replacement = "(".concat([
4119
- baseChar
4120
- ].concat(_to_consumable_array(variations)).join("|"), ")");
4121
- str = str.replace(new RegExp(pattern, "g"), replacement);
4122
- }
4123
- } catch (err) {
4124
- _didIteratorError = true;
4125
- _iteratorError = err;
4126
- } finally{
4127
- try {
4128
- if (!_iteratorNormalCompletion && _iterator.return != null) {
4129
- _iterator.return();
4130
- }
4131
- } finally{
4132
- if (_didIteratorError) {
4133
- throw _iteratorError;
4134
- }
4135
- }
4136
- }
4137
- return str;
4138
- }
4139
- function removeAccent(str) {
4140
- return str.normalize("NFD").replace(RegExp("\\p{Diacritic}", "gu"), "");
4141
- }
4142
- export { ApolloProvider, BUILD_DIRECTORY, COMMAND, COMMIT_LINT_CLI, CYBERSKILL_CLI, CYBERSKILL_DIRECTORY, CYBERSKILL_PACKAGE_NAME, CYBERSKILL_STORAGE, C_Collection, C_Db, C_Document, C_Model, ESLINT_CLI, ESLINT_INSPECT_CLI, E_ErrorType, GIT_CLI, GIT_COMMIT_EDITMSG, GIT_HOOK, GIT_IGNORE, HOOK, LINT_STAGED_CLI, Loading, LoadingContext, LoadingProvider, MongoController, MongooseController, NODE_MODULES, NODE_MODULES_INSPECT_CLI, NextIntlContext, NextIntlProvider, PACKAGE_JSON, PACKAGE_LOCK_JSON, PATH, PNPM_CLI, PNPM_DLX_CLI, PNPM_EXEC_CLI, PNPM_LOCK_YAML, RESPONSE_STATUS, RIMRAF_CLI, SIMPLE_GIT_HOOK_CLI, SIMPLE_GIT_HOOK_JSON, TSCONFIG_JSON, TSC_CLI, TSX_CLI, VITEST_CLI, WORKING_DIRECTORY, aggregatePaginate, appendFileSync2 as appendFileSync, checkPackage, clearAllErrorLists, commandFormatter, commandLog, deepMerge, dirname2 as dirname, executeCommand, existsSync2 as existsSync, generateShortId, generateSlug, getLatestPackageVersion, getPackageJson, getStorageDir, getStoredErrorLists, initNodePersist, isJson, join2 as join, mongo, mongoosePaginate, readFileSync2 as readFileSync, regexSearchMapper, removeAccent, require2 as require, resolve2 as resolve, resolveCommands, resolveCyberSkillPath, resolveWorkingPath, rmSync2 as rmSync, saveErrorListToStorage, serializer, storageClient, storageServer, throwResponse, useLoading, useNextIntl, useStorage, useTranslateNextIntl, validate, withNextIntl, writeFileSync2 as writeFileSync };
1
+ function e(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function t(e){if(Array.isArray(e))return e}function r(t){if(Array.isArray(t))return e(t)}function n(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function s(e,t,r,n,s,a,o){try{var c=e[a](o);var i=c.value}catch(e){r(e);return}if(c.done){t(i)}else{Promise.resolve(i).then(n,s)}}function a(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function c(e){s(o,n,a,c,i,"next",e)}function i(e){s(o,n,a,c,i,"throw",e)}c(undefined)})}}function o(e,t,r){t=f(t);return A(e,D()?Reflect.construct(t,r||[],f(e).constructor):t.apply(e,r))}function c(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false;n.configurable=true;if("value"in n)n.writable=true;Object.defineProperty(e,n.key,n)}}function u(e,t,r){if(t)i(e.prototype,t);if(r)i(e,r);return e}function l(e,t,r){if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}function f(e){f=Object.setPrototypeOf?Object.getPrototypeOf:function e(e){return e.__proto__||Object.getPrototypeOf(e)};return f(e)}function E(e,t){if(typeof t!=="function"&&t!==null){throw new TypeError("Super expression must either be null or a function")}e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:true,configurable:true}});if(t)R(e,t)}function d(e,t){if(t!=null&&typeof Symbol!=="undefined"&&t[Symbol.hasInstance]){return!!t[Symbol.hasInstance](e)}else{return e instanceof t}}function v(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function m(e,t){var r=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(r==null)return;var n=[];var s=true;var a=false;var o,c;try{for(r=r.call(e);!(s=(o=r.next()).done);s=true){n.push(o.value);if(t&&n.length===t)break}}catch(e){a=true;c=e}finally{try{if(!s&&r["return"]!=null)r["return"]()}finally{if(a)throw c}}return n}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function p(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var n=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}n.forEach(function(t){l(e,t,r[t])})}return e}function S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);if(t){n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}r.push.apply(r,n)}return r}function y(e,t){t=t!=null?t:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(e,Object.getOwnPropertyDescriptors(t))}else{S(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function O(e,t){if(e==null)return{};var r=_(e,t);var n,s;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(s=0;s<a.length;s++){n=a[s];if(t.indexOf(n)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,n))continue;r[n]=e[n]}}return r}function _(e,t){if(e==null)return{};var r={};var n=Object.keys(e);var s,a;for(a=0;a<n.length;a++){s=n[a];if(t.indexOf(s)>=0)continue;r[s]=e[s]}return r}function A(e,t){if(t&&(N(t)==="object"||typeof t==="function")){return t}return n(e)}function R(e,t){R=Object.setPrototypeOf||function e(e,t){e.__proto__=t;return e};return R(e,t)}function C(e,r){return t(e)||m(e,r)||T(e,r)||g()}function I(e){return r(e)||v(e)||T(e)||h()}function N(e){"@swc/helpers - typeof";return e&&typeof Symbol!=="undefined"&&e.constructor===Symbol?"symbol":typeof e}function T(t,r){if(!t)return;if(typeof t==="string")return e(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor)n=t.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(t,r)}function D(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(D=function(){return!!e})()}function b(e,t){var r,n,s,a,o={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]};return a={next:c(0),"throw":c(1),"return":c(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function c(e){return function(t){return i([e,t])}}function i(a){if(r)throw new TypeError("Generator is already executing.");while(o)try{if(r=1,n&&(s=a[0]&2?n["return"]:a[0]?n["throw"]||((s=n["return"])&&s.call(n),0):n.next)&&!(s=s.call(n,a[1])).done)return s;if(n=0,s)a=[a[0]&2,s.value];switch(a[0]){case 0:case 1:s=a;break;case 4:o.label++;return{value:a[1],done:false};case 5:o.label++;n=a[1];a=[0];continue;case 7:a=o.ops.pop();o.trys.pop();continue;default:if(!(s=o.trys,s=s.length>0&&s[s.length-1])&&(a[0]===6||a[0]===2)){o=0;continue}if(a[0]===3&&(!s||a[1]>s[0]&&a[1]<s[3])){o.label=a[1];break}if(a[0]===6&&o.label<s[1]){o.label=s[1];s=a;break}if(s&&o.label<s[2]){o.label=s[2];o.ops.push(a);break}if(s[2])o.ops.pop();o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e];n=0}finally{r=s=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}import w from"@antfu/eslint-config";function L(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++){t[r]=arguments[r]}var n=function(e,t){var r=p({},e);return Object.keys(t).forEach(function(e){if(!Object.hasOwnProperty.call(t,e))return;var s=t[e],a=r[e];Array.isArray(s)?r[e]=I(new Set(I(Array.isArray(a)?a:[]).concat(I(s)))):(typeof s==="undefined"?"undefined":N(s))=="object"&&s!==null&&!Array.isArray(s)?r[e]=n((typeof a==="undefined"?"undefined":N(a))=="object"&&a!==null&&!Array.isArray(a)?a:{},s):r[e]=s}),r};return t.flatMap(function(e){return Array.isArray(e)?e:[e]}).reduce(function(e,t){return n(e,t)},{})}import M from"node:process";var P=function(e){return e.Error="error",e.Warning="warning",e}(P||{}),G=function(e){return e.PNPM_ADD_AND_EXEC="pnpmAddAndExec",e.PNPM_EXEC="pnpmExec",e.RAW="raw",e}(G||{});import k from"boxen";import U from"chalk";import{exec as j}from"node:child_process";import x from"node:process";import*as F from"node:util";import K from"node-fetch";import*as Y from"node:fs";var H=function(e){return Y.existsSync(e)};function B(e,t){var r=Y.readFileSync(e,"utf-8");if(t===null||t===void 0?void 0:t.asJson)try{var n=JSON.parse(r);if((typeof n==="undefined"?"undefined":N(n))=="object"&&n!==null)return n;throw new Error("Parsed JSON is not an object or array")}catch(t){throw new Error("Failed to parse JSON from file: ".concat(e))}return r}function Q(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var n=r.isJson,s=n===void 0?!1:n,a=s&&(typeof t==="undefined"?"undefined":N(t))=="object"?JSON.stringify(t,null,4):String(t);Y.writeFileSync(e,a,"utf-8")}function q(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var n=r.isJson,s=n===void 0?!1:n,a=s&&(typeof t==="undefined"?"undefined":N(t))=="object"?JSON.stringify(t,null,4):String(t);Y.appendFileSync(e,a,"utf-8")}function V(e){e.forEach(function(e){H(e)&&Y.rmSync(e,{recursive:!0,force:!0})})}import*as J from"node:path";function W(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++){t[r]=arguments[r]}var n;return(n=J).resolve.apply(n,[ek].concat(I(t)))}function z(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++){t[r]=arguments[r]}var n;return(n=J).resolve.apply(n,I(t))}function $(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++){t[r]=arguments[r]}var n;return(n=J).join.apply(n,I(t))}import X from"node-persist";import Z from"node:os";import ee from"node:process";function et(){return ee.env.CYBERSKILL_STORAGE_DIR||$(Z.homedir(),ej)}function er(){return en.apply(this,arguments)}function en(){en=a(function(){var e;return b(this,function(t){switch(t.label){case 0:e=X.defaultInstance;if(e)return[3,2];return[4,X.init({dir:et(),stringify:JSON.stringify,parse:JSON.parse,encoding:"utf8",logging:!1,forgiveParseErrors:!0})];case 1:e=t.sent();t.label=2;case 2:e;return[2]}})});return en.apply(this,arguments)}var es={get:function e(e){return a(function(){var t,r;return b(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,er()];case 1:n.sent();return[4,X.getItem(e)];case 2:return[2,(t=n.sent())!==null&&t!==void 0?t:null];case 3:r=n.sent();return[2,(console.error('❌ [Storage:get] Error getting key "'.concat(e,'":'),r),null)];case 4:return[2]}})})()},set:function e(e,t){return a(function(){var r;return b(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,er()];case 1:n.sent();return[4,X.setItem(e,t)];case 2:n.sent();return[3,4];case 3:r=n.sent();console.error('❌ [Storage:set] Error setting key "'.concat(e,'":'),r);return[3,4];case 4:return[2]}})})()},remove:function e(e){return a(function(){var t;return b(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,er()];case 1:r.sent();return[4,X.removeItem(e)];case 2:r.sent();return[3,4];case 3:t=r.sent();console.error('❌ [Storage:remove] Error removing key "'.concat(e,'":'),t);return[3,4];case 4:return[2]}})})()},keys:function e(){return a(function(){var e,t;return b(this,function(r){switch(r.label){case 0:r.trys.push([0,3,,4]);return[4,er()];case 1:r.sent();return[4,X.keys()];case 2:e=r.sent();return[2,Array.isArray(e)?e:(console.warn("⚠️ [Storage:keys] Invalid keys response:",e),[])];case 3:t=r.sent();return[2,(console.error("❌ [Storage:keys] Error getting keys:",t),[])];case 4:return[2]}})})()},getLogLink:function e(e){return a(function(){return b(this,function(t){try{return[2,"".concat(et()," (key: ").concat(e,")")]}catch(e){return[2,(console.error("❌ [Storage:getLogLink] Error getting log link:",e),null)]}return[2]})})()}};var ea=24*60*60*1e3;function eo(e){var t=$(ek,eK);if(H(t))try{var r=B(t,{asJson:!0});if(r.name===e)return{path:t,file:r,isCurrentProject:!0}}catch(e){eS.warning("Failed to read local package.json: ".concat(e.message))}var n=$(ek,ex,e,eK);if(H(n))try{var s=B(n,{asJson:!0});if(s.name===e)return{path:n,file:s,isCurrentProject:!1}}catch(t){eS.warning("Failed to read node_modules package.json for ".concat(e,": ").concat(t.message))}return!1}function ec(e){return ei.apply(this,arguments)}function ei(){ei=a(function(e){var t,r,n,s,a,o,c,i,u,l;var f=arguments;return b(this,function(E){switch(E.label){case 0:t=f.length>1&&f[1]!==void 0?f[1]:!1;r="npm_version:".concat(e),n="npm_metadata:".concat(e);return[4,es.get(r)];case 1:s=E.sent();return[4,es.get(n)];case 2:a=E.sent(),o=s&&Date.now()-s.timestamp<ea;if(!t&&o)return[2,s.version];c={};(a===null||a===void 0?void 0:a.etag)&&(c["If-None-Match"]=a.etag),(a===null||a===void 0?void 0:a.lastModified)&&(c["If-Modified-Since"]=a.lastModified);E.label=3;case 3:E.trys.push([3,8,,9]);return[4,K("https://registry.npmjs.org/".concat(e,"/latest"),{headers:c})];case 4:i=E.sent();if(i.status===304&&s)return[2,s.version];if(!i.ok)throw new Error("Failed to fetch latest version: ".concat(i.statusText));return[4,i.json()];case 5:u=E.sent().version;return[4,es.set(r,{version:u,timestamp:Date.now()})];case 6:E.sent();return[4,es.set(n,{etag:i.headers.get("ETag")||void 0,lastModified:i.headers.get("Last-Modified")||void 0})];case 7:return[2,(E.sent(),u)];case 8:l=E.sent();if(eS.error("Error fetching latest version for ".concat(e,": ").concat(l.message)),s)return[2,(eS.warning("Falling back to cached version for ".concat(e,": ").concat(s.version)),s.version)];throw l;case 9:return[2]}})});return ei.apply(this,arguments)}function eu(e){return el.apply(this,arguments)}function el(){el=a(function(e){var t,r,n,s,a;return b(this,function(o){switch(o.label){case 0:t={isInstalled:!1,isCurrentProject:!1,installedPath:"",installedVersion:"",latestVersion:"",file:{}};o.label=1;case 1:o.trys.push([1,6,,7]);r=eo(e);n=r;if(!n)return[3,5];t.file=r.file,t.isInstalled=!0,t.installedPath=r.path,t.installedVersion=r.file.version,t.isCurrentProject=r.isCurrentProject;if(!r.isCurrentProject)return[3,2];s=r.file.version;return[3,4];case 2:return[4,ec(e,!0)];case 3:s=o.sent();o.label=4;case 4:n=t.latestVersion=s;o.label=5;case 5:return[2,(n,t)];case 6:a=o.sent();return[2,(eS.error('Error checking package "'.concat(e,'": ').concat(a.message)),t)];case 7:return[2]}})});return el.apply(this,arguments)}var ef=x.env.DEBUG==="true",eE=F.promisify(j),ed=U.gray,ev=U.blue;function em(){return ed("[".concat(new Date().toLocaleTimeString(),"]"))}function eg(e){var t=U[e];return typeof t=="function"?t:U.green}function eh(e,t,r,n){var s=eg(t);console.log("".concat(em()," ").concat(s("".concat(r," ").concat(e))," ").concat(n))}function ep(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=r.color,s=n===void 0?"green":n,a=r.padding,o=a===void 0?1:a,c=r.margin,i=c===void 0?1:c,u=r.borderStyle,l=u===void 0?"round":u,f=r.titleColor,E=f===void 0?"bold":f;var d=eg(s),v=eg(E);if(typeof t=="string"){console.log(k(v(d("".concat(e,"\n").concat(t))),{padding:o,margin:i,borderStyle:l,borderColor:s}));return}Array.isArray(t)&&t.length&&(t.forEach(function(e){var t=e.file,r=e.position,n=e.rule,s=e.message;console.log("".concat(em()," ").concat(d("File:")," ").concat(ev("".concat(t).concat(r?":".concat(r):"")))),n&&console.log(" ".concat(d("Rule:")," ").concat(d(n))),console.log(" ".concat(d("Message:")," ").concat(d(s)))}),console.log(k(v(d("".concat(e,": ").concat(t.length))),{padding:o,margin:i,borderStyle:l,borderColor:s})),console.log(ed("─".repeat(40))))}var eS={success:function(e){return eh("SUCCESS","green","✔",e)},error:function(e){return eh("ERROR","red","✖",e)},warning:function(e){return eh("WARNING","yellow","⚠",e)},info:function(e){return eh("INFO","blue","ℹ",e)},printBoxedLog:ep};function ey(e){return"error_list:".concat(e)}function eO(e){return e_.apply(this,arguments)}function e_(){e_=a(function(e){var t,r,n;return b(this,function(s){switch(s.label){case 0:if(e.length===0)return[2];t=Date.now(),r=ey(t);s.label=1;case 1:s.trys.push([1,3,,4]);return[4,es.set(r,{errors:e,timestamp:t})];case 2:s.sent(),setTimeout(/*#__PURE__*/a(function(){var e;return b(this,function(t){switch(t.label){case 0:return[4,es.getLogLink(r)];case 1:e=t.sent();e&&eS.info("\uD83D\uDCC2 Open the error list manually: ".concat(e));return[2]}})}),10);return[3,4];case 3:n=s.sent();eS.error("Failed to save errors: ".concat(n.message));return[3,4];case 4:return[2]}})});return e_.apply(this,arguments)}function eA(){return eR.apply(this,arguments)}function eR(){eR=a(function(){var e,t,r;return b(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,es.keys()];case 1:e=n.sent(),t=Array.isArray(e)?e.filter(function(e){var t;return e===null||e===void 0?void 0:(t=e.startsWith)===null||t===void 0?void 0:t.call(e,"error_list:")}):[];return[4,Promise.all(t.map(/*#__PURE__*/function(){var e=a(function(e){var t;return b(this,function(r){switch(r.label){case 0:return[4,es.get(e)];case 1:return[2,((t=r.sent())===null||t===void 0?void 0:t.errors)||[]]}})});return function(t){return e.apply(this,arguments)}}()))];case 2:return[2,n.sent().flat()];case 3:r=n.sent();return[2,(eS.error("Failed to retrieve stored errors: ".concat(r.message)),[])];case 4:return[2]}})});return eR.apply(this,arguments)}function eC(){return eI.apply(this,arguments)}function eI(){eI=a(function(){var e,t,r;return b(this,function(n){switch(n.label){case 0:n.trys.push([0,3,,4]);return[4,es.keys()];case 1:e=n.sent(),t=Array.isArray(e)?e.filter(function(e){var t;return e===null||e===void 0?void 0:(t=e.startsWith)===null||t===void 0?void 0:t.call(e,"error_list:")}):[];return[4,Promise.all(t.map(function(e){return es.remove(e)}))];case 2:n.sent();return[3,4];case 3:r=n.sent();eS.error("Failed to clear error lists: ".concat(r.message));return[3,4];case 4:return[2]}})});return eI.apply(this,arguments)}function eN(e){var t=[],r=[],n="",s=/^\s*(\d+):(\d+)\s+(error|warning)\s+(.+?)\s+(\S+)$/,a=/^(.+?)\((\d+),(\d+)\):\s+(error|warning)\s+TS\d+:\s+(\S.+)$/,o=/^✖\s+(.*?)\s+\[(.*?)\]$/;e.split("\n").forEach(function(e){if(e.startsWith("/"))n=e.trim();else{var c=s.exec(e)||[],i=a.exec(e)||[],u=o.exec(e)||[];c.length&&n?t.push({file:n,position:"".concat(c[1],":").concat(c[2]),type:c[3]==="error"?"error":"warning",message:c[4].trim(),rule:c[5].trim()}):i.length?t.push({file:i[1],position:"".concat(i[2],":").concat(i[3]),type:i[4]==="error"?"error":"warning",message:i[5].trim()}):u.length?t.push({file:"commitlint",type:"error",message:u[1].trim(),rule:u[2].trim()}):r.push(e.trim())}}),t.length&&eO(t),r.length&&ef&&(eS.warning("Unmatched lines:"),r.forEach(function(e){return console.log(" ".concat(e))}))}function eT(e){try{var t=JSON.parse(e),r=[];t.forEach(function(e){var t=e.filePath,n=e.messages;n.forEach(function(e){var n=e.severity,s=e.line,a=e.column,o=e.ruleId,c=e.message;r.push({type:n===2?"error":"warning",file:t,position:"".concat(s,":").concat(a),rule:o,message:c})})}),r.length&&eO(r)}catch(t){eN(e)}}function eD(e){return eb.apply(this,arguments)}function eb(){eb=a(function(e){var t,r,n,s,a,o,c,i,u;var l=arguments;return b(this,function(f){switch(f.label){case 0:t=l.length>1&&l[1]!==void 0?l[1]:eT;r=new AbortController;x.on("SIGINT",function(){eS.warning("Process interrupted. Terminating..."),r.abort(),x.exit()});f.label=1;case 1:f.trys.push([1,3,,4]);return[4,eE(e,{maxBuffer:0x6400000,signal:r.signal})];case 2:n=f.sent(),s=n.stdout,a=n.stderr;[s,a].forEach(function(e){return e&&t(e)});return[3,4];case 3:o=f.sent();c=o.stdout,i=o.stderr,u=o.message;[c,i].forEach(function(e){return e&&t(e)}),!i&&!c&&eS.error("Command failed: ".concat(u));return[3,4];case 4:return[2]}})});return eb.apply(this,arguments)}function ew(e){return{raw:!0,cmd:e}}function eL(e,t){return(t===null||t===void 0?void 0:t.isRemote)?"".concat(e9," ").concat(eU," ").concat(e):(t===null||t===void 0?void 0:t.isCurrentProject)?"".concat(e9," ").concat(e8," src/cli.ts ").concat(e):"".concat(e9," ").concat(ez," ").concat(e)}function eM(e,t){return typeof e=="function"?eL(e(t),t):(typeof e==="undefined"?"undefined":N(e))=="object"&&(e===null||e===void 0?void 0:e.raw)===!0?e.cmd:typeof e=="string"?eL(e,t):e}function eP(e){return eG.apply(this,arguments)}function eG(){eG=a(function(e){var t,r,n,s,a,o,c;var i=arguments;return b(this,function(u){switch(u.label){case 0:t=i.length>1&&i[1]!==void 0?i[1]:{};n=(r=t===null||t===void 0?void 0:t.isRemote)!==null&&r!==void 0?r:!1;if(!n)return[3,1];c=!1;return[3,3];case 1:return[4,eu(eU)];case 2:c=u.sent().isCurrentProject;u.label=3;case 3:s=c,a={isRemote:n,isCurrentProject:s},o=typeof e=="function"?e(a):e;return[2,Object.fromEntries(Object.entries(o).map(function(e){var t=C(e,2),r=t[0],n=t[1];return[r,eM(n,a)]}))]}})});return eG.apply(this,arguments)}var ek=M.env.INIT_CWD||M.cwd(),eU="@cyberskill/shared",ej=".cyberskill-storage",ex="node_modules",eF="dist",eK="package.json",eY="package-lock.json",eH="tsconfig.json",eB=".gitignore",eQ=".simple-git-hooks.json",eq="pnpm-lock.yaml",eV=".git/hooks/",eJ=".git/COMMIT_EDITMSG",eW=$(ek,ex,eU,eF),ez="cyberskill",e$="eslint",eX="vitest",eZ="vitest",e0="@commitlint/cli",e2="commitlint",e1="lint-staged",e3="lint-staged",e4="tsc",e5="tsc",e8="tsx",e6="git",e7="pnpm",e9="pnpm exec",te="simple-git-hooks",tt="simple-git-hooks",tr="@eslint/config-inspector",tn="eslint-config-inspector",ts="node-modules-inspector",ta="node-modules-inspector",to={CYBERSKILL_DIRECTORY:eW,WORKING_DIRECTORY:ek,TS_CONFIG:W(eH),GIT_IGNORE:W(eB),GIT_HOOK:W(eV),GIT_COMMIT_MSG:W(eJ),SIMPLE_GIT_HOOKS_JSON:W(eQ),PACKAGE_JSON:W(eK),PACKAGE_LOCK_JSON:W(eY),PNPM_LOCK_YAML:W(eq),NODE_MODULES:W(ex),CYBERSKILL:{LINT_STAGED_CONFIG:W("".concat(eW,"/configs/lint-staged/base.js")),COMMITLINT_CONFIG:W("".concat(eW,"/configs/commitlint/base.js")),UNIT_TEST_CONFIG:W("".concat(eW,"/configs/vitest/react/unit.js")),E2E_TEST_CONFIG:W("".concat(eW,"/configs/vitest/react/e2e.js"))}};function tc(e){var t=e.isCurrentProject;return p({"pre-commit":e3,"commit-msg":e2},t&&{"pre-push":ew("".concat(e6," pull"))})}function ti(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++){r[n-1]=arguments[n]}var s=C(r,2),a=s[0],o=s[1];switch(e){case"pnpmAddAndExec":return eM(ew("".concat(e7," add -D ").concat(a," && ").concat(e9," ").concat(o)));case"pnpmExec":return eM(ew("".concat(e9," ").concat(a," ").concat(o||"").trim()));case"raw":return eM(ew(a))}}var tu={SIMPLE_GIT_HOOKS:ti("pnpmAddAndExec",te,tt),ESLINT_INSPECT:ti("pnpmAddAndExec",tr,tn),NODE_MODULES_INSPECT:ti("pnpmAddAndExec",ts,ta),ESLINT_CHECK:ti("pnpmExec",e$,to.WORKING_DIRECTORY),ESLINT_FIX:ti("pnpmExec",e$,"".concat(to.WORKING_DIRECTORY," --fix")),TYPESCRIPT_CHECK:ti("pnpmAddAndExec",e4,"".concat(e5," -p ").concat(to.TS_CONFIG," --noEmit")),CONFIGURE_GIT_HOOK:ti("raw","".concat(e6," config core.hooksPath ").concat(to.GIT_HOOK)),BUILD:ti("raw","".concat(e7," run build")),STAGE_BUILD_DIRECTORY:ti("raw","".concat(e6," add ").concat(eF)),PNPM_INSTALL_STANDARD:ti("raw","".concat(e7," install")),PNPM_INSTALL_LEGACY:ti("raw","".concat(e7," install --legacy-peer-deps")),PNPM_INSTALL_FORCE:ti("raw","".concat(e7," install --force")),CYBERSKILL:{TEST_UNIT:ti("pnpmAddAndExec",eX,"".concat(eZ," --config ").concat(to.CYBERSKILL.UNIT_TEST_CONFIG)),TEST_E2E:ti("pnpmAddAndExec",eX,"".concat(eZ," --config ").concat(to.CYBERSKILL.E2E_TEST_CONFIG)),COMMIT_LINT:ti("pnpmAddAndExec",e0,"".concat(e2," --edit ").concat(to.GIT_COMMIT_MSG," --config ").concat(to.CYBERSKILL.COMMITLINT_CONFIG)),LINT_STAGED:ti("pnpmAddAndExec",e1,"".concat(e3," --config ").concat(to.CYBERSKILL.LINT_STAGED_CONFIG))}};var tl={GRAPHQL_PARSE_FAILED:{CODE:"GRAPHQL_PARSE_FAILED",MESSAGE:"The GraphQL operation string contains a syntax error."},GRAPHQL_VALIDATION_FAILED:{CODE:"GRAPHQL_VALIDATION_FAILED",MESSAGE:"The GraphQL operation is not valid against the server's schema."},BAD_USER_INPUT:{CODE:"BAD_USER_INPUT",MESSAGE:"The GraphQL operation includes an invalid value for a field argument."},PERSISTED_QUERY_NOT_FOUND:{CODE:"PERSISTED_QUERY_NOT_FOUND",MESSAGE:"A client sent the hash of a query string to execute via automatic persisted queries, but the query was not in the APQ cache."},PERSISTED_QUERY_NOT_SUPPORTED:{CODE:"PERSISTED_QUERY_NOT_SUPPORTED",MESSAGE:"A client sent the hash of a query string to execute via automatic persisted queries, but the server has disabled APQ."},OPERATION_RESOLUTION_FAILURE:{CODE:"OPERATION_RESOLUTION_FAILURE",MESSAGE:"The request was parsed successfully and is valid against the server's schema, but the server couldn't resolve which operation to run. This occurs when a request containing multiple named operations doesn't specify which operation to run (i.e.,operationName), or if the named operation isn't included in the request."},CONTINUE:{CODE:100,MESSAGE:"Continue"},SWITCHING_PROTOCOLS:{CODE:101,MESSAGE:"Switching Protocols"},PROCESSING:{CODE:102,MESSAGE:"Processing"},OK:{CODE:200,MESSAGE:"OK"},CREATED:{CODE:201,MESSAGE:"Created"},ACCEPTED:{CODE:202,MESSAGE:"Accepted"},NON_AUTHORITATIVE_INFORMATION:{CODE:203,MESSAGE:"Non Authoritative Information"},NO_CONTENT:{CODE:204,MESSAGE:"No Content"},RESET_CONTENT:{CODE:205,MESSAGE:"Reset Content"},PARTIAL_CONTENT:{CODE:206,MESSAGE:"Partial Content"},MULTI_STATUS:{CODE:207,MESSAGE:"Multi-Status"},MULTIPLE_CHOICES:{CODE:300,MESSAGE:"Multiple Choices"},MOVED_PERMANENTLY:{CODE:301,MESSAGE:"Moved Permanently"},MOVED_TEMPORARILY:{CODE:302,MESSAGE:"Moved Temporarily"},SEE_OTHER:{CODE:303,MESSAGE:"See Other"},NOT_MODIFIED:{CODE:304,MESSAGE:"Not Modified"},USE_PROXY:{CODE:305,MESSAGE:"Use Proxy"},TEMPORARY_REDIRECT:{CODE:307,MESSAGE:"Temporary Redirect"},PERMANENT_REDIRECT:{CODE:308,MESSAGE:"Permanent Redirect"},BAD_REQUEST:{CODE:400,MESSAGE:"Bad Request"},UNAUTHORIZED:{CODE:401,MESSAGE:"Unauthorized"},PAYMENT_REQUIRED:{CODE:402,MESSAGE:"Payment Required"},FORBIDDEN:{CODE:403,MESSAGE:"Forbidden"},NOT_FOUND:{CODE:404,MESSAGE:"Not Found"},METHOD_NOT_ALLOWED:{CODE:405,MESSAGE:"Method Not Allowed"},NOT_ACCEPTABLE:{CODE:406,MESSAGE:"Not Acceptable"},PROXY_AUTHENTICATION_REQUIRED:{CODE:407,MESSAGE:"Proxy Authentication Required"},REQUEST_TIMEOUT:{CODE:408,MESSAGE:"Request Timeout"},CONFLICT:{CODE:409,MESSAGE:"Conflict"},GONE:{CODE:410,MESSAGE:"Gone"},LENGTH_REQUIRED:{CODE:411,MESSAGE:"Length Required"},PRECONDITION_FAILED:{CODE:412,MESSAGE:"Precondition Failed"},REQUEST_TOO_LONG:{CODE:413,MESSAGE:"Request Entity Too Large"},REQUEST_URI_TOO_LONG:{CODE:414,MESSAGE:"Request-URI Too Long"},UNSUPPORTED_MEDIA_TYPE:{CODE:415,MESSAGE:"Unsupported Media Type"},REQUESTED_RANGE_NOT_SATISFIABLE:{CODE:416,MESSAGE:"Requested Range Not Satisfiable"},EXPECTATION_FAILED:{CODE:417,MESSAGE:"Expectation Failed"},IM_A_TEAPOT:{CODE:418,MESSAGE:"I'm a teapot"},INSUFFICIENT_SPACE_ON_RESOURCE:{CODE:419,MESSAGE:"Insufficient Space on Resource"},METHOD_FAILURE:{CODE:420,MESSAGE:"Method Failure"},MISDIRECTED_REQUEST:{CODE:421,MESSAGE:"Misdirected Request"},UNPROCESSABLE_ENTITY:{CODE:422,MESSAGE:"Unprocessable Entity"},LOCKED:{CODE:423,MESSAGE:"Locked"},FAILED_DEPENDENCY:{CODE:424,MESSAGE:"Failed Dependency"},PRECONDITION_REQUIRED:{CODE:428,MESSAGE:"Precondition Required"},TOO_MANY_REQUESTS:{CODE:429,MESSAGE:"Too Many Requests"},REQUEST_HEADER_FIELDS_TOO_LARGE:{CODE:431,MESSAGE:"Request Header Fields Too Large"},UNAVAILABLE_FOR_LEGAL_REASONS:{CODE:451,MESSAGE:"Unavailable For Legal Reasons"},INTERNAL_SERVER_ERROR:{CODE:500,MESSAGE:"Internal Server Error"},NOT_IMPLEMENTED:{CODE:501,MESSAGE:"Not Implemented"},BAD_GATEWAY:{CODE:502,MESSAGE:"Bad Gateway"},SERVICE_UNAVAILABLE:{CODE:503,MESSAGE:"Service Unavailable"},GATEWAY_TIMEOUT:{CODE:504,MESSAGE:"Gateway Timeout"},HTTP_VERSION_NOT_SUPPORTED:{CODE:505,MESSAGE:"HTTP Version Not Supported"},INSUFFICIENT_STORAGE:{CODE:507,MESSAGE:"Insufficient Storage"},NETWORK_AUTHENTICATION_REQUIRED:{CODE:511,MESSAGE:"Network Authentication Required"}};import{format as tf}from"date-fns";import{Document as tE}from"mongoose";import td from"mongoose-aggregate-paginate-v2";import tv from"mongoose-paginate-v2";import{v4 as tm}from"uuid";import tg from"crypto-js";import th from"slugify";var tp=th.default||th;function tS(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;var r=t||{},n=r.lower,s=n===void 0?!0:n,a=r.locale,o=a===void 0?"vi":a,c=O(r,["lower","locale"]);return tp(e,p({lower:s,locale:o},c))}function ty(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4;return tg.SHA256(e).toString(tg.enc.Hex).slice(0,t)}var tO={isEmpty:function e(e){return e==null?!0:Array.isArray(e)?e.length===0:(typeof e==="undefined"?"undefined":N(e))=="object"?d(e,Date)?!1:Object.keys(e).length===0:typeof e=="string"?e.trim().length===0:!1}};var t_={getDateTime:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Date;return tf(e,"yyyy-MM-dd HH:mm:ss.SSS")},createGenericFields:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.returnDateAs,r=t===void 0?"string":t;var n=r==="string"?t_.getDateTime():new Date;return{id:tm(),isDel:!1,createdAt:n,updatedAt:n}},applyPlugins:function e(e,t){t.filter(function(e){return typeof e=="function"}).forEach(function(t){return e.plugin(t)})},applyMiddlewares:function e(e,t){t.forEach(function(t){var r=t.method,n=t.pre,s=t.post;r&&n&&e.pre(r,n),r&&s&&e.post(r,s)})},createGenericSchema:function e(e){return new e.Schema({id:{type:String,default:tm,required:!0,unique:!0},isDel:{type:Boolean,default:!1,required:!0}},{timestamps:!0})},createSchema:function e(e){var t=e.mongoose,r=e.schema,n=e.virtuals,s=n===void 0?[]:n,a=e.standalone,o=a===void 0?!1:a;var c=new t.Schema(r,{strict:!0});return s.forEach(function(e){var t=e.name,r=e.options,n=e.get;var s=c.virtual(t,r);n&&s.get(n)}),o||c.add(t_.createGenericSchema(t)),c},createModel:function e(e){var t=e.mongoose,r=e.name,n=e.schema,s=e.pagination,a=s===void 0?!1:s,o=e.aggregate,c=o===void 0?!1:o,i=e.virtuals,u=i===void 0?[]:i,l=e.middlewares,f=l===void 0?[]:l;if(!r)throw new Error("Model name is required.");if(t.models[r])return t.models[r];var E=t_.createSchema({mongoose:t,schema:n,virtuals:u});return t_.applyPlugins(E,[a&&tv,c&&td]),t_.applyMiddlewares(E,f),t.model(r,E)},createSlugQuery:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;return y(p({},t,r&&{id:{$ne:r}}),{$or:[{slug:e},{slugHistory:e}]})},validator:{isEmpty:function e(){return /*#__PURE__*/function(){var e=a(function(e){return b(this,function(t){return[2,!tO.isEmpty(e)]})});return function(t){return e.apply(this,arguments)}}()},isUnique:function e(e){return /*#__PURE__*/function(){var t=a(function(t){var r;return b(this,function(n){switch(n.label){case 0:if(!Array.isArray(e)||e.length===0)throw new Error("Fields must be a non-empty array of strings.");r={$or:e.map(function(e){return l({},e,t)})};return[4,this.constructor.findOne(r)];case 1:return[2,!n.sent()]}})});return function(e){return t.apply(this,arguments)}}()},matchesRegex:function e(e){return /*#__PURE__*/function(){var t=a(function(t){return b(this,function(r){if(!Array.isArray(e)||e.some(function(e){return!d(e,RegExp)}))throw new Error("regexArray must be an array of valid RegExp objects.");return[2,e.every(function(e){return e.test(t)})]})});return function(e){return t.apply(this,arguments)}}()}}},tA=/*#__PURE__*/function(){"use strict";function e(t,r){c(this,e);this.collection=t.collection(r)}u(e,[{key:"createOne",value:function e(e){var t=this;return a(function(){var r,n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);r=p({},t_.createGenericFields(),e);n={success:!0,message:"Document created successfully"};return[4,t.collection.insertOne(r)];case 1:return[2,(n.result=a.sent(),n)];case 2:s=a.sent();return[2,{success:!1,message:s.message}];case 3:return[2]}})})()}},{key:"createMany",value:function e(e){var t=this;return a(function(){var r,n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);r=e.map(function(e){return p({},t_.createGenericFields(),e)});return[4,t.collection.insertMany(r)];case 1:n=a.sent();return[2,n.insertedCount===0?{success:!1,message:"No documents were inserted"}:{success:!0,message:"".concat(n.insertedCount," documents created successfully"),result:n}];case 2:s=a.sent();return[2,{success:!1,message:s.message}];case 3:return[2]}})})()}},{key:"findOne",value:function e(e){var t=this;return a(function(){var r,n;return b(this,function(s){switch(s.label){case 0:s.trys.push([0,2,,3]);return[4,t.collection.findOne(e)];case 1:r=s.sent();return[2,r?{success:!0,message:"Document found",result:r}:{success:!1,message:"Document not found"}];case 2:n=s.sent();return[2,{success:!1,message:n.message}];case 3:return[2]}})})()}},{key:"findAll",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var t=this;return a(function(){var r,n;return b(this,function(s){switch(s.label){case 0:s.trys.push([0,2,,3]);r={success:!0,message:"Documents retrieved successfully"};return[4,t.collection.find(e).toArray()];case 1:return[2,(r.result=s.sent(),r)];case 2:n=s.sent();return[2,{success:!1,message:n.message}];case 3:return[2]}})})()}},{key:"count",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var t=this;return a(function(){var r,n;return b(this,function(s){switch(s.label){case 0:s.trys.push([0,2,,3]);r={success:!0,message:"Count retrieved successfully"};return[4,t.collection.countDocuments(e)];case 1:return[2,(r.result=s.sent(),r)];case 2:n=s.sent();return[2,{success:!1,message:n.message}];case 3:return[2]}})})()}},{key:"updateOne",value:function e(e,t){var r=this;return a(function(){var n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);return[4,r.collection.updateOne(e,{$set:t})];case 1:n=a.sent();return[2,n.matchedCount===0?{success:!1,message:"No documents matched the filter"}:{success:!0,message:"Document updated successfully",result:n}];case 2:s=a.sent();return[2,{success:!1,message:s.message}];case 3:return[2]}})})()}},{key:"updateMany",value:function e(e,t){var r=this;return a(function(){var n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);return[4,r.collection.updateMany(e,{$set:t})];case 1:n=a.sent();return[2,n.matchedCount===0?{success:!1,message:"No documents matched the filter"}:{success:!0,message:"Documents updated successfully",result:n}];case 2:s=a.sent();return[2,{success:!1,message:s.message}];case 3:return[2]}})})()}},{key:"deleteOne",value:function e(e){var t=this;return a(function(){var r,n;return b(this,function(s){switch(s.label){case 0:s.trys.push([0,2,,3]);return[4,t.collection.deleteOne(e)];case 1:r=s.sent();return[2,r.deletedCount===0?{success:!1,message:"No documents matched the filter"}:{success:!0,message:"Document deleted successfully",result:r}];case 2:n=s.sent();return[2,{success:!1,message:n.message}];case 3:return[2]}})})()}},{key:"deleteMany",value:function e(e){var t=this;return a(function(){var r,n;return b(this,function(s){switch(s.label){case 0:s.trys.push([0,2,,3]);return[4,t.collection.deleteMany(e)];case 1:r=s.sent();return[2,r.deletedCount===0?{success:!1,message:"No documents matched the filter"}:{success:!0,message:"Documents deleted successfully",result:r}];case 2:n=s.sent();return[2,{success:!1,message:n.message}];case 3:return[2]}})})()}}]);return e}(),tR=/*#__PURE__*/function(){"use strict";function e(t){c(this,e);this.model=t}u(e,[{key:"getModelName",value:function e(){return this.model.modelName}},{key:"findOne",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3?arguments[3]:void 0;var s=this;return a(function(){var a,o,c;return b(this,function(i){switch(i.label){case 0:i.trys.push([0,2,,3]);a=s.model.findOne(e,t,r);n&&a.populate(n);return[4,a.exec()];case 1:o=i.sent();return[2,o?{success:!0,result:o}:{success:!1,message:"No ".concat(s.getModelName()," found."),code:tl.NOT_FOUND.CODE}];case 2:c=i.sent();return[2,{success:!1,message:c.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"findAll",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3?arguments[3]:void 0;var s=this;return a(function(){var a,o,c;return b(this,function(i){switch(i.label){case 0:i.trys.push([0,2,,3]);a=s.model.find(e,t,r);n&&a.populate(n);o={success:!0};return[4,a.exec()];case 1:return[2,(o.result=i.sent(),o)];case 2:c=i.sent();return[2,{success:!1,message:c.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"findPaging",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r=this;return a(function(){var n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);n={success:!0};return[4,r.model.paginate(e,t)];case 1:return[2,(n.result=a.sent(),n)];case 2:s=a.sent();return[2,{success:!1,message:s.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"findPagingAggregate",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r=this;return a(function(){var n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);n={success:!0};return[4,r.model.aggregatePaginate(r.model.aggregate(e),t)];case 1:return[2,(n.result=a.sent(),n)];case 2:s=a.sent();return[2,{success:!1,message:s.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"count",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var t=this;return a(function(){var r,n;return b(this,function(s){switch(s.label){case 0:s.trys.push([0,2,,3]);r={success:!0};return[4,t.model.countDocuments(e)];case 1:return[2,(r.result=s.sent(),r)];case 2:n=s.sent();return[2,{success:!1,message:n.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"createOne",value:function e(e){var t=this;return a(function(){var r,n;return b(this,function(s){switch(s.label){case 0:s.trys.push([0,2,,3]);r={success:!0};return[4,t.model.create(e)];case 1:return[2,(r.result=s.sent(),r)];case 2:n=s.sent();return[2,{success:!1,message:n.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"createMany",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r=this;return a(function(){var n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);n={success:!0};return[4,r.model.insertMany(e,t)];case 1:return[2,(n.result=a.sent().map(function(e){return d(e,tE)?e.toObject():null}).filter(function(e){return e!==null}),n)];case 2:s=a.sent();return[2,{success:!1,message:s.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"updateOne",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var n=this;return a(function(){var s,a;return b(this,function(o){switch(o.label){case 0:o.trys.push([0,2,,3]);return[4,n.model.findOneAndUpdate(e,t,p({new:!0},r)).exec()];case 1:s=o.sent();return[2,s?{success:!0,result:s}:{success:!1,message:"Failed to update ".concat(n.getModelName(),"."),code:tl.NOT_FOUND.CODE}];case 2:a=o.sent();return[2,{success:!1,message:a.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"updateMany",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var n=this;return a(function(){var s,a;return b(this,function(o){switch(o.label){case 0:o.trys.push([0,2,,3]);s={success:!0};return[4,n.model.updateMany(e,t,r).exec()];case 1:return[2,(s.result=o.sent(),s)];case 2:a=o.sent();return[2,{success:!1,message:a.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"deleteOne",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r=this;return a(function(){var n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);return[4,r.model.findOneAndDelete(e,t).exec()];case 1:n=a.sent();return[2,n?{success:!0,result:n}:{success:!1,message:"No ".concat(r.getModelName()," found to delete."),code:tl.NOT_FOUND.CODE}];case 2:s=a.sent();return[2,{success:!1,message:s.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"deleteMany",value:function e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r=this;return a(function(){var n,s;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,2,,3]);return[4,r.model.deleteMany(e,t).exec()];case 1:n=a.sent();return[2,n.deletedCount===0?{success:!1,message:"No documents found to delete.",code:tl.NOT_FOUND.CODE}:{success:!0,result:n}];case 2:s=a.sent();return[2,{success:!1,message:s.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}},{key:"createShortId",value:function e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4;var r=this;return a(function(){var n,s,a,o;return b(this,function(c){switch(c.label){case 0:n=new Set;s=0;c.label=1;case 1:if(!(s<10))return[3,5];a=ty(e,s+t);o=!n.has(a);if(!o)return[3,3];n.add(a);return[4,r.model.exists({shortId:a})];case 2:o=!c.sent();c.label=3;case 3:if(o)return[2,{success:!0,result:a}];c.label=4;case 4:s++;return[3,1];case 5:return[2,{success:!1,message:"Failed to create a unique shortId",code:tl.INTERNAL_SERVER_ERROR.CODE}]}})})()}},{key:"createSlug",value:function e(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var n=this;return a(function(){var s,o,c,i,u,l,f,E,d,v,m;return b(this,function(g){switch(g.label){case 0:g.trys.push([0,8,,9]);s=t[e],o=/*#__PURE__*/function(){var e=a(function(e){var s,a,o;return b(this,function(c){switch(c.label){case 0:return[4,n.model.findOne(t_.createSlugQuery(e,r,t.id))];case 1:s=c.sent();if(!s)return[2,e];a=1;c.label=2;case 2:o="".concat(e,"-").concat(a);return[4,n.model.findOne(t_.createSlugQuery(o,r,t.id))];case 3:s=c.sent(),a++;c.label=4;case 4:if(s)return[3,2];c.label=5;case 5:return[2,o]}})});return function t(t){return e.apply(this,arguments)}}();if(!((typeof s==="undefined"?"undefined":N(s))=="object"))return[3,5];c={};i=[];for(u in s)i.push(u);l=0;g.label=1;case 1:if(!(l<i.length))return[3,4];f=i[l];E=tS(s[f]);return[4,o(E)];case 2:c[f]=g.sent();g.label=3;case 3:l++;return[3,1];case 4:return[2,{success:!0,result:c}];case 5:d=tS(s);v={success:!0};return[4,o(d)];case 6:return[2,(v.result=g.sent(),v)];case 7:return[3,9];case 8:m=g.sent();return[2,{success:!1,message:"Failed to create a unique slug: ".concat(m.message),code:tl.INTERNAL_SERVER_ERROR.CODE}];case 9:return[2]}})})()}},{key:"aggregate",value:function e(e){var t=this;return a(function(){var r,n;return b(this,function(s){switch(s.label){case 0:s.trys.push([0,2,,3]);r={success:!0};return[4,t.model.aggregate(e)];case 1:return[2,(r.result=s.sent(),r)];case 2:n=s.sent();return[2,{success:!1,message:n.message,code:tl.INTERNAL_SERVER_ERROR.CODE}];case 3:return[2]}})})()}}]);return e}();import{ApolloClient as tC,ApolloLink as tI,ApolloProvider as tN,HttpLink as tT,InMemoryCache as tD,split as tb}from"@apollo/client";import{onError as tw}from"@apollo/client/link/error";import{GraphQLWsLink as tL}from"@apollo/client/link/subscriptions";import{getMainDefinition as tM}from"@apollo/client/utilities";import{createClient as tP}from"graphql-ws";import{jsx as tG}from"react/jsx-runtime";function tk(e){var t=tw(function(e){var t=e.graphQLErrors,r=e.networkError;t===null||t===void 0?void 0:t.forEach(function(e){var t=e.message,r=e.locations,n=e.path;return console.error("[GraphQL error]: Message: ".concat(t,", Location: ").concat(r,", Path: ").concat(n))}),r&&console.error("[Network error]: ".concat(r))}),r=new tT({uri:e===null||e===void 0?void 0:e.uri,credentials:"include"}),n=(e===null||e===void 0?void 0:e.wsUrl)?new tL(tP({url:e.wsUrl})):null,s=n?tb(function(e){var t=e.query;var r=tM(t);if(r.kind==="OperationDefinition"){var n=r.operation;return n==="subscription"}return!1},n,r):r,a=new tI(function(e,t){return e.variables&&(e.variables=JSON.parse(JSON.stringify(e.variables),function(e,t){return e==="__typename"?void 0:t})),t(e)});return{errorLink:t,httpLink:r,wsLink:n,splitLink:s,cleanTypeName:a}}function tU(e){var t=e.isNextJS,r=e.options,n=e.children,s=e.client,a=e.provider,o=e.cache;var c=s!==null&&s!==void 0?s:tC;if(typeof c!="function")throw new TypeError("Invalid ApolloClient provided. Ensure CustomClient is a class.");var i=a||tN,u=o||tD,l=tk(r),f=l.cleanTypeName,E=l.errorLink,v=l.splitLink,m=new c(p({cache:d(u,tD)?u:new tD,link:tI.from([f,E,v].filter(Boolean))},r));return t?tG(i,{makeClient:function(){return m},children:n}):tG(i,{client:m,children:n})}import tj from"classnames";import{createContext as tx,use as tF,useCallback as tK,useMemo as tY,useState as tH}from"react";import tB from"./react/loading.module.scss";import{jsx as tQ,jsxs as tq}from"react/jsx-runtime";var tV=tx(void 0);function tJ(){var e=tF(tV);if(!e)throw new Error("useLoading must be used within a LoadingProvider");return e}function tW(e){var t=e.full,r=t===void 0?!1:t,n=e.block,s=n===void 0?!1:n,a=e.className,o=a===void 0?"":a,c=e.message,i=c===void 0?"Loading":c,u=O(e,["full","block","className","message"]);function l(){return tq("div",y(p({className:tB.container},u),{children:[tQ("div",{className:tB.ring}),tQ("div",{className:tB.ring}),tQ("div",{className:tB.ring}),tQ("div",{className:tB.ring}),i&&tQ("div",{className:tB.message,children:i})]}))}return r?tQ("div",{className:tj(tB.fullscreen,o),children:l()}):s?tQ("div",{className:tj(tB.block,o),children:l()}):l()}function tz(e){var t=e.children;var r=C(tH(!1),2),n=r[0],s=r[1],a=C(tH(!1),2),o=a[0],c=a[1],i=tK(function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;s(!0),c(e)},[]),u=tK(function(){s(!1),c(!1)},[]),l=tY(function(){return{isLoading:n,isGlobalLoading:o,showLoading:i,hideLoading:u}},[n,o,i,u]);return tQ(tV,{value:l,children:n?tQ(tW,{full:o}):t})}import{NextIntlClientProvider as t$,useTranslations as tX}from"next-intl";import{createContext as tZ,use as t0,useMemo as t2}from"react";import{useCallback as t1,useEffect as t3,useState as t4}from"react";var t5={serialize:function(e){return JSON.stringify(e,function(e,t){return d(t,Date)?{__type:"Date",value:t.toISOString()}:t})},deserialize:function(e){return JSON.parse(e,function(e,t){return(t===null||t===void 0?void 0:t.__type)==="Date"?new Date(t.value):t})}};import t8 from"localforage";var t6={get:function e(e){return a(function(){var t;return b(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);return[4,t8.getItem(e)];case 1:return[2,r.sent()];case 2:t=r.sent();return[2,(console.error('❌ [Storage:get] Error getting key "'.concat(e,'":'),t),null)];case 3:return[2]}})})()},set:function e(e,t){return a(function(){var r;return b(this,function(n){switch(n.label){case 0:n.trys.push([0,2,,3]);return[4,t8.setItem(e,t)];case 1:n.sent();return[3,3];case 2:r=n.sent();console.error('❌ [Storage:set] Error setting key "'.concat(e,'":'),r);return[3,3];case 3:return[2]}})})()},remove:function e(e){return a(function(){var t;return b(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);return[4,t8.removeItem(e)];case 1:r.sent();return[3,3];case 2:t=r.sent();console.error('❌ [Storage:remove] Error removing key "'.concat(e,'":'),t);return[3,3];case 3:return[2]}})})()},keys:function e(){return a(function(){var e,t;return b(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);return[4,t8.keys()];case 1:return[2,(e=r.sent())!==null&&e!==void 0?e:[]];case 2:t=r.sent();return[2,(console.error("❌ [Storage:keys] Error getting keys:",t),[])];case 3:return[2]}})})()}};function t7(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t5;var n=C(t4(t),2),s=n[0],o=n[1],c=C(t4(!1),2),i=c[0],u=c[1];t3(function(){var n=!0;return a(function(){var s,a,c,i;return b(this,function(l){switch(l.label){case 0:l.trys.push([0,6,7,8]);return[4,t6.get(e)];case 1:s=l.sent();if(!n)return[3,5];if(!(s!==null))return[3,2];a=r.deserialize(s);o(a);return[3,5];case 2:if(!(t!==void 0))return[3,4];c=r.serialize(t);return[4,t6.set(e,c)];case 3:l.sent(),o(t);return[3,5];case 4:o(void 0);l.label=5;case 5:return[3,8];case 6:i=l.sent();console.error('Error loading value for key "'.concat(e,'":'),i),n&&o(t);return[3,8];case 7:n&&u(!0);return[7];case 8:return[2]}})})(),function(){n=!1,u(!1)}},[e,t,r]),t3(function(){if(!i)return;a(function(){var t,n;return b(this,function(a){switch(a.label){case 0:a.trys.push([0,3,,4]);if(!(s!==void 0))return[3,2];t=r.serialize(s);return[4,t6.set(e,t)];case 1:a.sent();a.label=2;case 2:return[3,4];case 3:n=a.sent();console.error('Error saving value for key "'.concat(e,'":'),n);return[3,4];case 4:return[2]}})})()},[s,e,r,i]);var l=t1(function(e){o(function(t){return typeof e=="function"?e(t):e})},[]),f=t1(/*#__PURE__*/a(function(){var t;return b(this,function(r){switch(r.label){case 0:r.trys.push([0,2,,3]);return[4,t6.remove(e)];case 1:r.sent(),o(void 0);return[3,3];case 2:t=r.sent();console.error('Error removing key "'.concat(e,'":'),t);return[3,3];case 3:return[2]}})}),[e]);return{value:s,set:l,remove:f}}import{Fragment as t9,jsx as re}from"react/jsx-runtime";var rt=tZ(void 0);function rr(){var e=t0(rt);if(!e)throw new Error("useNextIntl must be used within a NextIntlProvider");return e}var rn=tX;function rs(e){var t=function(t){var r;var n=rr(),s=n.currentLanguage,a=t.messages,o=t.languages,c="en",i=a[(s===null||s===void 0?void 0:s.value)||c],u=(r=o.find(function(e){return e.value===(s===null||s===void 0?void 0:s.value)}))===null||r===void 0?void 0:r.timezone;return a?re(t$,{locale:(s===null||s===void 0?void 0:s.value)||c,messages:i,timeZone:u,children:re(e,p({},t))}):(console.warn("Missing messages for language: ".concat((s===null||s===void 0?void 0:s.value)||c)),null)};return t.displayName="withNextIntl(".concat(e.displayName||e.name||"Component",")"),t}function ra(e){var t=e.children;return re(t9,{children:t})}var ro=rs(ra);function rc(e){var t=e.children,r=e.languages,n=e.messages;var s;var a=t7("lang",(s=r===null||r===void 0?void 0:r[0])!==null&&s!==void 0?s:{}),o=a.value,c=a.set,i=t2(function(){return{languages:r,currentLanguage:o,setCurrentLanguage:c}},[r,c,o]);return re(rt,{value:i,children:re(ro,{languages:r,messages:n,children:t})})}import{Collection as ri,Db as ru}from"mongodb";import{Document as rl,Model as rf}from"mongoose";var rE=/*#__PURE__*/function(e){"use strict";E(t,e);function t(){c(this,t);return o(this,t,arguments)}return t}(ru),rd=/*#__PURE__*/function(e){"use strict";E(t,e);function t(){c(this,t);return o(this,t,arguments)}return t}(rl),rv=/*#__PURE__*/function(e){"use strict";E(t,e);function t(){c(this,t);return o(this,t,arguments)}return t}(rf),rm=/*#__PURE__*/function(e){"use strict";E(t,e);function t(){c(this,t);return o(this,t,arguments)}return t}(ri);import{GraphQLError as rg}from"graphql";function rh(e){var t=e.message,r=e.status,n=r===void 0?tl.INTERNAL_SERVER_ERROR:r,s=e.type,a=s===void 0?"graphql":s;var o;var c=(o=t!==null&&t!==void 0?t:n.MESSAGE)!==null&&o!==void 0?o:"Internal server error";throw a==="graphql"?new rg(c,{extensions:{code:n.CODE}}):new Error(c)}import rp from"unorm";function rS(e){try{return JSON.parse(e),!0}catch(e){return!1}}var ry={a:["\xe0","\xe1","ạ","ả","\xe3","\xe2","ầ","ấ","ậ","ẩ","ẫ","ă","ằ","ắ","ặ","ẳ","ẵ"],e:["\xe8","\xe9","ẹ","ẻ","ẽ","\xea","ề","ế","ệ","ể","ễ"],i:["\xec","\xed","ị","ỉ","ĩ"],o:["\xf2","\xf3","ọ","ỏ","\xf5","\xf4","ồ","ố","ộ","ổ","ỗ","ơ","ờ","ớ","ợ","ở","ỡ"],u:["\xf9","\xfa","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ"],y:["ỳ","\xfd","ỵ","ỷ","ỹ"],d:["đ"]},rO=Object.entries(ry).reduce(function(e,t){var r=C(t,2),n=r[0],s=r[1];return e[n.toUpperCase()]=s.map(function(e){return e.toUpperCase()}),e},{});function r_(e){e=rp.nfkc(e);var t=p({},ry,rO);var r=true,n=false,s=undefined;try{for(var a=Object.entries(t)[Symbol.iterator](),o;!(r=(o=a.next()).done);r=true){var c=C(o.value,2),i=c[0],u=c[1];var l="[".concat(i).concat(u.join(""),"]"),f="(".concat([i].concat(I(u)).join("|"),")");e=e.replace(new RegExp(l,"g"),f)}}catch(e){n=true;s=e}finally{try{if(!r&&a.return!=null){a.return()}}finally{if(n){throw s}}}return e}function rA(e){return e.normalize("NFD").replace(RegExp("\\p{Diacritic}","gu"),"")}export{tU as ApolloProvider,eF as BUILD_DIRECTORY,tu as COMMAND,e2 as COMMIT_LINT_CLI,e0 as COMMIT_LINT_PACKAGE_NAME,ez as CYBERSKILL_CLI,eW as CYBERSKILL_DIRECTORY,eU as CYBERSKILL_PACKAGE_NAME,ej as CYBERSKILL_STORAGE,rm as C_Collection,rE as C_Db,rd as C_Document,rv as C_Model,e$ as ESLINT_CLI,tn as ESLINT_INSPECT_CLI,tr as ESLINT_INSPECT_PACKAGE_NAME,G as E_CommandType,P as E_ErrorType,e6 as GIT_CLI,eJ as GIT_COMMIT_EDITMSG,eV as GIT_HOOK,eB as GIT_IGNORE,tc as HOOK,e3 as LINT_STAGED_CLI,e1 as LINT_STAGED_PACKAGE_NAME,tW as Loading,tV as LoadingContext,tz as LoadingProvider,tA as MongoController,tR as MongooseController,ex as NODE_MODULES,ta as NODE_MODULES_INSPECT_CLI,ts as NODE_MODULES_INSPECT_PACKAGE_NAME,rt as NextIntlContext,rc as NextIntlProvider,eK as PACKAGE_JSON,eY as PACKAGE_LOCK_JSON,to as PATH,e7 as PNPM_CLI,e9 as PNPM_EXEC_CLI,eq as PNPM_LOCK_YAML,tl as RESPONSE_STATUS,te as SIMPLE_GIT_HOOKS_PACKAGE_NAME,tt as SIMPLE_GIT_HOOK_CLI,eQ as SIMPLE_GIT_HOOK_JSON,eH as TSCONFIG_JSON,e5 as TSC_CLI,e4 as TSC_PACKAGE_NAME,e8 as TSX_CLI,eZ as VITEST_CLI,eX as VITEST_PACKAGE_NAME,ek as WORKING_DIRECTORY,td as aggregatePaginate,q as appendFileSync,eu as checkPackage,eC as clearAllErrorLists,eS as commandLog,L as deepMerge,eD as executeCommand,H as existsSync,eM as formatCommand,ty as generateShortId,tS as generateSlug,ec as getLatestPackageVersion,eo as getPackageJson,et as getStorageDir,eA as getStoredErrorLists,er as initNodePersist,rS as isJson,$ as join,t_ as mongo,tv as mongoosePaginate,ew as rawCommand,B as readFileSync,r_ as regexSearchMapper,rA as removeAccent,z as resolve,eP as resolveCommands,W as resolveWorkingPath,V as rmSync,t5 as serializer,t6 as storageClient,es as storageServer,rh as throwResponse,tJ as useLoading,rr as useNextIntl,t7 as useStorage,rn as useTranslateNextIntl,tO as validate,rs as withNextIntl,Q as writeFileSync};