@geekmidas/cli 0.1.0 → 0.2.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 (146) hide show
  1. package/README.md +63 -13
  2. package/dist/{CronGenerator-Ctl4USy4.cjs → CronGenerator-1PflEYe2.cjs} +8 -7
  3. package/dist/CronGenerator-1PflEYe2.cjs.map +1 -0
  4. package/dist/{CronGenerator-ClbRcmz_.mjs → CronGenerator-DXRfHQcV.mjs} +6 -5
  5. package/dist/CronGenerator-DXRfHQcV.mjs.map +1 -0
  6. package/dist/{EndpointGenerator-Dj7AumHi.cjs → EndpointGenerator-BbGrDiCP.cjs} +134 -34
  7. package/dist/EndpointGenerator-BbGrDiCP.cjs.map +1 -0
  8. package/dist/{EndpointGenerator-uBA1ixUw.mjs → EndpointGenerator-BmZ9BxbO.mjs} +132 -32
  9. package/dist/EndpointGenerator-BmZ9BxbO.mjs.map +1 -0
  10. package/dist/{FunctionGenerator-DN681IUn.cjs → FunctionGenerator-Clw64SwQ.cjs} +8 -7
  11. package/dist/FunctionGenerator-Clw64SwQ.cjs.map +1 -0
  12. package/dist/{FunctionGenerator-crAa-JC7.mjs → FunctionGenerator-DOEB_yPh.mjs} +6 -5
  13. package/dist/FunctionGenerator-DOEB_yPh.mjs.map +1 -0
  14. package/dist/{Generator-C3tYSTQY.cjs → Generator-CDoEXCDg.cjs} +2 -2
  15. package/dist/Generator-CDoEXCDg.cjs.map +1 -0
  16. package/dist/{Generator-CDt4pB3W.mjs → Generator-UanJW0_V.mjs} +1 -1
  17. package/dist/Generator-UanJW0_V.mjs.map +1 -0
  18. package/dist/SubscriberGenerator-BfMZCVNy.cjs +204 -0
  19. package/dist/SubscriberGenerator-BfMZCVNy.cjs.map +1 -0
  20. package/dist/SubscriberGenerator-D2u00NI3.mjs +198 -0
  21. package/dist/SubscriberGenerator-D2u00NI3.mjs.map +1 -0
  22. package/dist/build/index.cjs +10 -9
  23. package/dist/build/index.mjs +8 -7
  24. package/dist/build/manifests.cjs +1 -1
  25. package/dist/build/manifests.mjs +1 -1
  26. package/dist/build/providerResolver.cjs +1 -1
  27. package/dist/build-BBhlEjf5.cjs +89 -0
  28. package/dist/build-BBhlEjf5.cjs.map +1 -0
  29. package/dist/build-kY-lG30Q.mjs +83 -0
  30. package/dist/build-kY-lG30Q.mjs.map +1 -0
  31. package/dist/{chunk-CsX-DzYB.cjs → chunk-CUT6urMc.cjs} +0 -12
  32. package/dist/{config-RcNESK0T.cjs → config-D1EpSGk6.cjs} +2 -2
  33. package/dist/{config-RcNESK0T.cjs.map → config-D1EpSGk6.cjs.map} +1 -1
  34. package/dist/{config-CXxYmz_o.mjs → config-U-mdW-7Y.mjs} +1 -1
  35. package/dist/{config-CXxYmz_o.mjs.map → config-U-mdW-7Y.mjs.map} +1 -1
  36. package/dist/config.cjs +1 -1
  37. package/dist/config.mjs +1 -1
  38. package/dist/generators/CronGenerator.cjs +2 -2
  39. package/dist/generators/CronGenerator.mjs +2 -2
  40. package/dist/generators/EndpointGenerator.cjs +2 -2
  41. package/dist/generators/EndpointGenerator.mjs +2 -2
  42. package/dist/generators/FunctionGenerator.cjs +2 -2
  43. package/dist/generators/FunctionGenerator.mjs +2 -2
  44. package/dist/generators/Generator.cjs +1 -1
  45. package/dist/generators/Generator.mjs +1 -1
  46. package/dist/generators/SubscriberGenerator.cjs +4 -0
  47. package/dist/generators/SubscriberGenerator.mjs +4 -0
  48. package/dist/generators/index.cjs +8 -6
  49. package/dist/generators/index.mjs +6 -5
  50. package/dist/index.cjs +18 -14
  51. package/dist/index.cjs.map +1 -1
  52. package/dist/index.mjs +15 -11
  53. package/dist/index.mjs.map +1 -1
  54. package/dist/{manifests-HX4z4kkz.mjs → manifests-BrJXpHrf.mjs} +5 -4
  55. package/dist/manifests-BrJXpHrf.mjs.map +1 -0
  56. package/dist/{manifests-BTtfDMX8.cjs → manifests-D0saShvH.cjs} +6 -5
  57. package/dist/manifests-D0saShvH.cjs.map +1 -0
  58. package/dist/{openapi-BivnatiC.mjs → openapi-BQx3_JbM.mjs} +4 -4
  59. package/dist/openapi-BQx3_JbM.mjs.map +1 -0
  60. package/dist/{openapi-DW-qF3oW.cjs → openapi-CMLr04cz.cjs} +6 -6
  61. package/dist/openapi-CMLr04cz.cjs.map +1 -0
  62. package/dist/{openapi-react-query-lgS7AVEz.mjs → openapi-react-query-DbrWwQzb.mjs} +3 -2
  63. package/dist/openapi-react-query-DbrWwQzb.mjs.map +1 -0
  64. package/dist/{openapi-react-query-J0BzBHhN.cjs → openapi-react-query-Dvjqx_Eo.cjs} +4 -3
  65. package/dist/openapi-react-query-Dvjqx_Eo.cjs.map +1 -0
  66. package/dist/openapi-react-query.cjs +1 -1
  67. package/dist/openapi-react-query.mjs +1 -1
  68. package/dist/openapi.cjs +4 -4
  69. package/dist/openapi.mjs +4 -4
  70. package/dist/{providerResolver-Cs-0YCaP.cjs → providerResolver-DgvzNfP4.cjs} +1 -1
  71. package/dist/{providerResolver-Cs-0YCaP.cjs.map → providerResolver-DgvzNfP4.cjs.map} +1 -1
  72. package/examples/cron-example.ts +1 -1
  73. package/examples/function-example.ts +1 -1
  74. package/examples/logger.ts +1 -1
  75. package/package.json +6 -3
  76. package/src/__tests__/openapi-react-query.spec.ts +506 -0
  77. package/src/__tests__/openapi.spec.ts +362 -0
  78. package/src/__tests__/test-helpers.ts +10 -8
  79. package/src/build/__tests__/index-new.spec.ts +41 -42
  80. package/src/build/index.ts +89 -28
  81. package/src/build/manifests.ts +4 -1
  82. package/src/build/types.ts +2 -2
  83. package/src/generators/CronGenerator.ts +3 -2
  84. package/src/generators/EndpointGenerator.ts +141 -42
  85. package/src/generators/FunctionGenerator.ts +3 -2
  86. package/src/generators/Generator.ts +1 -1
  87. package/src/generators/SubscriberGenerator.ts +271 -0
  88. package/src/generators/__tests__/CronGenerator.spec.ts +1 -1
  89. package/src/generators/__tests__/EndpointGenerator.spec.ts +33 -11
  90. package/src/generators/__tests__/FunctionGenerator.spec.ts +21 -22
  91. package/src/generators/__tests__/SubscriberGenerator.spec.ts +341 -0
  92. package/src/generators/index.ts +1 -0
  93. package/src/openapi-react-query.ts +2 -1
  94. package/src/openapi.ts +1 -1
  95. package/src/types.ts +18 -0
  96. package/dist/CronGenerator-ClbRcmz_.mjs.map +0 -1
  97. package/dist/CronGenerator-Ctl4USy4.cjs.map +0 -1
  98. package/dist/EndpointGenerator-Dj7AumHi.cjs.map +0 -1
  99. package/dist/EndpointGenerator-uBA1ixUw.mjs.map +0 -1
  100. package/dist/FunctionGenerator-DN681IUn.cjs.map +0 -1
  101. package/dist/FunctionGenerator-crAa-JC7.mjs.map +0 -1
  102. package/dist/Generator-C3tYSTQY.cjs.map +0 -1
  103. package/dist/Generator-CDt4pB3W.mjs.map +0 -1
  104. package/dist/__tests__/config.spec.cjs +0 -98
  105. package/dist/__tests__/config.spec.cjs.map +0 -1
  106. package/dist/__tests__/config.spec.mjs +0 -97
  107. package/dist/__tests__/config.spec.mjs.map +0 -1
  108. package/dist/__tests__/test-helpers.cjs +0 -14
  109. package/dist/__tests__/test-helpers.mjs +0 -4
  110. package/dist/build/__tests__/index-new.spec.cjs +0 -286
  111. package/dist/build/__tests__/index-new.spec.cjs.map +0 -1
  112. package/dist/build/__tests__/index-new.spec.mjs +0 -285
  113. package/dist/build/__tests__/index-new.spec.mjs.map +0 -1
  114. package/dist/build-BZdwxCLW.mjs +0 -64
  115. package/dist/build-BZdwxCLW.mjs.map +0 -1
  116. package/dist/build-BfQFnU5-.cjs +0 -70
  117. package/dist/build-BfQFnU5-.cjs.map +0 -1
  118. package/dist/esm-9eeZntth.mjs +0 -3777
  119. package/dist/esm-9eeZntth.mjs.map +0 -1
  120. package/dist/esm-Crmo4h9t.cjs +0 -4392
  121. package/dist/esm-Crmo4h9t.cjs.map +0 -1
  122. package/dist/esm-CsJbr7gi.mjs +0 -3
  123. package/dist/esm-w09tAC4l.cjs +0 -8
  124. package/dist/generators/__tests__/CronGenerator.spec.cjs +0 -216
  125. package/dist/generators/__tests__/CronGenerator.spec.cjs.map +0 -1
  126. package/dist/generators/__tests__/CronGenerator.spec.mjs +0 -215
  127. package/dist/generators/__tests__/CronGenerator.spec.mjs.map +0 -1
  128. package/dist/generators/__tests__/EndpointGenerator.spec.cjs +0 -182
  129. package/dist/generators/__tests__/EndpointGenerator.spec.cjs.map +0 -1
  130. package/dist/generators/__tests__/EndpointGenerator.spec.mjs +0 -181
  131. package/dist/generators/__tests__/EndpointGenerator.spec.mjs.map +0 -1
  132. package/dist/generators/__tests__/FunctionGenerator.spec.cjs +0 -152
  133. package/dist/generators/__tests__/FunctionGenerator.spec.cjs.map +0 -1
  134. package/dist/generators/__tests__/FunctionGenerator.spec.mjs +0 -151
  135. package/dist/generators/__tests__/FunctionGenerator.spec.mjs.map +0 -1
  136. package/dist/manifests-BTtfDMX8.cjs.map +0 -1
  137. package/dist/manifests-HX4z4kkz.mjs.map +0 -1
  138. package/dist/openapi-BivnatiC.mjs.map +0 -1
  139. package/dist/openapi-DW-qF3oW.cjs.map +0 -1
  140. package/dist/openapi-react-query-J0BzBHhN.cjs.map +0 -1
  141. package/dist/openapi-react-query-lgS7AVEz.mjs.map +0 -1
  142. package/dist/test-helpers-ARd8GDgx.cjs +0 -199
  143. package/dist/test-helpers-ARd8GDgx.cjs.map +0 -1
  144. package/dist/test-helpers-DdVBk23F.mjs +0 -133
  145. package/dist/test-helpers-DdVBk23F.mjs.map +0 -1
  146. /package/dist/{generators-_pY7sHy1.cjs → generators-CEKtVh81.cjs} +0 -0
@@ -1,4 +1,4 @@
1
- require('../Generator-C3tYSTQY.cjs');
2
- const require_EndpointGenerator = require('../EndpointGenerator-Dj7AumHi.cjs');
1
+ require('../Generator-CDoEXCDg.cjs');
2
+ const require_EndpointGenerator = require('../EndpointGenerator-BbGrDiCP.cjs');
3
3
 
4
4
  exports.EndpointGenerator = require_EndpointGenerator.EndpointGenerator;
@@ -1,4 +1,4 @@
1
- import "../Generator-CDt4pB3W.mjs";
2
- import { EndpointGenerator } from "../EndpointGenerator-uBA1ixUw.mjs";
1
+ import "../Generator-UanJW0_V.mjs";
2
+ import { EndpointGenerator } from "../EndpointGenerator-BmZ9BxbO.mjs";
3
3
 
4
4
  export { EndpointGenerator };
@@ -1,4 +1,4 @@
1
- require('../Generator-C3tYSTQY.cjs');
2
- const require_FunctionGenerator = require('../FunctionGenerator-DN681IUn.cjs');
1
+ require('../Generator-CDoEXCDg.cjs');
2
+ const require_FunctionGenerator = require('../FunctionGenerator-Clw64SwQ.cjs');
3
3
 
4
4
  exports.FunctionGenerator = require_FunctionGenerator.FunctionGenerator;
@@ -1,4 +1,4 @@
1
- import "../Generator-CDt4pB3W.mjs";
2
- import { FunctionGenerator } from "../FunctionGenerator-crAa-JC7.mjs";
1
+ import "../Generator-UanJW0_V.mjs";
2
+ import { FunctionGenerator } from "../FunctionGenerator-DOEB_yPh.mjs";
3
3
 
4
4
  export { FunctionGenerator };
@@ -1,3 +1,3 @@
1
- const require_Generator = require('../Generator-C3tYSTQY.cjs');
1
+ const require_Generator = require('../Generator-CDoEXCDg.cjs');
2
2
 
3
3
  exports.ConstructGenerator = require_Generator.ConstructGenerator;
@@ -1,3 +1,3 @@
1
- import { ConstructGenerator } from "../Generator-CDt4pB3W.mjs";
1
+ import { ConstructGenerator } from "../Generator-UanJW0_V.mjs";
2
2
 
3
3
  export { ConstructGenerator };
@@ -0,0 +1,4 @@
1
+ require('../Generator-CDoEXCDg.cjs');
2
+ const require_SubscriberGenerator = require('../SubscriberGenerator-BfMZCVNy.cjs');
3
+
4
+ exports.SubscriberGenerator = require_SubscriberGenerator.SubscriberGenerator;
@@ -0,0 +1,4 @@
1
+ import "../Generator-UanJW0_V.mjs";
2
+ import { SubscriberGenerator } from "../SubscriberGenerator-D2u00NI3.mjs";
3
+
4
+ export { SubscriberGenerator };
@@ -1,10 +1,12 @@
1
- const require_Generator = require('../Generator-C3tYSTQY.cjs');
2
- const require_CronGenerator = require('../CronGenerator-Ctl4USy4.cjs');
3
- const require_EndpointGenerator = require('../EndpointGenerator-Dj7AumHi.cjs');
4
- const require_FunctionGenerator = require('../FunctionGenerator-DN681IUn.cjs');
5
- require('../generators-_pY7sHy1.cjs');
1
+ const require_Generator = require('../Generator-CDoEXCDg.cjs');
2
+ const require_CronGenerator = require('../CronGenerator-1PflEYe2.cjs');
3
+ const require_EndpointGenerator = require('../EndpointGenerator-BbGrDiCP.cjs');
4
+ const require_FunctionGenerator = require('../FunctionGenerator-Clw64SwQ.cjs');
5
+ const require_SubscriberGenerator = require('../SubscriberGenerator-BfMZCVNy.cjs');
6
+ require('../generators-CEKtVh81.cjs');
6
7
 
7
8
  exports.ConstructGenerator = require_Generator.ConstructGenerator;
8
9
  exports.CronGenerator = require_CronGenerator.CronGenerator;
9
10
  exports.EndpointGenerator = require_EndpointGenerator.EndpointGenerator;
10
- exports.FunctionGenerator = require_FunctionGenerator.FunctionGenerator;
11
+ exports.FunctionGenerator = require_FunctionGenerator.FunctionGenerator;
12
+ exports.SubscriberGenerator = require_SubscriberGenerator.SubscriberGenerator;
@@ -1,7 +1,8 @@
1
- import { ConstructGenerator } from "../Generator-CDt4pB3W.mjs";
2
- import { CronGenerator } from "../CronGenerator-ClbRcmz_.mjs";
3
- import { EndpointGenerator } from "../EndpointGenerator-uBA1ixUw.mjs";
4
- import { FunctionGenerator } from "../FunctionGenerator-crAa-JC7.mjs";
1
+ import { ConstructGenerator } from "../Generator-UanJW0_V.mjs";
2
+ import { CronGenerator } from "../CronGenerator-DXRfHQcV.mjs";
3
+ import { EndpointGenerator } from "../EndpointGenerator-BmZ9BxbO.mjs";
4
+ import { FunctionGenerator } from "../FunctionGenerator-DOEB_yPh.mjs";
5
+ import { SubscriberGenerator } from "../SubscriberGenerator-D2u00NI3.mjs";
5
6
  import "../generators-CsLujGXs.mjs";
6
7
 
7
- export { ConstructGenerator, CronGenerator, EndpointGenerator, FunctionGenerator };
8
+ export { ConstructGenerator, CronGenerator, EndpointGenerator, FunctionGenerator, SubscriberGenerator };
package/dist/index.cjs CHANGED
@@ -1,21 +1,22 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- const require_chunk = require('./chunk-CsX-DzYB.cjs');
3
- require('./config-RcNESK0T.cjs');
4
- require('./Generator-C3tYSTQY.cjs');
5
- require('./CronGenerator-Ctl4USy4.cjs');
6
- require('./EndpointGenerator-Dj7AumHi.cjs');
7
- require('./FunctionGenerator-DN681IUn.cjs');
8
- require('./generators-_pY7sHy1.cjs');
9
- require('./manifests-BTtfDMX8.cjs');
10
- require('./providerResolver-Cs-0YCaP.cjs');
11
- const require_build = require('./build-BfQFnU5-.cjs');
12
- const require_openapi_react_query = require('./openapi-react-query-J0BzBHhN.cjs');
13
- const require_openapi = require('./openapi-DW-qF3oW.cjs');
2
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
3
+ require('./config-D1EpSGk6.cjs');
4
+ require('./Generator-CDoEXCDg.cjs');
5
+ require('./CronGenerator-1PflEYe2.cjs');
6
+ require('./EndpointGenerator-BbGrDiCP.cjs');
7
+ require('./FunctionGenerator-Clw64SwQ.cjs');
8
+ require('./SubscriberGenerator-BfMZCVNy.cjs');
9
+ require('./generators-CEKtVh81.cjs');
10
+ require('./manifests-D0saShvH.cjs');
11
+ require('./providerResolver-DgvzNfP4.cjs');
12
+ const require_build = require('./build-BBhlEjf5.cjs');
13
+ const require_openapi_react_query = require('./openapi-react-query-Dvjqx_Eo.cjs');
14
+ const require_openapi = require('./openapi-CMLr04cz.cjs');
14
15
  const commander = require_chunk.__toESM(require("commander"));
15
16
 
16
17
  //#region package.json
17
18
  var name = "@geekmidas/cli";
18
- var version = "0.1.0";
19
+ var version = "0.2.0";
19
20
  var private$1 = false;
20
21
  var type = "module";
21
22
  var exports$1 = {
@@ -44,7 +45,9 @@ var scripts = {
44
45
  };
45
46
  var dependencies = {
46
47
  "@apidevtools/swagger-parser": "^10.1.0",
47
- "@geekmidas/api": "workspace:*",
48
+ "@geekmidas/constructs": "workspace:*",
49
+ "@geekmidas/schema": "workspace:*",
50
+ "@geekmidas/envkit": "workspace:*",
48
51
  "commander": "^12.1.0",
49
52
  "fast-glob": "^3.3.2",
50
53
  "lodash.kebabcase": "^4.1.1",
@@ -55,6 +58,7 @@ var devDependencies = {
55
58
  "@geekmidas/testkit": "workspace:*",
56
59
  "typescript": "^5.8.2",
57
60
  "vitest": "^3.2.4",
61
+ "@geekmidas/logger": "workspace:*",
58
62
  "zod": "^3.23.8"
59
63
  };
60
64
  var package_default = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["Command","pkg","options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }","options: { output?: string }","options: { input?: string; output?: string; name?: string }"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@geekmidas/cli\",\n \"version\": \"0.1.0\",\n \"private\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./openapi\": {\n \"types\": \"./dist/openapi.d.ts\",\n \"import\": \"./dist/openapi.mjs\",\n \"require\": \"./dist/openapi.cjs\"\n },\n \"./openapi-react-query\": {\n \"types\": \"./dist/openapi-react-query.d.ts\",\n \"import\": \"./dist/openapi-react-query.mjs\",\n \"require\": \"./dist/openapi-react-query.cjs\"\n }\n },\n \"bin\": {\n \"gkm\": \"./dist/index.cjs\"\n },\n \"scripts\": {\n \"ts\": \"tsc --noEmit --skipLibCheck src/**/*.ts\",\n \"test\": \"vitest\",\n \"test:once\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"@geekmidas/api\": \"workspace:*\",\n\n \"commander\": \"^12.1.0\",\n \"fast-glob\": \"^3.3.2\",\n \"lodash.kebabcase\": \"^4.1.1\",\n \"openapi-typescript\": \"^7.4.2\"\n },\n \"devDependencies\": {\n \"@types/lodash.kebabcase\": \"^4.1.9\",\n \"@geekmidas/testkit\": \"workspace:*\",\n \"typescript\": \"^5.8.2\",\n \"vitest\": \"^3.2.4\",\n \"zod\": \"^3.23.8\"\n }\n}\n","#!/usr/bin/env -S npx tsx\n\nimport { Command } from 'commander';\nimport pkg from '../package.json' assert { type: 'json' };\nimport { buildCommand } from './build/index.ts';\nimport { generateReactQueryCommand } from './openapi-react-query.ts';\nimport { openapiCommand } from './openapi.ts';\nimport type { LegacyProvider, MainProvider } from './types.ts';\n\nconst program = new Command();\n\nprogram\n .name('gkm')\n .description('GeekMidas backend framework CLI')\n .version(pkg.version)\n .option('--cwd <path>', 'Change working directory');\n\nprogram\n .command('build')\n .description('Build handlers from endpoints, functions, and crons')\n .option(\n '--provider <provider>',\n 'Target provider for generated handlers (aws, server)',\n )\n .option(\n '--providers <providers>',\n '[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)',\n )\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation generation for server builds',\n )\n .action(\n async (options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n // Handle new single provider option\n if (options.provider) {\n if (!['aws', 'server'].includes(options.provider)) {\n console.error(\n `Invalid provider: ${options.provider}. Must be 'aws' or 'server'.`,\n );\n process.exit(1);\n }\n await buildCommand({\n provider: options.provider as MainProvider,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Handle legacy providers option\n else if (options.providers) {\n console.warn(\n '⚠️ --providers flag is deprecated. Use --provider instead.',\n );\n const providerList = [\n ...new Set(options.providers.split(',').map((p) => p.trim())),\n ] as LegacyProvider[];\n await buildCommand({\n providers: providerList,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Default to config-driven build\n else {\n await buildCommand({\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n } catch (error) {\n console.error('Build failed:', (error as Error).message);\n process.exit(1);\n }\n },\n );\n\nprogram\n .command('cron')\n .description('Manage cron jobs')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Cron management - coming soon\\n');\n });\n\nprogram\n .command('function')\n .description('Manage serverless functions')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Serverless function management - coming soon\\n');\n });\n\nprogram\n .command('api')\n .description('Manage REST API endpoints')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('REST API management - coming soon\\n');\n });\n\nprogram\n .command('openapi')\n .description('Generate OpenAPI 3.0 specification from endpoints')\n .option(\n '--output <path>',\n 'Output file path for the OpenAPI spec',\n 'openapi.json',\n )\n .action(async (options: { output?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await openapiCommand(options);\n } catch (error) {\n console.error('OpenAPI generation failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('generate:react-query')\n .description('Generate React Query hooks from OpenAPI specification')\n .option('--input <path>', 'Input OpenAPI spec file path', 'openapi.json')\n .option(\n '--output <path>',\n 'Output file path for generated hooks',\n 'src/api/hooks.ts',\n )\n .option('--name <name>', 'API name prefix for generated code', 'API')\n .action(\n async (options: { input?: string; output?: string; name?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await generateReactQueryCommand(options);\n } catch (error) {\n console.error(\n 'React Query generation failed:',\n (error as Error).message,\n );\n process.exit(1);\n }\n },\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["Command","pkg","options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }","options: { output?: string }","options: { input?: string; output?: string; name?: string }"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@geekmidas/cli\",\n \"version\": \"0.2.0\",\n \"private\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./openapi\": {\n \"types\": \"./dist/openapi.d.ts\",\n \"import\": \"./dist/openapi.mjs\",\n \"require\": \"./dist/openapi.cjs\"\n },\n \"./openapi-react-query\": {\n \"types\": \"./dist/openapi-react-query.d.ts\",\n \"import\": \"./dist/openapi-react-query.mjs\",\n \"require\": \"./dist/openapi-react-query.cjs\"\n }\n },\n \"bin\": {\n \"gkm\": \"./dist/index.cjs\"\n },\n \"scripts\": {\n \"ts\": \"tsc --noEmit --skipLibCheck src/**/*.ts\",\n \"test\": \"vitest\",\n \"test:once\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"@geekmidas/constructs\": \"workspace:*\",\n \"@geekmidas/schema\": \"workspace:*\",\n \"@geekmidas/envkit\": \"workspace:*\",\n \"commander\": \"^12.1.0\",\n \"fast-glob\": \"^3.3.2\",\n \"lodash.kebabcase\": \"^4.1.1\",\n \"openapi-typescript\": \"^7.4.2\"\n },\n \"devDependencies\": {\n \"@types/lodash.kebabcase\": \"^4.1.9\",\n \"@geekmidas/testkit\": \"workspace:*\",\n \"typescript\": \"^5.8.2\",\n \"vitest\": \"^3.2.4\",\n \"@geekmidas/logger\": \"workspace:*\",\n \"zod\": \"^3.23.8\"\n }\n}\n","#!/usr/bin/env -S npx tsx\n\nimport { Command } from 'commander';\nimport pkg from '../package.json' assert { type: 'json' };\nimport { buildCommand } from './build/index.ts';\nimport { generateReactQueryCommand } from './openapi-react-query.ts';\nimport { openapiCommand } from './openapi.ts';\nimport type { LegacyProvider, MainProvider } from './types.ts';\n\nconst program = new Command();\n\nprogram\n .name('gkm')\n .description('GeekMidas backend framework CLI')\n .version(pkg.version)\n .option('--cwd <path>', 'Change working directory');\n\nprogram\n .command('build')\n .description('Build handlers from endpoints, functions, and crons')\n .option(\n '--provider <provider>',\n 'Target provider for generated handlers (aws, server)',\n )\n .option(\n '--providers <providers>',\n '[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)',\n )\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation generation for server builds',\n )\n .action(\n async (options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n // Handle new single provider option\n if (options.provider) {\n if (!['aws', 'server'].includes(options.provider)) {\n console.error(\n `Invalid provider: ${options.provider}. Must be 'aws' or 'server'.`,\n );\n process.exit(1);\n }\n await buildCommand({\n provider: options.provider as MainProvider,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Handle legacy providers option\n else if (options.providers) {\n console.warn(\n '⚠️ --providers flag is deprecated. Use --provider instead.',\n );\n const providerList = [\n ...new Set(options.providers.split(',').map((p) => p.trim())),\n ] as LegacyProvider[];\n await buildCommand({\n providers: providerList,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Default to config-driven build\n else {\n await buildCommand({\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n } catch (error) {\n console.error('Build failed:', (error as Error).message);\n process.exit(1);\n }\n },\n );\n\nprogram\n .command('cron')\n .description('Manage cron jobs')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Cron management - coming soon\\n');\n });\n\nprogram\n .command('function')\n .description('Manage serverless functions')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Serverless function management - coming soon\\n');\n });\n\nprogram\n .command('api')\n .description('Manage REST API endpoints')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('REST API management - coming soon\\n');\n });\n\nprogram\n .command('openapi')\n .description('Generate OpenAPI 3.0 specification from endpoints')\n .option(\n '--output <path>',\n 'Output file path for the OpenAPI spec',\n 'openapi.json',\n )\n .action(async (options: { output?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await openapiCommand(options);\n } catch (error) {\n console.error('OpenAPI generation failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('generate:react-query')\n .description('Generate React Query hooks from OpenAPI specification')\n .option('--input <path>', 'Input OpenAPI spec file path', 'openapi.json')\n .option(\n '--output <path>',\n 'Output file path for generated hooks',\n 'src/api/hooks.ts',\n )\n .option('--name <name>', 'API name prefix for generated code', 'API')\n .action(\n async (options: { input?: string; output?: string; name?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await generateReactQueryCommand(options);\n } catch (error) {\n console.error(\n 'React Query generation failed:',\n (error as Error).message,\n );\n process.exit(1);\n }\n },\n );\n\nprogram.parse();\n"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,20 +1,21 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- import "./config-CXxYmz_o.mjs";
3
- import "./Generator-CDt4pB3W.mjs";
4
- import "./CronGenerator-ClbRcmz_.mjs";
5
- import "./EndpointGenerator-uBA1ixUw.mjs";
6
- import "./FunctionGenerator-crAa-JC7.mjs";
2
+ import "./config-U-mdW-7Y.mjs";
3
+ import "./Generator-UanJW0_V.mjs";
4
+ import "./CronGenerator-DXRfHQcV.mjs";
5
+ import "./EndpointGenerator-BmZ9BxbO.mjs";
6
+ import "./FunctionGenerator-DOEB_yPh.mjs";
7
+ import "./SubscriberGenerator-D2u00NI3.mjs";
7
8
  import "./generators-CsLujGXs.mjs";
8
- import "./manifests-HX4z4kkz.mjs";
9
+ import "./manifests-BrJXpHrf.mjs";
9
10
  import "./providerResolver-B_TjNF0_.mjs";
10
- import { buildCommand } from "./build-BZdwxCLW.mjs";
11
- import { generateReactQueryCommand } from "./openapi-react-query-lgS7AVEz.mjs";
12
- import { openapiCommand } from "./openapi-BivnatiC.mjs";
11
+ import { buildCommand } from "./build-kY-lG30Q.mjs";
12
+ import { generateReactQueryCommand } from "./openapi-react-query-DbrWwQzb.mjs";
13
+ import { openapiCommand } from "./openapi-BQx3_JbM.mjs";
13
14
  import { Command } from "commander";
14
15
 
15
16
  //#region package.json
16
17
  var name = "@geekmidas/cli";
17
- var version = "0.1.0";
18
+ var version = "0.2.0";
18
19
  var private$1 = false;
19
20
  var type = "module";
20
21
  var exports = {
@@ -43,7 +44,9 @@ var scripts = {
43
44
  };
44
45
  var dependencies = {
45
46
  "@apidevtools/swagger-parser": "^10.1.0",
46
- "@geekmidas/api": "workspace:*",
47
+ "@geekmidas/constructs": "workspace:*",
48
+ "@geekmidas/schema": "workspace:*",
49
+ "@geekmidas/envkit": "workspace:*",
47
50
  "commander": "^12.1.0",
48
51
  "fast-glob": "^3.3.2",
49
52
  "lodash.kebabcase": "^4.1.1",
@@ -54,6 +57,7 @@ var devDependencies = {
54
57
  "@geekmidas/testkit": "workspace:*",
55
58
  "typescript": "^5.8.2",
56
59
  "vitest": "^3.2.4",
60
+ "@geekmidas/logger": "workspace:*",
57
61
  "zod": "^3.23.8"
58
62
  };
59
63
  var package_default = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["pkg","options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }","options: { output?: string }","options: { input?: string; output?: string; name?: string }"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@geekmidas/cli\",\n \"version\": \"0.1.0\",\n \"private\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./openapi\": {\n \"types\": \"./dist/openapi.d.ts\",\n \"import\": \"./dist/openapi.mjs\",\n \"require\": \"./dist/openapi.cjs\"\n },\n \"./openapi-react-query\": {\n \"types\": \"./dist/openapi-react-query.d.ts\",\n \"import\": \"./dist/openapi-react-query.mjs\",\n \"require\": \"./dist/openapi-react-query.cjs\"\n }\n },\n \"bin\": {\n \"gkm\": \"./dist/index.cjs\"\n },\n \"scripts\": {\n \"ts\": \"tsc --noEmit --skipLibCheck src/**/*.ts\",\n \"test\": \"vitest\",\n \"test:once\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"@geekmidas/api\": \"workspace:*\",\n\n \"commander\": \"^12.1.0\",\n \"fast-glob\": \"^3.3.2\",\n \"lodash.kebabcase\": \"^4.1.1\",\n \"openapi-typescript\": \"^7.4.2\"\n },\n \"devDependencies\": {\n \"@types/lodash.kebabcase\": \"^4.1.9\",\n \"@geekmidas/testkit\": \"workspace:*\",\n \"typescript\": \"^5.8.2\",\n \"vitest\": \"^3.2.4\",\n \"zod\": \"^3.23.8\"\n }\n}\n","#!/usr/bin/env -S npx tsx\n\nimport { Command } from 'commander';\nimport pkg from '../package.json' assert { type: 'json' };\nimport { buildCommand } from './build/index.ts';\nimport { generateReactQueryCommand } from './openapi-react-query.ts';\nimport { openapiCommand } from './openapi.ts';\nimport type { LegacyProvider, MainProvider } from './types.ts';\n\nconst program = new Command();\n\nprogram\n .name('gkm')\n .description('GeekMidas backend framework CLI')\n .version(pkg.version)\n .option('--cwd <path>', 'Change working directory');\n\nprogram\n .command('build')\n .description('Build handlers from endpoints, functions, and crons')\n .option(\n '--provider <provider>',\n 'Target provider for generated handlers (aws, server)',\n )\n .option(\n '--providers <providers>',\n '[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)',\n )\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation generation for server builds',\n )\n .action(\n async (options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n // Handle new single provider option\n if (options.provider) {\n if (!['aws', 'server'].includes(options.provider)) {\n console.error(\n `Invalid provider: ${options.provider}. Must be 'aws' or 'server'.`,\n );\n process.exit(1);\n }\n await buildCommand({\n provider: options.provider as MainProvider,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Handle legacy providers option\n else if (options.providers) {\n console.warn(\n '⚠️ --providers flag is deprecated. Use --provider instead.',\n );\n const providerList = [\n ...new Set(options.providers.split(',').map((p) => p.trim())),\n ] as LegacyProvider[];\n await buildCommand({\n providers: providerList,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Default to config-driven build\n else {\n await buildCommand({\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n } catch (error) {\n console.error('Build failed:', (error as Error).message);\n process.exit(1);\n }\n },\n );\n\nprogram\n .command('cron')\n .description('Manage cron jobs')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Cron management - coming soon\\n');\n });\n\nprogram\n .command('function')\n .description('Manage serverless functions')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Serverless function management - coming soon\\n');\n });\n\nprogram\n .command('api')\n .description('Manage REST API endpoints')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('REST API management - coming soon\\n');\n });\n\nprogram\n .command('openapi')\n .description('Generate OpenAPI 3.0 specification from endpoints')\n .option(\n '--output <path>',\n 'Output file path for the OpenAPI spec',\n 'openapi.json',\n )\n .action(async (options: { output?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await openapiCommand(options);\n } catch (error) {\n console.error('OpenAPI generation failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('generate:react-query')\n .description('Generate React Query hooks from OpenAPI specification')\n .option('--input <path>', 'Input OpenAPI spec file path', 'openapi.json')\n .option(\n '--output <path>',\n 'Output file path for generated hooks',\n 'src/api/hooks.ts',\n )\n .option('--name <name>', 'API name prefix for generated code', 'API')\n .action(\n async (options: { input?: string; output?: string; name?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await generateReactQueryCommand(options);\n } catch (error) {\n console.error(\n 'React Query generation failed:',\n (error as Error).message,\n );\n process.exit(1);\n }\n },\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["pkg","options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }","options: { output?: string }","options: { input?: string; output?: string; name?: string }"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@geekmidas/cli\",\n \"version\": \"0.2.0\",\n \"private\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./openapi\": {\n \"types\": \"./dist/openapi.d.ts\",\n \"import\": \"./dist/openapi.mjs\",\n \"require\": \"./dist/openapi.cjs\"\n },\n \"./openapi-react-query\": {\n \"types\": \"./dist/openapi-react-query.d.ts\",\n \"import\": \"./dist/openapi-react-query.mjs\",\n \"require\": \"./dist/openapi-react-query.cjs\"\n }\n },\n \"bin\": {\n \"gkm\": \"./dist/index.cjs\"\n },\n \"scripts\": {\n \"ts\": \"tsc --noEmit --skipLibCheck src/**/*.ts\",\n \"test\": \"vitest\",\n \"test:once\": \"vitest run\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"dependencies\": {\n \"@apidevtools/swagger-parser\": \"^10.1.0\",\n \"@geekmidas/constructs\": \"workspace:*\",\n \"@geekmidas/schema\": \"workspace:*\",\n \"@geekmidas/envkit\": \"workspace:*\",\n \"commander\": \"^12.1.0\",\n \"fast-glob\": \"^3.3.2\",\n \"lodash.kebabcase\": \"^4.1.1\",\n \"openapi-typescript\": \"^7.4.2\"\n },\n \"devDependencies\": {\n \"@types/lodash.kebabcase\": \"^4.1.9\",\n \"@geekmidas/testkit\": \"workspace:*\",\n \"typescript\": \"^5.8.2\",\n \"vitest\": \"^3.2.4\",\n \"@geekmidas/logger\": \"workspace:*\",\n \"zod\": \"^3.23.8\"\n }\n}\n","#!/usr/bin/env -S npx tsx\n\nimport { Command } from 'commander';\nimport pkg from '../package.json' assert { type: 'json' };\nimport { buildCommand } from './build/index.ts';\nimport { generateReactQueryCommand } from './openapi-react-query.ts';\nimport { openapiCommand } from './openapi.ts';\nimport type { LegacyProvider, MainProvider } from './types.ts';\n\nconst program = new Command();\n\nprogram\n .name('gkm')\n .description('GeekMidas backend framework CLI')\n .version(pkg.version)\n .option('--cwd <path>', 'Change working directory');\n\nprogram\n .command('build')\n .description('Build handlers from endpoints, functions, and crons')\n .option(\n '--provider <provider>',\n 'Target provider for generated handlers (aws, server)',\n )\n .option(\n '--providers <providers>',\n '[DEPRECATED] Use --provider instead. Target providers for generated handlers (comma-separated)',\n )\n .option(\n '--enable-openapi',\n 'Enable OpenAPI documentation generation for server builds',\n )\n .action(\n async (options: {\n provider?: string;\n providers?: string;\n enableOpenapi?: boolean;\n }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n\n // Handle new single provider option\n if (options.provider) {\n if (!['aws', 'server'].includes(options.provider)) {\n console.error(\n `Invalid provider: ${options.provider}. Must be 'aws' or 'server'.`,\n );\n process.exit(1);\n }\n await buildCommand({\n provider: options.provider as MainProvider,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Handle legacy providers option\n else if (options.providers) {\n console.warn(\n '⚠️ --providers flag is deprecated. Use --provider instead.',\n );\n const providerList = [\n ...new Set(options.providers.split(',').map((p) => p.trim())),\n ] as LegacyProvider[];\n await buildCommand({\n providers: providerList,\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n // Default to config-driven build\n else {\n await buildCommand({\n enableOpenApi: options.enableOpenapi || false,\n });\n }\n } catch (error) {\n console.error('Build failed:', (error as Error).message);\n process.exit(1);\n }\n },\n );\n\nprogram\n .command('cron')\n .description('Manage cron jobs')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Cron management - coming soon\\n');\n });\n\nprogram\n .command('function')\n .description('Manage serverless functions')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('Serverless function management - coming soon\\n');\n });\n\nprogram\n .command('api')\n .description('Manage REST API endpoints')\n .action(() => {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n process.stdout.write('REST API management - coming soon\\n');\n });\n\nprogram\n .command('openapi')\n .description('Generate OpenAPI 3.0 specification from endpoints')\n .option(\n '--output <path>',\n 'Output file path for the OpenAPI spec',\n 'openapi.json',\n )\n .action(async (options: { output?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await openapiCommand(options);\n } catch (error) {\n console.error('OpenAPI generation failed:', (error as Error).message);\n process.exit(1);\n }\n });\n\nprogram\n .command('generate:react-query')\n .description('Generate React Query hooks from OpenAPI specification')\n .option('--input <path>', 'Input OpenAPI spec file path', 'openapi.json')\n .option(\n '--output <path>',\n 'Output file path for generated hooks',\n 'src/api/hooks.ts',\n )\n .option('--name <name>', 'API name prefix for generated code', 'API')\n .action(\n async (options: { input?: string; output?: string; name?: string }) => {\n try {\n const globalOptions = program.opts();\n if (globalOptions.cwd) {\n process.chdir(globalOptions.cwd);\n }\n await generateReactQueryCommand(options);\n } catch (error) {\n console.error(\n 'React Query generation failed:',\n (error as Error).message,\n );\n process.exit(1);\n }\n },\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -3,18 +3,19 @@ import { writeFile } from "node:fs/promises";
3
3
 
4
4
  //#region src/build/manifests.ts
5
5
  const logger = console;
6
- async function generateManifests(outputDir, routes, functions, crons) {
6
+ async function generateManifests(outputDir, routes, functions, crons, subscribers) {
7
7
  const manifest = {
8
8
  routes,
9
9
  functions,
10
- crons
10
+ crons,
11
+ subscribers
11
12
  };
12
13
  const manifestPath = join(outputDir, "manifest.json");
13
14
  await writeFile(manifestPath, JSON.stringify(manifest, null, 2));
14
- logger.log(`Generated ${routes.length} routes, ${functions.length} functions, ${crons.length} crons in ${relative(process.cwd(), outputDir)}`);
15
+ logger.log(`\nGenerated unified manifest with ${routes.length} routes, ${functions.length} functions, ${crons.length} crons, ${subscribers.length} subscribers`);
15
16
  logger.log(`Manifest: ${relative(process.cwd(), manifestPath)}`);
16
17
  }
17
18
 
18
19
  //#endregion
19
20
  export { generateManifests };
20
- //# sourceMappingURL=manifests-HX4z4kkz.mjs.map
21
+ //# sourceMappingURL=manifests-BrJXpHrf.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifests-BrJXpHrf.mjs","names":["outputDir: string","routes: RouteInfo[]","functions: FunctionInfo[]","crons: CronInfo[]","subscribers: SubscriberInfo[]","manifest: BuildManifest"],"sources":["../src/build/manifests.ts"],"sourcesContent":["import { writeFile } from 'node:fs/promises';\nimport { join, relative } from 'path';\nimport type {\n BuildManifest,\n CronInfo,\n FunctionInfo,\n RouteInfo,\n SubscriberInfo,\n} from '../types';\n\nconst logger = console;\n\nexport async function generateManifests(\n outputDir: string,\n routes: RouteInfo[],\n functions: FunctionInfo[],\n crons: CronInfo[],\n subscribers: SubscriberInfo[],\n): Promise<void> {\n // Generate unified manifest for all providers\n const manifest: BuildManifest = {\n routes,\n functions,\n crons,\n subscribers,\n };\n\n const manifestPath = join(outputDir, 'manifest.json');\n await writeFile(manifestPath, JSON.stringify(manifest, null, 2));\n\n logger.log(\n `\\nGenerated unified manifest with ${routes.length} routes, ${functions.length} functions, ${crons.length} crons, ${subscribers.length} subscribers`,\n );\n logger.log(`Manifest: ${relative(process.cwd(), manifestPath)}`);\n}\n"],"mappings":";;;;AAUA,MAAM,SAAS;AAEf,eAAsB,kBACpBA,WACAC,QACAC,WACAC,OACAC,aACe;CAEf,MAAMC,WAA0B;EAC9B;EACA;EACA;EACA;CACD;CAED,MAAM,eAAe,KAAK,WAAW,gBAAgB;AACrD,OAAM,UAAU,cAAc,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;AAEhE,QAAO,KACJ,oCAAoC,OAAO,OAAO,WAAW,UAAU,OAAO,cAAc,MAAM,OAAO,UAAU,YAAY,OAAO,cACxI;AACD,QAAO,KAAK,YAAY,SAAS,QAAQ,KAAK,EAAE,aAAa,CAAC,EAAE;AACjE"}
@@ -1,18 +1,19 @@
1
- const require_chunk = require('./chunk-CsX-DzYB.cjs');
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
2
  const path = require_chunk.__toESM(require("path"));
3
3
  const node_fs_promises = require_chunk.__toESM(require("node:fs/promises"));
4
4
 
5
5
  //#region src/build/manifests.ts
6
6
  const logger = console;
7
- async function generateManifests(outputDir, routes, functions, crons) {
7
+ async function generateManifests(outputDir, routes, functions, crons, subscribers) {
8
8
  const manifest = {
9
9
  routes,
10
10
  functions,
11
- crons
11
+ crons,
12
+ subscribers
12
13
  };
13
14
  const manifestPath = (0, path.join)(outputDir, "manifest.json");
14
15
  await (0, node_fs_promises.writeFile)(manifestPath, JSON.stringify(manifest, null, 2));
15
- logger.log(`Generated ${routes.length} routes, ${functions.length} functions, ${crons.length} crons in ${(0, path.relative)(process.cwd(), outputDir)}`);
16
+ logger.log(`\nGenerated unified manifest with ${routes.length} routes, ${functions.length} functions, ${crons.length} crons, ${subscribers.length} subscribers`);
16
17
  logger.log(`Manifest: ${(0, path.relative)(process.cwd(), manifestPath)}`);
17
18
  }
18
19
 
@@ -23,4 +24,4 @@ Object.defineProperty(exports, 'generateManifests', {
23
24
  return generateManifests;
24
25
  }
25
26
  });
26
- //# sourceMappingURL=manifests-BTtfDMX8.cjs.map
27
+ //# sourceMappingURL=manifests-D0saShvH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifests-D0saShvH.cjs","names":["outputDir: string","routes: RouteInfo[]","functions: FunctionInfo[]","crons: CronInfo[]","subscribers: SubscriberInfo[]","manifest: BuildManifest"],"sources":["../src/build/manifests.ts"],"sourcesContent":["import { writeFile } from 'node:fs/promises';\nimport { join, relative } from 'path';\nimport type {\n BuildManifest,\n CronInfo,\n FunctionInfo,\n RouteInfo,\n SubscriberInfo,\n} from '../types';\n\nconst logger = console;\n\nexport async function generateManifests(\n outputDir: string,\n routes: RouteInfo[],\n functions: FunctionInfo[],\n crons: CronInfo[],\n subscribers: SubscriberInfo[],\n): Promise<void> {\n // Generate unified manifest for all providers\n const manifest: BuildManifest = {\n routes,\n functions,\n crons,\n subscribers,\n };\n\n const manifestPath = join(outputDir, 'manifest.json');\n await writeFile(manifestPath, JSON.stringify(manifest, null, 2));\n\n logger.log(\n `\\nGenerated unified manifest with ${routes.length} routes, ${functions.length} functions, ${crons.length} crons, ${subscribers.length} subscribers`,\n );\n logger.log(`Manifest: ${relative(process.cwd(), manifestPath)}`);\n}\n"],"mappings":";;;;;AAUA,MAAM,SAAS;AAEf,eAAsB,kBACpBA,WACAC,QACAC,WACAC,OACAC,aACe;CAEf,MAAMC,WAA0B;EAC9B;EACA;EACA;EACA;CACD;CAED,MAAM,eAAe,eAAK,WAAW,gBAAgB;AACrD,OAAM,gCAAU,cAAc,KAAK,UAAU,UAAU,MAAM,EAAE,CAAC;AAEhE,QAAO,KACJ,oCAAoC,OAAO,OAAO,WAAW,UAAU,OAAO,cAAc,MAAM,OAAO,UAAU,YAAY,OAAO,cACxI;AACD,QAAO,KAAK,YAAY,mBAAS,QAAQ,KAAK,EAAE,aAAa,CAAC,EAAE;AACjE"}
@@ -1,8 +1,8 @@
1
- import { loadConfig } from "./config-CXxYmz_o.mjs";
2
- import { EndpointGenerator } from "./EndpointGenerator-uBA1ixUw.mjs";
1
+ import { loadConfig } from "./config-U-mdW-7Y.mjs";
2
+ import { EndpointGenerator } from "./EndpointGenerator-BmZ9BxbO.mjs";
3
3
  import { mkdir, writeFile } from "node:fs/promises";
4
4
  import { join } from "node:path";
5
- import { Endpoint } from "@geekmidas/api/server";
5
+ import { Endpoint } from "@geekmidas/constructs/endpoints";
6
6
 
7
7
  //#region src/openapi.ts
8
8
  async function openapiCommand(options = {}) {
@@ -33,4 +33,4 @@ async function openapiCommand(options = {}) {
33
33
 
34
34
  //#endregion
35
35
  export { openapiCommand };
36
- //# sourceMappingURL=openapi-BivnatiC.mjs.map
36
+ //# sourceMappingURL=openapi-BQx3_JbM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-BQx3_JbM.mjs","names":["options: OpenAPIOptions"],"sources":["../src/openapi.ts"],"sourcesContent":["#!/usr/bin/env -S npx tsx\n\nimport { mkdir, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { Endpoint } from '@geekmidas/constructs/endpoints';\nimport { loadConfig } from './config.js';\nimport { EndpointGenerator } from './generators/EndpointGenerator.js';\n\ninterface OpenAPIOptions {\n output?: string;\n}\n\nexport async function openapiCommand(\n options: OpenAPIOptions = {},\n): Promise<void> {\n const logger = console;\n\n try {\n // Load config using existing function\n const config = await loadConfig();\n const generator = new EndpointGenerator();\n\n // Load all endpoints using the refactored function\n const loadedEndpoints = await generator.load(config.routes);\n\n if (loadedEndpoints.length === 0) {\n logger.log('No valid endpoints found');\n return;\n }\n\n // Extract just the endpoint instances for OpenAPI generation\n const endpoints = loadedEndpoints.map(({ construct }) => construct);\n\n // Generate OpenAPI spec using built-in method\n const spec = await Endpoint.buildOpenApiSchema(endpoints, {\n title: 'API Documentation',\n version: '1.0.0',\n description: 'Auto-generated API documentation from endpoints',\n });\n\n // Write output\n const outputPath = options.output || join(process.cwd(), 'openapi.json');\n await mkdir(join(outputPath, '..'), { recursive: true });\n await writeFile(outputPath, JSON.stringify(spec, null, 2));\n\n logger.log(`OpenAPI spec generated: ${outputPath}`);\n logger.log(`Found ${endpoints.length} endpoints`);\n } catch (error) {\n throw new Error(`OpenAPI generation failed: ${(error as Error).message}`);\n }\n}\n"],"mappings":";;;;;;;AAYA,eAAsB,eACpBA,UAA0B,CAAE,GACb;CACf,MAAM,SAAS;AAEf,KAAI;EAEF,MAAM,SAAS,MAAM,YAAY;EACjC,MAAM,YAAY,IAAI;EAGtB,MAAM,kBAAkB,MAAM,UAAU,KAAK,OAAO,OAAO;AAE3D,MAAI,gBAAgB,WAAW,GAAG;AAChC,UAAO,IAAI,2BAA2B;AACtC;EACD;EAGD,MAAM,YAAY,gBAAgB,IAAI,CAAC,EAAE,WAAW,KAAK,UAAU;EAGnE,MAAM,OAAO,MAAM,SAAS,mBAAmB,WAAW;GACxD,OAAO;GACP,SAAS;GACT,aAAa;EACd,EAAC;EAGF,MAAM,aAAa,QAAQ,UAAU,KAAK,QAAQ,KAAK,EAAE,eAAe;AACxE,QAAM,MAAM,KAAK,YAAY,KAAK,EAAE,EAAE,WAAW,KAAM,EAAC;AACxD,QAAM,UAAU,YAAY,KAAK,UAAU,MAAM,MAAM,EAAE,CAAC;AAE1D,SAAO,KAAK,0BAA0B,WAAW,EAAE;AACnD,SAAO,KAAK,QAAQ,UAAU,OAAO,YAAY;CAClD,SAAQ,OAAO;AACd,QAAM,IAAI,OAAO,6BAA8B,MAAgB,QAAQ;CACxE;AACF"}
@@ -1,9 +1,9 @@
1
- const require_chunk = require('./chunk-CsX-DzYB.cjs');
2
- const require_config = require('./config-RcNESK0T.cjs');
3
- const require_EndpointGenerator = require('./EndpointGenerator-Dj7AumHi.cjs');
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_config = require('./config-D1EpSGk6.cjs');
3
+ const require_EndpointGenerator = require('./EndpointGenerator-BbGrDiCP.cjs');
4
4
  const node_fs_promises = require_chunk.__toESM(require("node:fs/promises"));
5
5
  const node_path = require_chunk.__toESM(require("node:path"));
6
- const __geekmidas_api_server = require_chunk.__toESM(require("@geekmidas/api/server"));
6
+ const __geekmidas_constructs_endpoints = require_chunk.__toESM(require("@geekmidas/constructs/endpoints"));
7
7
 
8
8
  //#region src/openapi.ts
9
9
  async function openapiCommand(options = {}) {
@@ -17,7 +17,7 @@ async function openapiCommand(options = {}) {
17
17
  return;
18
18
  }
19
19
  const endpoints = loadedEndpoints.map(({ construct }) => construct);
20
- const spec = await __geekmidas_api_server.Endpoint.buildOpenApiSchema(endpoints, {
20
+ const spec = await __geekmidas_constructs_endpoints.Endpoint.buildOpenApiSchema(endpoints, {
21
21
  title: "API Documentation",
22
22
  version: "1.0.0",
23
23
  description: "Auto-generated API documentation from endpoints"
@@ -39,4 +39,4 @@ Object.defineProperty(exports, 'openapiCommand', {
39
39
  return openapiCommand;
40
40
  }
41
41
  });
42
- //# sourceMappingURL=openapi-DW-qF3oW.cjs.map
42
+ //# sourceMappingURL=openapi-CMLr04cz.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-CMLr04cz.cjs","names":["options: OpenAPIOptions","EndpointGenerator"],"sources":["../src/openapi.ts"],"sourcesContent":["#!/usr/bin/env -S npx tsx\n\nimport { mkdir, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { Endpoint } from '@geekmidas/constructs/endpoints';\nimport { loadConfig } from './config.js';\nimport { EndpointGenerator } from './generators/EndpointGenerator.js';\n\ninterface OpenAPIOptions {\n output?: string;\n}\n\nexport async function openapiCommand(\n options: OpenAPIOptions = {},\n): Promise<void> {\n const logger = console;\n\n try {\n // Load config using existing function\n const config = await loadConfig();\n const generator = new EndpointGenerator();\n\n // Load all endpoints using the refactored function\n const loadedEndpoints = await generator.load(config.routes);\n\n if (loadedEndpoints.length === 0) {\n logger.log('No valid endpoints found');\n return;\n }\n\n // Extract just the endpoint instances for OpenAPI generation\n const endpoints = loadedEndpoints.map(({ construct }) => construct);\n\n // Generate OpenAPI spec using built-in method\n const spec = await Endpoint.buildOpenApiSchema(endpoints, {\n title: 'API Documentation',\n version: '1.0.0',\n description: 'Auto-generated API documentation from endpoints',\n });\n\n // Write output\n const outputPath = options.output || join(process.cwd(), 'openapi.json');\n await mkdir(join(outputPath, '..'), { recursive: true });\n await writeFile(outputPath, JSON.stringify(spec, null, 2));\n\n logger.log(`OpenAPI spec generated: ${outputPath}`);\n logger.log(`Found ${endpoints.length} endpoints`);\n } catch (error) {\n throw new Error(`OpenAPI generation failed: ${(error as Error).message}`);\n }\n}\n"],"mappings":";;;;;;;;AAYA,eAAsB,eACpBA,UAA0B,CAAE,GACb;CACf,MAAM,SAAS;AAEf,KAAI;EAEF,MAAM,SAAS,MAAM,2BAAY;EACjC,MAAM,YAAY,IAAIC;EAGtB,MAAM,kBAAkB,MAAM,UAAU,KAAK,OAAO,OAAO;AAE3D,MAAI,gBAAgB,WAAW,GAAG;AAChC,UAAO,IAAI,2BAA2B;AACtC;EACD;EAGD,MAAM,YAAY,gBAAgB,IAAI,CAAC,EAAE,WAAW,KAAK,UAAU;EAGnE,MAAM,OAAO,MAAM,0CAAS,mBAAmB,WAAW;GACxD,OAAO;GACP,SAAS;GACT,aAAa;EACd,EAAC;EAGF,MAAM,aAAa,QAAQ,UAAU,oBAAK,QAAQ,KAAK,EAAE,eAAe;AACxE,QAAM,4BAAM,oBAAK,YAAY,KAAK,EAAE,EAAE,WAAW,KAAM,EAAC;AACxD,QAAM,gCAAU,YAAY,KAAK,UAAU,MAAM,MAAM,EAAE,CAAC;AAE1D,SAAO,KAAK,0BAA0B,WAAW,EAAE;AACnD,SAAO,KAAK,QAAQ,UAAU,OAAO,YAAY;CAClD,SAAQ,OAAO;AACd,QAAM,IAAI,OAAO,6BAA8B,MAAgB,QAAQ;CACxE;AACF"}
@@ -22,6 +22,7 @@ async function generateReactQueryCommand(options = {}) {
22
22
  } catch (error) {
23
23
  logger.warn("Could not generate types with openapi-typescript. Install it for better type inference.");
24
24
  logger.warn("Run: npm install -D openapi-typescript");
25
+ await mkdir(dirname(typesPath), { recursive: true });
25
26
  await writeFile(typesPath, `// Auto-generated placeholder types
26
27
  export interface paths {
27
28
  [path: string]: {
@@ -89,7 +90,7 @@ function schemaToTypeString(schema) {
89
90
  }
90
91
  }
91
92
  function generateReactQueryCode(spec, operations, apiName) {
92
- const imports = `import { createTypedQueryClient } from '@geekmidas/api/client';
93
+ const imports = `import { createTypedQueryClient } from '@geekmidas/client';
93
94
  import type { paths } from './openapi-types';
94
95
 
95
96
  // Create typed query client
@@ -163,4 +164,4 @@ function capitalize(str) {
163
164
 
164
165
  //#endregion
165
166
  export { generateReactQueryCommand };
166
- //# sourceMappingURL=openapi-react-query-lgS7AVEz.mjs.map
167
+ //# sourceMappingURL=openapi-react-query-DbrWwQzb.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-react-query-DbrWwQzb.mjs","names":["options: ReactQueryOptions","spec: OpenAPISpec","operations: OperationInfo[]","operation: any","schema: any","apiName: string","op: OperationInfo","paramParts: string[]","str: string"],"sources":["../src/openapi-react-query.ts"],"sourcesContent":["#!/usr/bin/env -S npx tsx\n\nimport { exec } from 'node:child_process';\nimport { existsSync } from 'node:fs';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { promisify } from 'node:util';\n\nconst execAsync = promisify(exec);\n\ninterface ReactQueryOptions {\n input?: string;\n output?: string;\n name?: string;\n}\n\ninterface OpenAPISpec {\n openapi: string;\n info?: {\n title?: string;\n version?: string;\n };\n paths: Record<string, Record<string, any>>;\n}\n\nexport async function generateReactQueryCommand(\n options: ReactQueryOptions = {},\n): Promise<void> {\n const logger = console;\n\n try {\n // Read OpenAPI spec\n const inputPath = options.input || join(process.cwd(), 'openapi.json');\n\n if (!existsSync(inputPath)) {\n throw new Error(\n `OpenAPI spec not found at ${inputPath}. Run 'npx @geekmidas/cli openapi' first.`,\n );\n }\n\n const specContent = await readFile(inputPath, 'utf-8');\n const spec: OpenAPISpec = JSON.parse(specContent);\n\n // Generate TypeScript types from OpenAPI spec\n const outputDir = dirname(\n options.output || join(process.cwd(), 'src', 'api', 'hooks.ts'),\n );\n const typesPath = join(outputDir, 'openapi-types.d.ts');\n\n logger.log('Generating TypeScript types from OpenAPI spec...');\n\n try {\n // Use npx to run openapi-typescript\n await execAsync(\n `npx openapi-typescript \"${inputPath}\" -o \"${typesPath}\"`,\n { cwd: process.cwd() },\n );\n logger.log(`TypeScript types generated: ${typesPath}`);\n } catch (error) {\n logger.warn(\n 'Could not generate types with openapi-typescript. Install it for better type inference.',\n );\n logger.warn('Run: npm install -D openapi-typescript');\n\n // Generate basic types file\n await mkdir(dirname(typesPath), { recursive: true });\n await writeFile(\n typesPath,\n `// Auto-generated placeholder types\nexport interface paths {\n [path: string]: {\n [method: string]: {\n operationId?: string;\n parameters?: any;\n requestBody?: any;\n responses?: any;\n };\n };\n}\n`,\n );\n }\n\n // Extract operation info\n const operations = extractOperations(spec);\n\n // Generate TypeScript code\n const code = generateReactQueryCode(\n spec,\n operations,\n options.name || 'API',\n );\n\n // Write output\n const outputPath =\n options.output || join(process.cwd(), 'src', 'api', 'hooks.ts');\n await mkdir(dirname(outputPath), { recursive: true });\n await writeFile(outputPath, code);\n\n logger.log(`React Query hooks generated: ${outputPath}`);\n logger.log(`Generated ${operations.length} hooks`);\n } catch (error) {\n throw new Error(\n `React Query generation failed: ${(error as Error).message}`,\n );\n }\n}\n\ninterface OperationInfo {\n operationId: string;\n path: string;\n method: string;\n endpoint: string; // Full endpoint like 'GET /users/{id}'\n parameters?: Array<{ name: string; in: string; required?: boolean }>;\n requestBody?: boolean;\n responseType?: string;\n}\n\nfunction extractOperations(spec: OpenAPISpec): OperationInfo[] {\n const operations: OperationInfo[] = [];\n\n Object.entries(spec.paths).forEach(([path, methods]) => {\n Object.entries(methods).forEach(([method, operation]) => {\n if (operation.operationId) {\n operations.push({\n operationId: operation.operationId,\n path,\n method: method.toUpperCase(),\n endpoint: `${method.toUpperCase()} ${path}`,\n parameters: operation.parameters,\n requestBody: !!operation.requestBody,\n responseType: extractResponseType(operation),\n });\n }\n });\n });\n\n return operations;\n}\n\nfunction extractResponseType(operation: any): string {\n const responses = operation.responses;\n if (!responses) return 'unknown';\n\n const successResponse = responses['200'] || responses['201'];\n if (!successResponse?.content?.['application/json']?.schema) {\n return 'unknown';\n }\n\n // Basic type inference from schema\n const schema = successResponse.content['application/json'].schema;\n return schemaToTypeString(schema);\n}\n\nfunction schemaToTypeString(schema: any): string {\n if (!schema) return 'unknown';\n\n switch (schema.type) {\n case 'string':\n return 'string';\n case 'number':\n case 'integer':\n return 'number';\n case 'boolean':\n return 'boolean';\n case 'array':\n return `Array<${schemaToTypeString(schema.items)}>`;\n case 'object':\n if (schema.properties) {\n const props = Object.entries(schema.properties)\n .map(\n ([key, value]: [string, any]) =>\n `${key}: ${schemaToTypeString(value)}`,\n )\n .join('; ');\n return `{ ${props} }`;\n }\n return 'Record<string, unknown>';\n default:\n return 'unknown';\n }\n}\n\nfunction generateReactQueryCode(\n spec: OpenAPISpec,\n operations: OperationInfo[],\n apiName: string,\n): string {\n const imports = `import { createTypedQueryClient } from '@geekmidas/client';\nimport type { paths } from './openapi-types';\n\n// Create typed query client\nexport const ${apiName.toLowerCase()} = createTypedQueryClient<paths>({\n baseURL: process.env.NEXT_PUBLIC_API_URL || '/api',\n});\n\n// Export individual hooks for better DX\n`;\n\n const queryHooks = operations\n .filter((op) => op.method === 'GET')\n .map((op) => generateQueryHook(op, apiName))\n .join('\\n\\n');\n\n const mutationHooks = operations\n .filter((op) => op.method !== 'GET')\n .map((op) => generateMutationHook(op, apiName))\n .join('\\n\\n');\n\n const typeExports = generateTypeExports(operations);\n\n return `${imports}\n// Query Hooks\n${queryHooks}\n\n// Mutation Hooks\n${mutationHooks}\n\n// Type exports for convenience\n${typeExports}\n\n// Re-export the api for advanced usage\nexport { ${apiName.toLowerCase()} };\n`;\n}\n\nfunction generateQueryHook(op: OperationInfo, apiName: string): string {\n const hookName = `use${capitalize(op.operationId)}`;\n const endpoint = op.endpoint;\n const hasParams = op.parameters?.some((p) => p.in === 'path');\n const hasQuery = op.parameters?.some((p) => p.in === 'query');\n\n // Generate properly typed hook\n let params = '';\n let args = '';\n\n if (hasParams || hasQuery) {\n const paramParts: string[] = [];\n if (hasParams) {\n const pathParams =\n op.parameters?.filter((p) => p.in === 'path').map((p) => p.name) || [];\n paramParts.push(\n `params: { ${pathParams.map((p) => `${p}: string`).join('; ')} }`,\n );\n }\n if (hasQuery) {\n paramParts.push(`query?: Record<string, any>`);\n }\n params = `config: { ${paramParts.join('; ')} }, `;\n args = ', config';\n }\n\n return `export const ${hookName} = (\n ${params}options?: Parameters<typeof ${apiName.toLowerCase()}.useQuery>[2]\n) => {\n return ${apiName.toLowerCase()}.useQuery('${endpoint}' as any${args}, options);\n};`;\n}\n\nfunction generateMutationHook(op: OperationInfo, apiName: string): string {\n const hookName = `use${capitalize(op.operationId)}`;\n const endpoint = op.endpoint;\n\n return `export const ${hookName} = (\n options?: Parameters<typeof ${apiName.toLowerCase()}.useMutation>[1]\n) => {\n return ${apiName.toLowerCase()}.useMutation('${endpoint}' as any, options);\n};`;\n}\n\nfunction generateTypeExports(operations: OperationInfo[]): string {\n const exports = operations.map((op) => {\n const typeName = capitalize(op.operationId);\n const isQuery = op.method === 'GET';\n\n if (isQuery) {\n return `export type ${typeName}Response = Awaited<ReturnType<ReturnType<typeof use${typeName}>['data']>>;`;\n } else {\n return `export type ${typeName}Response = Awaited<ReturnType<ReturnType<typeof use${typeName}>['mutateAsync']>>;`;\n }\n });\n\n return exports.join('\\n');\n}\n\nfunction capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const require_chunk = require('./chunk-CsX-DzYB.cjs');
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
2
  const node_fs_promises = require_chunk.__toESM(require("node:fs/promises"));
3
3
  const node_path = require_chunk.__toESM(require("node:path"));
4
4
  const node_child_process = require_chunk.__toESM(require("node:child_process"));
@@ -23,6 +23,7 @@ async function generateReactQueryCommand(options = {}) {
23
23
  } catch (error) {
24
24
  logger.warn("Could not generate types with openapi-typescript. Install it for better type inference.");
25
25
  logger.warn("Run: npm install -D openapi-typescript");
26
+ await (0, node_fs_promises.mkdir)((0, node_path.dirname)(typesPath), { recursive: true });
26
27
  await (0, node_fs_promises.writeFile)(typesPath, `// Auto-generated placeholder types
27
28
  export interface paths {
28
29
  [path: string]: {
@@ -90,7 +91,7 @@ function schemaToTypeString(schema) {
90
91
  }
91
92
  }
92
93
  function generateReactQueryCode(spec, operations, apiName) {
93
- const imports = `import { createTypedQueryClient } from '@geekmidas/api/client';
94
+ const imports = `import { createTypedQueryClient } from '@geekmidas/client';
94
95
  import type { paths } from './openapi-types';
95
96
 
96
97
  // Create typed query client
@@ -169,4 +170,4 @@ Object.defineProperty(exports, 'generateReactQueryCommand', {
169
170
  return generateReactQueryCommand;
170
171
  }
171
172
  });
172
- //# sourceMappingURL=openapi-react-query-J0BzBHhN.cjs.map
173
+ //# sourceMappingURL=openapi-react-query-Dvjqx_Eo.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-react-query-Dvjqx_Eo.cjs","names":["exec","options: ReactQueryOptions","spec: OpenAPISpec","operations: OperationInfo[]","operation: any","schema: any","apiName: string","op: OperationInfo","paramParts: string[]","exports","str: string"],"sources":["../src/openapi-react-query.ts"],"sourcesContent":["#!/usr/bin/env -S npx tsx\n\nimport { exec } from 'node:child_process';\nimport { existsSync } from 'node:fs';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { promisify } from 'node:util';\n\nconst execAsync = promisify(exec);\n\ninterface ReactQueryOptions {\n input?: string;\n output?: string;\n name?: string;\n}\n\ninterface OpenAPISpec {\n openapi: string;\n info?: {\n title?: string;\n version?: string;\n };\n paths: Record<string, Record<string, any>>;\n}\n\nexport async function generateReactQueryCommand(\n options: ReactQueryOptions = {},\n): Promise<void> {\n const logger = console;\n\n try {\n // Read OpenAPI spec\n const inputPath = options.input || join(process.cwd(), 'openapi.json');\n\n if (!existsSync(inputPath)) {\n throw new Error(\n `OpenAPI spec not found at ${inputPath}. Run 'npx @geekmidas/cli openapi' first.`,\n );\n }\n\n const specContent = await readFile(inputPath, 'utf-8');\n const spec: OpenAPISpec = JSON.parse(specContent);\n\n // Generate TypeScript types from OpenAPI spec\n const outputDir = dirname(\n options.output || join(process.cwd(), 'src', 'api', 'hooks.ts'),\n );\n const typesPath = join(outputDir, 'openapi-types.d.ts');\n\n logger.log('Generating TypeScript types from OpenAPI spec...');\n\n try {\n // Use npx to run openapi-typescript\n await execAsync(\n `npx openapi-typescript \"${inputPath}\" -o \"${typesPath}\"`,\n { cwd: process.cwd() },\n );\n logger.log(`TypeScript types generated: ${typesPath}`);\n } catch (error) {\n logger.warn(\n 'Could not generate types with openapi-typescript. Install it for better type inference.',\n );\n logger.warn('Run: npm install -D openapi-typescript');\n\n // Generate basic types file\n await mkdir(dirname(typesPath), { recursive: true });\n await writeFile(\n typesPath,\n `// Auto-generated placeholder types\nexport interface paths {\n [path: string]: {\n [method: string]: {\n operationId?: string;\n parameters?: any;\n requestBody?: any;\n responses?: any;\n };\n };\n}\n`,\n );\n }\n\n // Extract operation info\n const operations = extractOperations(spec);\n\n // Generate TypeScript code\n const code = generateReactQueryCode(\n spec,\n operations,\n options.name || 'API',\n );\n\n // Write output\n const outputPath =\n options.output || join(process.cwd(), 'src', 'api', 'hooks.ts');\n await mkdir(dirname(outputPath), { recursive: true });\n await writeFile(outputPath, code);\n\n logger.log(`React Query hooks generated: ${outputPath}`);\n logger.log(`Generated ${operations.length} hooks`);\n } catch (error) {\n throw new Error(\n `React Query generation failed: ${(error as Error).message}`,\n );\n }\n}\n\ninterface OperationInfo {\n operationId: string;\n path: string;\n method: string;\n endpoint: string; // Full endpoint like 'GET /users/{id}'\n parameters?: Array<{ name: string; in: string; required?: boolean }>;\n requestBody?: boolean;\n responseType?: string;\n}\n\nfunction extractOperations(spec: OpenAPISpec): OperationInfo[] {\n const operations: OperationInfo[] = [];\n\n Object.entries(spec.paths).forEach(([path, methods]) => {\n Object.entries(methods).forEach(([method, operation]) => {\n if (operation.operationId) {\n operations.push({\n operationId: operation.operationId,\n path,\n method: method.toUpperCase(),\n endpoint: `${method.toUpperCase()} ${path}`,\n parameters: operation.parameters,\n requestBody: !!operation.requestBody,\n responseType: extractResponseType(operation),\n });\n }\n });\n });\n\n return operations;\n}\n\nfunction extractResponseType(operation: any): string {\n const responses = operation.responses;\n if (!responses) return 'unknown';\n\n const successResponse = responses['200'] || responses['201'];\n if (!successResponse?.content?.['application/json']?.schema) {\n return 'unknown';\n }\n\n // Basic type inference from schema\n const schema = successResponse.content['application/json'].schema;\n return schemaToTypeString(schema);\n}\n\nfunction schemaToTypeString(schema: any): string {\n if (!schema) return 'unknown';\n\n switch (schema.type) {\n case 'string':\n return 'string';\n case 'number':\n case 'integer':\n return 'number';\n case 'boolean':\n return 'boolean';\n case 'array':\n return `Array<${schemaToTypeString(schema.items)}>`;\n case 'object':\n if (schema.properties) {\n const props = Object.entries(schema.properties)\n .map(\n ([key, value]: [string, any]) =>\n `${key}: ${schemaToTypeString(value)}`,\n )\n .join('; ');\n return `{ ${props} }`;\n }\n return 'Record<string, unknown>';\n default:\n return 'unknown';\n }\n}\n\nfunction generateReactQueryCode(\n spec: OpenAPISpec,\n operations: OperationInfo[],\n apiName: string,\n): string {\n const imports = `import { createTypedQueryClient } from '@geekmidas/client';\nimport type { paths } from './openapi-types';\n\n// Create typed query client\nexport const ${apiName.toLowerCase()} = createTypedQueryClient<paths>({\n baseURL: process.env.NEXT_PUBLIC_API_URL || '/api',\n});\n\n// Export individual hooks for better DX\n`;\n\n const queryHooks = operations\n .filter((op) => op.method === 'GET')\n .map((op) => generateQueryHook(op, apiName))\n .join('\\n\\n');\n\n const mutationHooks = operations\n .filter((op) => op.method !== 'GET')\n .map((op) => generateMutationHook(op, apiName))\n .join('\\n\\n');\n\n const typeExports = generateTypeExports(operations);\n\n return `${imports}\n// Query Hooks\n${queryHooks}\n\n// Mutation Hooks\n${mutationHooks}\n\n// Type exports for convenience\n${typeExports}\n\n// Re-export the api for advanced usage\nexport { ${apiName.toLowerCase()} };\n`;\n}\n\nfunction generateQueryHook(op: OperationInfo, apiName: string): string {\n const hookName = `use${capitalize(op.operationId)}`;\n const endpoint = op.endpoint;\n const hasParams = op.parameters?.some((p) => p.in === 'path');\n const hasQuery = op.parameters?.some((p) => p.in === 'query');\n\n // Generate properly typed hook\n let params = '';\n let args = '';\n\n if (hasParams || hasQuery) {\n const paramParts: string[] = [];\n if (hasParams) {\n const pathParams =\n op.parameters?.filter((p) => p.in === 'path').map((p) => p.name) || [];\n paramParts.push(\n `params: { ${pathParams.map((p) => `${p}: string`).join('; ')} }`,\n );\n }\n if (hasQuery) {\n paramParts.push(`query?: Record<string, any>`);\n }\n params = `config: { ${paramParts.join('; ')} }, `;\n args = ', config';\n }\n\n return `export const ${hookName} = (\n ${params}options?: Parameters<typeof ${apiName.toLowerCase()}.useQuery>[2]\n) => {\n return ${apiName.toLowerCase()}.useQuery('${endpoint}' as any${args}, options);\n};`;\n}\n\nfunction generateMutationHook(op: OperationInfo, apiName: string): string {\n const hookName = `use${capitalize(op.operationId)}`;\n const endpoint = op.endpoint;\n\n return `export const ${hookName} = (\n options?: Parameters<typeof ${apiName.toLowerCase()}.useMutation>[1]\n) => {\n return ${apiName.toLowerCase()}.useMutation('${endpoint}' as any, options);\n};`;\n}\n\nfunction generateTypeExports(operations: OperationInfo[]): string {\n const exports = operations.map((op) => {\n const typeName = capitalize(op.operationId);\n const isQuery = op.method === 'GET';\n\n if (isQuery) {\n return `export type ${typeName}Response = Awaited<ReturnType<ReturnType<typeof use${typeName}>['data']>>;`;\n } else {\n return `export type ${typeName}Response = Awaited<ReturnType<ReturnType<typeof use${typeName}>['mutateAsync']>>;`;\n }\n });\n\n return exports.join('\\n');\n}\n\nfunction capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- const require_openapi_react_query = require('./openapi-react-query-J0BzBHhN.cjs');
2
+ const require_openapi_react_query = require('./openapi-react-query-Dvjqx_Eo.cjs');
3
3
 
4
4
  exports.generateReactQueryCommand = require_openapi_react_query.generateReactQueryCommand;
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- import { generateReactQueryCommand } from "./openapi-react-query-lgS7AVEz.mjs";
2
+ import { generateReactQueryCommand } from "./openapi-react-query-DbrWwQzb.mjs";
3
3
 
4
4
  export { generateReactQueryCommand };
package/dist/openapi.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- require('./config-RcNESK0T.cjs');
3
- require('./Generator-C3tYSTQY.cjs');
4
- require('./EndpointGenerator-Dj7AumHi.cjs');
5
- const require_openapi = require('./openapi-DW-qF3oW.cjs');
2
+ require('./config-D1EpSGk6.cjs');
3
+ require('./Generator-CDoEXCDg.cjs');
4
+ require('./EndpointGenerator-BbGrDiCP.cjs');
5
+ const require_openapi = require('./openapi-CMLr04cz.cjs');
6
6
 
7
7
  exports.openapiCommand = require_openapi.openapiCommand;
package/dist/openapi.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env -S npx tsx
2
- import "./config-CXxYmz_o.mjs";
3
- import "./Generator-CDt4pB3W.mjs";
4
- import "./EndpointGenerator-uBA1ixUw.mjs";
5
- import { openapiCommand } from "./openapi-BivnatiC.mjs";
2
+ import "./config-U-mdW-7Y.mjs";
3
+ import "./Generator-UanJW0_V.mjs";
4
+ import "./EndpointGenerator-BmZ9BxbO.mjs";
5
+ import { openapiCommand } from "./openapi-BQx3_JbM.mjs";
6
6
 
7
7
  export { openapiCommand };
@@ -111,4 +111,4 @@ Object.defineProperty(exports, 'resolveProviders', {
111
111
  return resolveProviders;
112
112
  }
113
113
  });
114
- //# sourceMappingURL=providerResolver-Cs-0YCaP.cjs.map
114
+ //# sourceMappingURL=providerResolver-DgvzNfP4.cjs.map