docstar-cli 1.2.1-beta.0 → 1.3.1

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 (123) hide show
  1. package/dist/commands/api-test/whatsapp/send-message.js +35 -0
  2. package/dist/commands/config/get.d.ts +10 -0
  3. package/dist/commands/config/get.js +43 -0
  4. package/dist/commands/config/set.d.ts +11 -0
  5. package/dist/commands/config/set.js +33 -0
  6. package/dist/commands/github/apps/add-repo-to-installation-for-authenticated-user.js +31 -0
  7. package/dist/commands/github/apps/check-authorization.js +31 -0
  8. package/dist/commands/github/apps/check-token.js +30 -0
  9. package/dist/commands/github/apps/create-content-attachment.js +30 -0
  10. package/dist/commands/github/apps/create-from-manifest.js +30 -0
  11. package/dist/commands/github/apps/create-installation-access-token.js +30 -0
  12. package/dist/commands/github/apps/delete-authorization.js +30 -0
  13. package/dist/commands/github/apps/delete-installation.js +30 -0
  14. package/dist/commands/github/apps/delete-token.js +30 -0
  15. package/dist/commands/github/apps/get-authenticated.js +30 -0
  16. package/dist/commands/github/apps/get-by-slug.js +30 -0
  17. package/dist/commands/github/apps/get-installation.js +30 -0
  18. package/dist/commands/github/apps/get-org-installation.js +30 -0
  19. package/dist/commands/github/apps/get-repo-installation.js +31 -0
  20. package/dist/commands/github/apps/get-subscription-plan-for-account-stubbed.js +30 -0
  21. package/dist/commands/github/apps/get-subscription-plan-for-account.js +30 -0
  22. package/dist/commands/github/apps/get-user-installation.js +30 -0
  23. package/dist/commands/github/apps/get-webhook-config-for-app.js +30 -0
  24. package/dist/commands/github/apps/get-webhook-delivery.js +30 -0
  25. package/dist/commands/github/apps/list-accounts-for-plan-stubbed.js +34 -0
  26. package/dist/commands/github/apps/list-accounts-for-plan.js +34 -0
  27. package/dist/commands/github/apps/list-installation-repos-for-authenticated-user.js +32 -0
  28. package/dist/commands/github/apps/list-installations-for-authenticated-user.js +31 -0
  29. package/dist/commands/github/apps/list-installations.js +33 -0
  30. package/dist/commands/github/apps/list-plans-stubbed.js +31 -0
  31. package/dist/commands/github/apps/list-plans.js +31 -0
  32. package/dist/commands/github/apps/list-repos-accessible-to-installation.js +31 -0
  33. package/dist/commands/github/apps/list-subscriptions-for-authenticated-user-stubbed.js +31 -0
  34. package/dist/commands/github/apps/list-subscriptions-for-authenticated-user.js +31 -0
  35. package/dist/commands/github/apps/list-webhook-deliveries.js +32 -0
  36. package/dist/commands/github/apps/redeliver-webhook-delivery.js +30 -0
  37. package/dist/commands/github/apps/remove-repo-from-installation-for-authenticated-user.js +31 -0
  38. package/dist/commands/github/apps/reset-authorization.js +31 -0
  39. package/dist/commands/github/apps/reset-token.js +30 -0
  40. package/dist/commands/github/apps/revoke-authorization-for-application.js +31 -0
  41. package/dist/commands/github/apps/revoke-grant-for-application.js +31 -0
  42. package/dist/commands/github/apps/revoke-installation-access-token.js +30 -0
  43. package/dist/commands/github/apps/scope-token.js +30 -0
  44. package/dist/commands/github/apps/suspend-installation.js +30 -0
  45. package/dist/commands/github/apps/unsuspend-installation.js +30 -0
  46. package/dist/commands/github/apps/update-webhook-config-for-app.js +30 -0
  47. package/dist/commands/github/meta/get-all-versions.js +30 -0
  48. package/dist/commands/github/meta/get-octocat.js +30 -0
  49. package/dist/commands/github/meta/get-zen.js +30 -0
  50. package/dist/commands/github/meta/get.js +30 -0
  51. package/dist/commands/github/meta/root.js +30 -0
  52. package/dist/commands/github/oauth-authorizations/create-authorization.js +30 -0
  53. package/dist/commands/github/oauth-authorizations/delete-authorization.js +30 -0
  54. package/dist/commands/github/oauth-authorizations/delete-grant.js +30 -0
  55. package/dist/commands/github/oauth-authorizations/get-authorization.js +30 -0
  56. package/dist/commands/github/oauth-authorizations/get-grant.js +30 -0
  57. package/dist/commands/github/oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint.js +31 -0
  58. package/dist/commands/github/oauth-authorizations/get-or-create-authorization-for-app.js +30 -0
  59. package/dist/commands/github/oauth-authorizations/list-authorizations.js +32 -0
  60. package/dist/commands/github/oauth-authorizations/list-grants.js +32 -0
  61. package/dist/commands/github/oauth-authorizations/update-authorization.js +30 -0
  62. package/dist/commands/msg91/hello/assign-ticket.js +40 -0
  63. package/dist/commands/msg91/hello/bot-analytics.js +33 -0
  64. package/dist/commands/msg91/hello/close-all-ticket-by-filter-id.js +35 -0
  65. package/dist/commands/msg91/hello/close-all-ticket.js +37 -0
  66. package/dist/commands/msg91/hello/create-draft-email.js +35 -0
  67. package/dist/commands/msg91/hello/create-update.js +35 -0
  68. package/dist/commands/msg91/hello/delete-draft-email.js +33 -0
  69. package/dist/commands/msg91/hello/delete-draft.js +33 -0
  70. package/dist/commands/msg91/hello/email-inbox-list-1.js +36 -0
  71. package/dist/commands/msg91/hello/get-agent-team-bot.js +38 -0
  72. package/dist/commands/msg91/hello/get-draft.js +34 -0
  73. package/dist/commands/msg91/hello/get-save-filter-list-by-filter-id.js +31 -0
  74. package/dist/commands/msg91/hello/get-tickets.js +37 -0
  75. package/dist/commands/msg91/hello/hello-mail-send-api.js +38 -0
  76. package/dist/commands/msg91/hello/hello-mail-send.js +37 -0
  77. package/dist/commands/msg91/hello/mail-ticket-list.js +34 -0
  78. package/dist/commands/msg91/hello/open-ticket.js +32 -0
  79. package/dist/commands/msg91/hello/saved-filter-list.js +32 -0
  80. package/dist/commands/msg91/hello/statechangeapi.js +34 -0
  81. package/dist/commands/msg91/hello/update-draft-email.js +36 -0
  82. package/dist/commands/msg91/hello/update-draft-whatsapp.js +36 -0
  83. package/dist/commands/msg91/sms/add-flow.js +32 -0
  84. package/dist/commands/msg91/sms/add-template-version.js +32 -0
  85. package/dist/commands/msg91/sms/get-template-versions.js +33 -0
  86. package/dist/commands/msg91/sms/mark-default.js +33 -0
  87. package/dist/commands/msg91/sms/send-sms.js +37 -0
  88. package/dist/commands/msg91/sms/sms-analytics.js +33 -0
  89. package/dist/commands/msg91/sms/sms-logs.js +36 -0
  90. package/dist/commands/msg91/whatsapp/approve-join-requests.js +33 -0
  91. package/dist/commands/msg91/whatsapp/check-whatsapp-prepaid-balance.js +34 -0
  92. package/dist/commands/msg91/whatsapp/create-group.js +35 -0
  93. package/dist/commands/msg91/whatsapp/create-whatsapp-template.js +37 -0
  94. package/dist/commands/msg91/whatsapp/delete-group.js +32 -0
  95. package/dist/commands/msg91/whatsapp/delete-template.js +33 -0
  96. package/dist/commands/msg91/whatsapp/edit-template-1.js +35 -0
  97. package/dist/commands/msg91/whatsapp/edit-template.js +35 -0
  98. package/dist/commands/msg91/whatsapp/get-group-by-id.js +33 -0
  99. package/dist/commands/msg91/whatsapp/get-group-by-number.js +33 -0
  100. package/dist/commands/msg91/whatsapp/get-joinee-request.js +32 -0
  101. package/dist/commands/msg91/whatsapp/get-templates.js +39 -0
  102. package/dist/commands/msg91/whatsapp/interactive-wa-send-location.js +35 -0
  103. package/dist/commands/msg91/whatsapp/interactive-whatsapp-buttons.js +36 -0
  104. package/dist/commands/msg91/whatsapp/interactive-whatsapp-list.js +36 -0
  105. package/dist/commands/msg91/whatsapp/multiple-product-catalog.js +36 -0
  106. package/dist/commands/msg91/whatsapp/reject-join-requests-1.js +33 -0
  107. package/dist/commands/msg91/whatsapp/remove-participants.js +33 -0
  108. package/dist/commands/msg91/whatsapp/reset-group-invite-link-1.js +33 -0
  109. package/dist/commands/msg91/whatsapp/send-message-in-text.js +36 -0
  110. package/dist/commands/msg91/whatsapp/send-message-on-group.js +36 -0
  111. package/dist/commands/msg91/whatsapp/send-payment-link-via-whatsapp-payments.js +37 -0
  112. package/dist/commands/msg91/whatsapp/single-product-catalog.js +36 -0
  113. package/dist/commands/msg91/whatsapp/template-bulk.js +35 -0
  114. package/dist/commands/msg91/whatsapp/to-fetch-whatsapp-number.js +32 -0
  115. package/dist/commands/msg91/whatsapp/whatsapp-analytics.js +33 -0
  116. package/dist/commands/msg91/whatsapp/whatsapp-logs.js +36 -0
  117. package/dist/commands/msg91/whatsapp/whatsapp-voice-call.js +34 -0
  118. package/dist/commands/reqres/project/get-all-project.js +32 -0
  119. package/dist/lib/codegen.js +10 -0
  120. package/dist/lib/http.js +27 -4
  121. package/dist/lib/types.d.ts +1 -0
  122. package/oclif.manifest.json +5525 -1
  123. package/package.json +2 -2
@@ -0,0 +1,34 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = ["status","call_hours"]
6
+
7
+ export default class Generated extends Command {
8
+ static description = "WhatsApp Voice Call"
9
+ static aliases = []
10
+ static flags = {
11
+ "status": Flags.string({description: "Required parameter"}),
12
+ "call_hours": Flags.string({description: "Required parameter"}),
13
+ "Content-Type": Flags.string({description: 'Header value'}),
14
+ "content-type": Flags.string({description: 'Header value'}),
15
+ "authkey": Flags.string({description: 'Header value'}),
16
+ }
17
+
18
+ async run() {
19
+ const {flags} = await this.parse(Generated)
20
+ const params = {}
21
+ for (const [key, value] of Object.entries(flags)) {
22
+ if (value !== undefined) params[key] = value
23
+ }
24
+
25
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
26
+
27
+ try {
28
+ const result = await executeCliCommand("msg91", "whatsapp", "whatsapp-voice-call", params)
29
+ this.log(JSON.stringify(result, null, 2))
30
+ } catch (error) {
31
+ this.error(error.message)
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,32 @@
1
+ import {Command, Flags} from '@oclif/core'
2
+ import {executeCliCommand} from '../../../lib/http.js'
3
+ import {promptForMissingParams} from '../../../lib/prompt.js'
4
+
5
+ const REQUIRED_PARAMS = []
6
+
7
+ export default class Generated extends Command {
8
+ static description = "Get all project "
9
+ static aliases = []
10
+ static flags = {
11
+ "project_id": Flags.string({description: "Optional parameter"}),
12
+ "x-api-key": Flags.string({description: 'Header value'}),
13
+ "X-Reqres-Env": Flags.string({description: 'Header value'}),
14
+ }
15
+
16
+ async run() {
17
+ const {flags} = await this.parse(Generated)
18
+ const params = {}
19
+ for (const [key, value] of Object.entries(flags)) {
20
+ if (value !== undefined) params[key] = value
21
+ }
22
+
23
+ Object.assign(params, await promptForMissingParams(REQUIRED_PARAMS, params))
24
+
25
+ try {
26
+ const result = await executeCliCommand("reqres", "project", "get-all-project", params)
27
+ this.log(JSON.stringify(result, null, 2))
28
+ } catch (error) {
29
+ this.error(error.message)
30
+ }
31
+ }
32
+ }
@@ -7,11 +7,21 @@ const flagLine = (name, required) =>
7
7
  // that safely for embedding in generated source; naive string interpolation does not and can
8
8
  // produce invalid JS.
9
9
  ` ${JSON.stringify(name)}: Flags.string({description: ${JSON.stringify(`${required ? 'Required' : 'Optional'} parameter`)}}),`;
10
+ // Header names configured in the docs editor (e.g. `authkey`) aren't part of `cli.parameters`,
11
+ // so without this they can never be overridden from the CLI and requests are stuck with
12
+ // whatever placeholder/value is baked into the cached module JSON. Expose them as flags too,
13
+ // skipping any name that's already a parameter flag (that flag's value already reaches
14
+ // `buildHeaders` via `params[key]`) or isn't a valid flag name.
15
+ const headerFlagNames = (endpoint) => {
16
+ const paramNames = new Set([...endpoint.cli.parameters.required, ...endpoint.cli.parameters.optional]);
17
+ return Object.keys(endpoint.headers || {}).filter((name) => /^[A-Za-z][\w-]*$/.test(name) && !paramNames.has(name));
18
+ };
10
19
  const commandFileContent = (cliName, modulePathSegment, endpoint) => {
11
20
  const { cli } = endpoint;
12
21
  const flagLines = [
13
22
  ...cli.parameters.required.map((name) => flagLine(name, true)),
14
23
  ...cli.parameters.optional.map((name) => flagLine(name, false)),
24
+ ...headerFlagNames(endpoint).map((name) => ` ${JSON.stringify(name)}: Flags.string({description: 'Header value'}),`),
15
25
  ].join('\n');
16
26
  return `import {Command, Flags} from '@oclif/core'
17
27
  import {executeCliCommand} from '../../../lib/http.js'
package/dist/lib/http.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { readFile } from 'node:fs/promises';
2
- import { modulePath } from './paths.js';
2
+ import { configPath, modulePath } from './paths.js';
3
3
  // Endpoint fields come from a rich-text editor and may be wrapped in
4
4
  // `<span text-block="true">...</span>`-style markup; unwrap to the raw value.
5
5
  export const stripHtml = (value) => (value ?? '').replaceAll(/<[^>]*>/g, '');
@@ -8,6 +8,17 @@ export const loadModule = async (cliName, modulePathSegment) => {
8
8
  const raw = await readFile(modulePath(cliName, modulePathSegment), 'utf8');
9
9
  return JSON.parse(raw);
10
10
  };
11
+ // Lets a value like `authkey` be saved once (`docstar-cli config set <cliName> authkey <value>`)
12
+ // instead of being passed on every command line; an explicit flag for the same name still wins.
13
+ const loadCredentials = async (cliName) => {
14
+ try {
15
+ const savedConfig = JSON.parse(await readFile(configPath(), 'utf8'));
16
+ return savedConfig.collections.find((collection) => collection.cliName === cliName)?.credentials || {};
17
+ }
18
+ catch {
19
+ return {};
20
+ }
21
+ };
11
22
  export const findEndpoint = (moduleJson, commandName) => moduleJson.endpoints.find((endpoint) => endpoint.cli.command.name === commandName || endpoint.cli.command.aliases.includes(commandName));
12
23
  const buildUrl = (endpoint, params) => {
13
24
  const baseUrl = stripHtml(endpoint.baseUrl);
@@ -56,6 +67,16 @@ const coerceToTemplateType = (existingValue, rawValue) => {
56
67
  }
57
68
  return rawValue.split(',').map((item) => item.trim());
58
69
  }
70
+ if (existingValue !== null && typeof existingValue === 'object') {
71
+ try {
72
+ const parsed = JSON.parse(rawValue);
73
+ if (typeof parsed === 'object' && parsed !== null)
74
+ return parsed;
75
+ }
76
+ catch {
77
+ // not a JSON object literal — fall through to the raw string
78
+ }
79
+ }
59
80
  return rawValue;
60
81
  };
61
82
  const buildBody = (endpoint, params) => {
@@ -81,9 +102,11 @@ export const executeCliCommand = async (cliName, modulePathSegment, commandName,
81
102
  if (!endpoint) {
82
103
  throw new Error(`No endpoint found for command "${commandName}" in module "${cliName} ${modulePathSegment}"`);
83
104
  }
84
- const url = buildUrl(endpoint, params);
85
- const headers = buildHeaders(endpoint, params);
86
- const body = buildBody(endpoint, params);
105
+ const credentials = await loadCredentials(cliName);
106
+ const effectiveParams = { ...credentials, ...params };
107
+ const url = buildUrl(endpoint, effectiveParams);
108
+ const headers = buildHeaders(endpoint, effectiveParams);
109
+ const body = buildBody(endpoint, effectiveParams);
87
110
  const response = await fetch(url, {
88
111
  body,
89
112
  headers,
@@ -54,6 +54,7 @@ export type CollectionConfig = {
54
54
  collectionId: string | null;
55
55
  modules: ModuleSummary[];
56
56
  updatedAt: string;
57
+ credentials?: Record<string, string>;
57
58
  };
58
59
  export type SavedConfig = {
59
60
  collections: CollectionConfig[];