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.
- package/dist/commands/api-test/whatsapp/send-message.js +35 -0
- package/dist/commands/config/get.d.ts +10 -0
- package/dist/commands/config/get.js +43 -0
- package/dist/commands/config/set.d.ts +11 -0
- package/dist/commands/config/set.js +33 -0
- package/dist/commands/github/apps/add-repo-to-installation-for-authenticated-user.js +31 -0
- package/dist/commands/github/apps/check-authorization.js +31 -0
- package/dist/commands/github/apps/check-token.js +30 -0
- package/dist/commands/github/apps/create-content-attachment.js +30 -0
- package/dist/commands/github/apps/create-from-manifest.js +30 -0
- package/dist/commands/github/apps/create-installation-access-token.js +30 -0
- package/dist/commands/github/apps/delete-authorization.js +30 -0
- package/dist/commands/github/apps/delete-installation.js +30 -0
- package/dist/commands/github/apps/delete-token.js +30 -0
- package/dist/commands/github/apps/get-authenticated.js +30 -0
- package/dist/commands/github/apps/get-by-slug.js +30 -0
- package/dist/commands/github/apps/get-installation.js +30 -0
- package/dist/commands/github/apps/get-org-installation.js +30 -0
- package/dist/commands/github/apps/get-repo-installation.js +31 -0
- package/dist/commands/github/apps/get-subscription-plan-for-account-stubbed.js +30 -0
- package/dist/commands/github/apps/get-subscription-plan-for-account.js +30 -0
- package/dist/commands/github/apps/get-user-installation.js +30 -0
- package/dist/commands/github/apps/get-webhook-config-for-app.js +30 -0
- package/dist/commands/github/apps/get-webhook-delivery.js +30 -0
- package/dist/commands/github/apps/list-accounts-for-plan-stubbed.js +34 -0
- package/dist/commands/github/apps/list-accounts-for-plan.js +34 -0
- package/dist/commands/github/apps/list-installation-repos-for-authenticated-user.js +32 -0
- package/dist/commands/github/apps/list-installations-for-authenticated-user.js +31 -0
- package/dist/commands/github/apps/list-installations.js +33 -0
- package/dist/commands/github/apps/list-plans-stubbed.js +31 -0
- package/dist/commands/github/apps/list-plans.js +31 -0
- package/dist/commands/github/apps/list-repos-accessible-to-installation.js +31 -0
- package/dist/commands/github/apps/list-subscriptions-for-authenticated-user-stubbed.js +31 -0
- package/dist/commands/github/apps/list-subscriptions-for-authenticated-user.js +31 -0
- package/dist/commands/github/apps/list-webhook-deliveries.js +32 -0
- package/dist/commands/github/apps/redeliver-webhook-delivery.js +30 -0
- package/dist/commands/github/apps/remove-repo-from-installation-for-authenticated-user.js +31 -0
- package/dist/commands/github/apps/reset-authorization.js +31 -0
- package/dist/commands/github/apps/reset-token.js +30 -0
- package/dist/commands/github/apps/revoke-authorization-for-application.js +31 -0
- package/dist/commands/github/apps/revoke-grant-for-application.js +31 -0
- package/dist/commands/github/apps/revoke-installation-access-token.js +30 -0
- package/dist/commands/github/apps/scope-token.js +30 -0
- package/dist/commands/github/apps/suspend-installation.js +30 -0
- package/dist/commands/github/apps/unsuspend-installation.js +30 -0
- package/dist/commands/github/apps/update-webhook-config-for-app.js +30 -0
- package/dist/commands/github/meta/get-all-versions.js +30 -0
- package/dist/commands/github/meta/get-octocat.js +30 -0
- package/dist/commands/github/meta/get-zen.js +30 -0
- package/dist/commands/github/meta/get.js +30 -0
- package/dist/commands/github/meta/root.js +30 -0
- package/dist/commands/github/oauth-authorizations/create-authorization.js +30 -0
- package/dist/commands/github/oauth-authorizations/delete-authorization.js +30 -0
- package/dist/commands/github/oauth-authorizations/delete-grant.js +30 -0
- package/dist/commands/github/oauth-authorizations/get-authorization.js +30 -0
- package/dist/commands/github/oauth-authorizations/get-grant.js +30 -0
- package/dist/commands/github/oauth-authorizations/get-or-create-authorization-for-app-and-fingerprint.js +31 -0
- package/dist/commands/github/oauth-authorizations/get-or-create-authorization-for-app.js +30 -0
- package/dist/commands/github/oauth-authorizations/list-authorizations.js +32 -0
- package/dist/commands/github/oauth-authorizations/list-grants.js +32 -0
- package/dist/commands/github/oauth-authorizations/update-authorization.js +30 -0
- package/dist/commands/msg91/hello/assign-ticket.js +40 -0
- package/dist/commands/msg91/hello/bot-analytics.js +33 -0
- package/dist/commands/msg91/hello/close-all-ticket-by-filter-id.js +35 -0
- package/dist/commands/msg91/hello/close-all-ticket.js +37 -0
- package/dist/commands/msg91/hello/create-draft-email.js +35 -0
- package/dist/commands/msg91/hello/create-update.js +35 -0
- package/dist/commands/msg91/hello/delete-draft-email.js +33 -0
- package/dist/commands/msg91/hello/delete-draft.js +33 -0
- package/dist/commands/msg91/hello/email-inbox-list-1.js +36 -0
- package/dist/commands/msg91/hello/get-agent-team-bot.js +38 -0
- package/dist/commands/msg91/hello/get-draft.js +34 -0
- package/dist/commands/msg91/hello/get-save-filter-list-by-filter-id.js +31 -0
- package/dist/commands/msg91/hello/get-tickets.js +37 -0
- package/dist/commands/msg91/hello/hello-mail-send-api.js +38 -0
- package/dist/commands/msg91/hello/hello-mail-send.js +37 -0
- package/dist/commands/msg91/hello/mail-ticket-list.js +34 -0
- package/dist/commands/msg91/hello/open-ticket.js +32 -0
- package/dist/commands/msg91/hello/saved-filter-list.js +32 -0
- package/dist/commands/msg91/hello/statechangeapi.js +34 -0
- package/dist/commands/msg91/hello/update-draft-email.js +36 -0
- package/dist/commands/msg91/hello/update-draft-whatsapp.js +36 -0
- package/dist/commands/msg91/sms/add-flow.js +32 -0
- package/dist/commands/msg91/sms/add-template-version.js +32 -0
- package/dist/commands/msg91/sms/get-template-versions.js +33 -0
- package/dist/commands/msg91/sms/mark-default.js +33 -0
- package/dist/commands/msg91/sms/send-sms.js +37 -0
- package/dist/commands/msg91/sms/sms-analytics.js +33 -0
- package/dist/commands/msg91/sms/sms-logs.js +36 -0
- package/dist/commands/msg91/whatsapp/approve-join-requests.js +33 -0
- package/dist/commands/msg91/whatsapp/check-whatsapp-prepaid-balance.js +34 -0
- package/dist/commands/msg91/whatsapp/create-group.js +35 -0
- package/dist/commands/msg91/whatsapp/create-whatsapp-template.js +37 -0
- package/dist/commands/msg91/whatsapp/delete-group.js +32 -0
- package/dist/commands/msg91/whatsapp/delete-template.js +33 -0
- package/dist/commands/msg91/whatsapp/edit-template-1.js +35 -0
- package/dist/commands/msg91/whatsapp/edit-template.js +35 -0
- package/dist/commands/msg91/whatsapp/get-group-by-id.js +33 -0
- package/dist/commands/msg91/whatsapp/get-group-by-number.js +33 -0
- package/dist/commands/msg91/whatsapp/get-joinee-request.js +32 -0
- package/dist/commands/msg91/whatsapp/get-templates.js +39 -0
- package/dist/commands/msg91/whatsapp/interactive-wa-send-location.js +35 -0
- package/dist/commands/msg91/whatsapp/interactive-whatsapp-buttons.js +36 -0
- package/dist/commands/msg91/whatsapp/interactive-whatsapp-list.js +36 -0
- package/dist/commands/msg91/whatsapp/multiple-product-catalog.js +36 -0
- package/dist/commands/msg91/whatsapp/reject-join-requests-1.js +33 -0
- package/dist/commands/msg91/whatsapp/remove-participants.js +33 -0
- package/dist/commands/msg91/whatsapp/reset-group-invite-link-1.js +33 -0
- package/dist/commands/msg91/whatsapp/send-message-in-text.js +36 -0
- package/dist/commands/msg91/whatsapp/send-message-on-group.js +36 -0
- package/dist/commands/msg91/whatsapp/send-payment-link-via-whatsapp-payments.js +37 -0
- package/dist/commands/msg91/whatsapp/single-product-catalog.js +36 -0
- package/dist/commands/msg91/whatsapp/template-bulk.js +35 -0
- package/dist/commands/msg91/whatsapp/to-fetch-whatsapp-number.js +32 -0
- package/dist/commands/msg91/whatsapp/whatsapp-analytics.js +33 -0
- package/dist/commands/msg91/whatsapp/whatsapp-logs.js +36 -0
- package/dist/commands/msg91/whatsapp/whatsapp-voice-call.js +34 -0
- package/dist/commands/reqres/project/get-all-project.js +32 -0
- package/dist/lib/codegen.js +10 -0
- package/dist/lib/http.js +27 -4
- package/dist/lib/types.d.ts +1 -0
- package/oclif.manifest.json +5525 -1
- 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
|
+
}
|
package/dist/lib/codegen.js
CHANGED
|
@@ -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
|
|
85
|
-
const
|
|
86
|
-
const
|
|
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,
|
package/dist/lib/types.d.ts
CHANGED