paymongo-cli 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +141 -0
  2. package/bin/paymongo.js +1 -1
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/commands/config.d.ts.map +1 -1
  5. package/dist/commands/config.js +99 -127
  6. package/dist/commands/config.js.map +1 -1
  7. package/dist/commands/dev.d.ts.map +1 -1
  8. package/dist/commands/dev.js +68 -102
  9. package/dist/commands/dev.js.map +1 -1
  10. package/dist/commands/gui.js +26 -31
  11. package/dist/commands/gui.js.map +1 -1
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +109 -159
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/login.d.ts.map +1 -1
  16. package/dist/commands/login.js +78 -118
  17. package/dist/commands/login.js.map +1 -1
  18. package/dist/commands/payments.d.ts.map +1 -1
  19. package/dist/commands/payments.js +63 -65
  20. package/dist/commands/payments.js.map +1 -1
  21. package/dist/commands/team/index.js +31 -36
  22. package/dist/commands/team/index.js.map +1 -1
  23. package/dist/commands/trigger.d.ts.map +1 -1
  24. package/dist/commands/trigger.js +46 -88
  25. package/dist/commands/trigger.js.map +1 -1
  26. package/dist/commands/webhooks.d.ts.map +1 -1
  27. package/dist/commands/webhooks.js +138 -150
  28. package/dist/commands/webhooks.js.map +1 -1
  29. package/dist/index.js +37 -44
  30. package/dist/index.js.map +1 -1
  31. package/dist/services/analytics/service.d.ts +7 -1
  32. package/dist/services/analytics/service.d.ts.map +1 -1
  33. package/dist/services/analytics/service.js +15 -20
  34. package/dist/services/analytics/service.js.map +1 -1
  35. package/dist/services/api/client.d.ts +9 -8
  36. package/dist/services/api/client.d.ts.map +1 -1
  37. package/dist/services/api/client.js +33 -29
  38. package/dist/services/api/client.js.map +1 -1
  39. package/dist/services/config/manager.d.ts +1 -1
  40. package/dist/services/config/manager.d.ts.map +1 -1
  41. package/dist/services/config/manager.js +30 -72
  42. package/dist/services/config/manager.js.map +1 -1
  43. package/dist/services/github/auth.d.ts +2 -2
  44. package/dist/services/github/auth.d.ts.map +1 -1
  45. package/dist/services/github/auth.js +15 -55
  46. package/dist/services/github/auth.js.map +1 -1
  47. package/dist/services/github/client.d.ts +1 -1
  48. package/dist/services/github/client.d.ts.map +1 -1
  49. package/dist/services/github/client.js +12 -17
  50. package/dist/services/github/client.js.map +1 -1
  51. package/dist/services/github/sync.d.ts +2 -2
  52. package/dist/services/github/sync.d.ts.map +1 -1
  53. package/dist/services/github/sync.js +13 -10
  54. package/dist/services/github/sync.js.map +1 -1
  55. package/dist/services/web/server.d.ts +5 -4
  56. package/dist/services/web/server.d.ts.map +1 -1
  57. package/dist/services/web/server.js +70 -27
  58. package/dist/services/web/server.js.map +1 -1
  59. package/dist/types/paymongo.d.ts +48 -0
  60. package/dist/types/paymongo.d.ts.map +1 -1
  61. package/dist/types/paymongo.js +1 -2
  62. package/dist/types/schemas.d.ts +80 -0
  63. package/dist/types/schemas.d.ts.map +1 -0
  64. package/dist/types/schemas.js +63 -0
  65. package/dist/types/schemas.js.map +1 -0
  66. package/dist/utils/cache.d.ts +2 -0
  67. package/dist/utils/cache.d.ts.map +1 -1
  68. package/dist/utils/cache.js +65 -77
  69. package/dist/utils/cache.js.map +1 -1
  70. package/dist/utils/constants.js +16 -19
  71. package/dist/utils/constants.js.map +1 -1
  72. package/dist/utils/errors.d.ts +1 -0
  73. package/dist/utils/errors.d.ts.map +1 -1
  74. package/dist/utils/errors.js +18 -19
  75. package/dist/utils/errors.js.map +1 -1
  76. package/dist/utils/logger.d.ts +5 -4
  77. package/dist/utils/logger.d.ts.map +1 -1
  78. package/dist/utils/logger.js +12 -16
  79. package/dist/utils/logger.js.map +1 -1
  80. package/dist/utils/spinner.js +4 -8
  81. package/dist/utils/spinner.js.map +1 -1
  82. package/dist/utils/validator.d.ts +1 -1
  83. package/dist/utils/validator.d.ts.map +1 -1
  84. package/dist/utils/validator.js +6 -13
  85. package/dist/utils/validator.js.map +1 -1
  86. package/eslint.config.ts +43 -0
  87. package/jest.config.ts +30 -0
  88. package/package.json +76 -70
@@ -2,13 +2,14 @@ export interface LoggerOptions {
2
2
  level?: 'error' | 'warn' | 'info' | 'debug';
3
3
  file?: string;
4
4
  }
5
+ type LogMeta = Error | Record<string, unknown> | string | number | boolean | undefined;
5
6
  declare class Logger {
6
7
  private logger;
7
8
  constructor(options?: LoggerOptions);
8
- error(message: string, ...meta: any[]): void;
9
- warn(message: string, ...meta: any[]): void;
10
- info(message: string, ...meta: any[]): void;
11
- debug(message: string, ...meta: any[]): void;
9
+ error(message: string, ...meta: LogMeta[]): void;
10
+ warn(message: string, ...meta: LogMeta[]): void;
11
+ info(message: string, ...meta: LogMeta[]): void;
12
+ debug(message: string, ...meta: LogMeta[]): void;
12
13
  success(message: string): void;
13
14
  failure(message: string): void;
14
15
  warning(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,cAAM,MAAM;IACV,OAAO,CAAC,MAAM,CAAiB;gBAEnB,OAAO,GAAE,aAAkB;IAgCvC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAK5C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG/B;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,KAAK,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvF,cAAM,MAAM;IACV,OAAO,CAAC,MAAM,CAAiB;gBAEnB,OAAO,GAAE,aAAkB;IAgCvC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIhD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAKhD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG/B;AAED,eAAe,MAAM,CAAC"}
@@ -1,27 +1,23 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const winston_1 = __importDefault(require("winston"));
7
- const chalk_1 = __importDefault(require("chalk"));
1
+ import winston from 'winston';
2
+ import chalk from 'chalk';
8
3
  class Logger {
4
+ logger;
9
5
  constructor(options = {}) {
10
6
  const { level = 'info', file } = options;
11
7
  const transports = [
12
- new winston_1.default.transports.Console({
8
+ new winston.transports.Console({
13
9
  level,
14
- format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple()),
10
+ format: winston.format.combine(winston.format.colorize(), winston.format.simple()),
15
11
  }),
16
12
  ];
17
13
  if (file) {
18
- transports.push(new winston_1.default.transports.File({
14
+ transports.push(new winston.transports.File({
19
15
  filename: file,
20
16
  level,
21
- format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.json()),
17
+ format: winston.format.combine(winston.format.timestamp(), winston.format.json()),
22
18
  }));
23
19
  }
24
- this.logger = winston_1.default.createLogger({
20
+ this.logger = winston.createLogger({
25
21
  level,
26
22
  transports,
27
23
  });
@@ -40,14 +36,14 @@ class Logger {
40
36
  }
41
37
  // Convenience methods with chalk colors
42
38
  success(message) {
43
- console.log(chalk_1.default.green('✓'), message);
39
+ console.log(chalk.green('✓'), message);
44
40
  }
45
41
  failure(message) {
46
- console.log(chalk_1.default.red('✗'), message);
42
+ console.log(chalk.red('✗'), message);
47
43
  }
48
44
  warning(message) {
49
- console.log(chalk_1.default.yellow('⚠'), message);
45
+ console.log(chalk.yellow('⚠'), message);
50
46
  }
51
47
  }
52
- exports.default = Logger;
48
+ export default Logger;
53
49
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,kDAA0B;AAO1B,MAAM,MAAM;IAGV,YAAY,UAAyB,EAAE;QACrC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAEzC,MAAM,UAAU,GAAwB;YACtC,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,KAAK;gBACL,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,iBAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB;aACF,CAAC;SACH,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,IAAI,CACb,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,IAAI;gBACd,KAAK;gBACL,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;YACjC,KAAK;YACL,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,wCAAwC;IACxC,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,MAAM;IACF,MAAM,CAAiB;IAE/B,YAAY,UAAyB,EAAE;QACrC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAEzC,MAAM,UAAU,GAAwB;YACtC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,KAAK;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB;aACF,CAAC;SACH,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,UAAU,CAAC,IAAI,CACb,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,IAAI;gBACd,KAAK;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YACjC,KAAK;YACL,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,wCAAwC;IACxC,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,eAAe,MAAM,CAAC"}
@@ -1,13 +1,9 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const ora_1 = __importDefault(require("ora"));
1
+ import ora from 'ora';
7
2
  class Spinner {
3
+ spinner;
8
4
  constructor(options = {}) {
9
5
  const { text = 'Loading...', color = 'cyan' } = options;
10
- this.spinner = (0, ora_1.default)({
6
+ this.spinner = ora({
11
7
  text,
12
8
  color,
13
9
  spinner: 'dots',
@@ -50,5 +46,5 @@ class Spinner {
50
46
  this.spinner.text = text;
51
47
  }
52
48
  }
53
- exports.default = Spinner;
49
+ export default Spinner;
54
50
  //# sourceMappingURL=spinner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":";;;;;AAAA,8CAA+B;AAO/B,MAAM,OAAO;IAGX,YAAY,UAA0B,EAAE;QACtC,MAAM,EAAE,IAAI,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,IAAA,aAAG,EAAC;YACjB,IAAI;YACJ,KAAK;YACL,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAa;QACjB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,IAAa;QACnB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,IAAa;QAChB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,IAAa;QAChB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,IAAa;QAChB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;CACF;AAED,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,GAAY,MAAM,KAAK,CAAC;AAO/B,MAAM,OAAO;IACH,OAAO,CAAM;IAErB,YAAY,UAA0B,EAAE;QACtC,MAAM,EAAE,IAAI,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACjB,IAAI;YACJ,KAAK;YACL,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAa;QACjB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,IAAa;QACnB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,IAAa;QAChB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,IAAa;QAChB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,IAAa;QAChB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC3B,CAAC;CACF;AAED,eAAe,OAAO,CAAC"}
@@ -1,4 +1,4 @@
1
- import { PayMongoConfig } from '../types/paymongo';
1
+ import { PayMongoConfig } from '../types/paymongo.js';
2
2
  export declare class ValidationError extends Error {
3
3
  field?: string | undefined;
4
4
  constructor(message: string, field?: string | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,KAAK,CAAC,EAAE,MAAM;gBADrB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,MAAM,YAAA;CAKxB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAW9E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAsCpE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAczD"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,KAAK,CAAC,EAAE,MAAM;gBADrB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,MAAM,YAAA;CAKxB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAW9E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAsCpE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAczD"}
@@ -1,19 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ValidationError = void 0;
4
- exports.validateApiKey = validateApiKey;
5
- exports.validateWebhookUrl = validateWebhookUrl;
6
- exports.validateConfig = validateConfig;
7
- exports.validateEventTypes = validateEventTypes;
8
- class ValidationError extends Error {
1
+ export class ValidationError extends Error {
2
+ field;
9
3
  constructor(message, field) {
10
4
  super(message);
11
5
  this.field = field;
12
6
  this.name = 'ValidationError';
13
7
  }
14
8
  }
15
- exports.ValidationError = ValidationError;
16
- function validateApiKey(key, type) {
9
+ export function validateApiKey(key, type) {
17
10
  if (!key || typeof key !== 'string') {
18
11
  return false;
19
12
  }
@@ -23,7 +16,7 @@ function validateApiKey(key, type) {
23
16
  const pattern = new RegExp(`^${prefix}(test|live)_[a-zA-Z0-9]{20,}$`);
24
17
  return pattern.test(key);
25
18
  }
26
- function validateWebhookUrl(url) {
19
+ export function validateWebhookUrl(url) {
27
20
  try {
28
21
  const parsedUrl = new URL(url);
29
22
  return (parsedUrl.protocol === 'https:' ||
@@ -34,7 +27,7 @@ function validateWebhookUrl(url) {
34
27
  return false;
35
28
  }
36
29
  }
37
- function validateConfig(config) {
30
+ export function validateConfig(config) {
38
31
  if (!config.projectName?.trim()) {
39
32
  throw new ValidationError('Project name is required', 'projectName');
40
33
  }
@@ -62,7 +55,7 @@ function validateConfig(config) {
62
55
  throw new ValidationError('Port must be between 1 and 65535', 'dev.port');
63
56
  }
64
57
  }
65
- function validateEventTypes(events) {
58
+ export function validateEventTypes(events) {
66
59
  const validEvents = [
67
60
  'payment.paid',
68
61
  'payment.failed',
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import eslint from '@eslint/js';
2
+ import tseslint from 'typescript-eslint';
3
+ import globals from 'globals';
4
+
5
+ export default tseslint.config(
6
+ eslint.configs.recommended,
7
+ ...tseslint.configs.recommended,
8
+ {
9
+ languageOptions: {
10
+ ecmaVersion: 2022,
11
+ sourceType: 'module',
12
+ globals: {
13
+ ...globals.node,
14
+ ...globals.es2022,
15
+ ...globals.jest,
16
+ },
17
+ parserOptions: {
18
+ project: './tsconfig.json',
19
+ },
20
+ },
21
+ rules: {
22
+ 'no-unused-vars': 'off',
23
+ '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
24
+ 'no-console': 'off',
25
+ 'no-redeclare': 'off',
26
+ '@typescript-eslint/no-redeclare': 'error',
27
+ 'no-shadow': 'off',
28
+ '@typescript-eslint/no-shadow': 'error',
29
+ 'no-undef': 'off',
30
+ 'no-empty': 'error',
31
+ '@typescript-eslint/explicit-function-return-type': 'off',
32
+ '@typescript-eslint/no-explicit-any': 'warn',
33
+ '@typescript-eslint/no-non-null-assertion': 'warn',
34
+ eqeqeq: ['error', 'always'],
35
+ curly: ['error', 'all'],
36
+ 'no-var': 'error',
37
+ 'prefer-const': 'error',
38
+ },
39
+ },
40
+ {
41
+ ignores: ['dist/', 'node_modules/', '*.js', '*.cjs', 'coverage/'],
42
+ }
43
+ );
package/jest.config.ts ADDED
@@ -0,0 +1,30 @@
1
+ import type { Config } from 'jest';
2
+
3
+ const config: Config = {
4
+ preset: 'ts-jest/presets/default-esm',
5
+ testEnvironment: 'node',
6
+ roots: ['<rootDir>/src', '<rootDir>/tests'],
7
+ testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
8
+ transform: {
9
+ '^.+\\.ts$': [
10
+ 'ts-jest',
11
+ {
12
+ useESM: true,
13
+ tsconfig: {
14
+ module: 'NodeNext',
15
+ moduleResolution: 'NodeNext',
16
+ },
17
+ },
18
+ ],
19
+ },
20
+ extensionsToTreatAsEsm: ['.ts'],
21
+ moduleNameMapper: {
22
+ '^(\\.{1,2}/.*)\\.js$': '$1',
23
+ },
24
+ collectCoverageFrom: ['src/**/*.ts', '!src/**/*.d.ts'],
25
+ coverageDirectory: 'coverage',
26
+ coverageReporters: ['text', 'lcov', 'html'],
27
+ injectGlobals: true,
28
+ };
29
+
30
+ export default config;
package/package.json CHANGED
@@ -1,70 +1,76 @@
1
- {
2
- "name": "paymongo-cli",
3
- "version": "1.0.0",
4
- "description": "Developer-first CLI tool for PayMongo integration development with local webhook forwarding, payment testing, and team collaboration features. See USER_GUIDE.md for comprehensive documentation.",
5
- "main": "dist/index.js",
6
- "bin": {
7
- "paymongo": "bin/paymongo.js"
8
- },
9
- "scripts": {
10
- "build": "tsc",
11
- "build:incremental": "tsc --incremental",
12
- "dev": "tsc --watch",
13
- "start": "node dist/index.js",
14
- "test": "jest",
15
- "test:watch": "jest --watch",
16
- "lint": "eslint src/**/*.ts tests/**/*.ts",
17
- "lint:fix": "eslint src/**/*.ts --fix",
18
- "format": "prettier --write src/**/*.ts",
19
- "benchmark": "npx ts-node scripts/benchmark.ts",
20
- "prepare": "npm run build"
21
- },
22
- "keywords": [
23
- "paymongo",
24
- "cli",
25
- "payments",
26
- "webhooks",
27
- "development"
28
- ],
29
- "author": "Leodyver Semilla",
30
- "license": "MIT",
31
- "repository": {
32
- "type": "git",
33
- "url": "git+https://github.com/leodyversemilla07/paymongo-cli.git"
34
- },
35
- "bugs": {
36
- "url": "https://github.com/leodyversemilla07/paymongo-cli/issues"
37
- },
38
- "homepage": "https://github.com/leodyversemilla07/paymongo-cli#readme",
39
- "engines": {
40
- "node": ">=18.0.0"
41
- },
42
- "dependencies": {
43
- "@ngrok/ngrok": "^1.7.0",
44
- "@types/express": "^5.0.6",
45
- "axios": "^1.6.0",
46
- "chalk": "^5.3.0",
47
- "commander": "^11.1.0",
48
- "cosmiconfig": "^8.3.6",
49
- "express": "^5.2.1",
50
- "inquirer": "^9.2.12",
51
- "ora": "^7.0.1",
52
- "socket.io": "^4.8.3",
53
- "winston": "^3.11.0"
54
- },
55
- "devDependencies": {
56
- "@types/inquirer": "^9.0.7",
57
- "@types/jest": "^29.5.8",
58
- "@types/node": "^20.10.0",
59
- "@typescript-eslint/eslint-plugin": "^6.14.0",
60
- "@typescript-eslint/parser": "^6.14.0",
61
- "eslint": "^8.55.0",
62
- "jest": "^29.7.0",
63
- "prettier": "^3.1.1",
64
- "ts-jest": "^29.1.1",
65
- "typescript": "^5.3.3"
66
- },
67
- "publishConfig": {
68
- "access": "public"
69
- }
70
- }
1
+ {
2
+ "name": "paymongo-cli",
3
+ "version": "1.1.0",
4
+ "description": "Developer-first CLI tool for PayMongo integration development with local webhook forwarding, payment testing, and team collaboration features. See USER_GUIDE.md for comprehensive documentation.",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "paymongo": "bin/paymongo.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "build:incremental": "tsc --incremental",
13
+ "dev": "tsc --watch",
14
+ "start": "node dist/index.js",
15
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
16
+ "test:watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch",
17
+ "lint": "eslint src/**/*.ts tests/**/*.ts",
18
+ "lint:fix": "eslint src/**/*.ts --fix",
19
+ "format": "prettier --write src/**/*.ts",
20
+ "benchmark": "npx tsx scripts/benchmark.ts",
21
+ "prepare": "npm run build"
22
+ },
23
+ "keywords": [
24
+ "paymongo",
25
+ "cli",
26
+ "payments",
27
+ "webhooks",
28
+ "development"
29
+ ],
30
+ "author": "Leodyver Semilla",
31
+ "license": "MIT",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "git+https://github.com/leodyversemilla07/paymongo-cli.git"
35
+ },
36
+ "bugs": {
37
+ "url": "https://github.com/leodyversemilla07/paymongo-cli/issues"
38
+ },
39
+ "homepage": "https://github.com/leodyversemilla07/paymongo-cli#readme",
40
+ "engines": {
41
+ "node": ">=18.0.0"
42
+ },
43
+ "dependencies": {
44
+ "@inquirer/prompts": "^8.2.0",
45
+ "@ngrok/ngrok": "^1.7.0",
46
+ "@types/express": "^5.0.6",
47
+ "axios": "^1.6.0",
48
+ "chalk": "^5.3.0",
49
+ "commander": "^14.0.2",
50
+ "cosmiconfig": "^9.0.0",
51
+ "express": "^5.2.1",
52
+ "express-rate-limit": "^8.2.1",
53
+ "jiti": "^2.6.1",
54
+ "ora": "^9.1.0",
55
+ "socket.io": "^4.8.3",
56
+ "winston": "^3.11.0",
57
+ "zod": "^4.3.6"
58
+ },
59
+ "devDependencies": {
60
+ "@eslint/js": "^9.0.0",
61
+ "@types/jest": "^30.0.0",
62
+ "@types/node": "^25.0.10",
63
+ "eslint": "^9.0.0",
64
+ "globals": "^17.1.0",
65
+ "jest": "^30.2.0",
66
+ "prettier": "^3.1.1",
67
+ "ts-jest": "^29.4.6",
68
+ "ts-node": "^10.9.2",
69
+ "tsx": "^4.7.0",
70
+ "typescript": "^5.3.3",
71
+ "typescript-eslint": "^8.0.0"
72
+ },
73
+ "publishConfig": {
74
+ "access": "public"
75
+ }
76
+ }