recker 1.0.9 → 1.0.10-alpha.bf846c8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/cli/handler.ts"],"names":[],"mappings":"AAwBA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,iBAqG1D"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/cli/handler.ts"],"names":[],"mappings":"AAwBA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,iBAqH1D"}
@@ -39,9 +39,23 @@ export async function handleRequest(options) {
39
39
  }
40
40
  let requestBody = undefined;
41
41
  if (options.body) {
42
- requestBody = JSON.stringify(options.body);
43
- if (!options.headers['Content-Type'] && !options.headers['content-type']) {
44
- options.headers['Content-Type'] = 'application/json';
42
+ if (typeof options.body === 'string') {
43
+ requestBody = options.body;
44
+ if (!options.headers['Content-Type'] && !options.headers['content-type']) {
45
+ try {
46
+ JSON.parse(options.body);
47
+ options.headers['Content-Type'] = 'application/json';
48
+ }
49
+ catch {
50
+ options.headers['Content-Type'] = 'text/plain';
51
+ }
52
+ }
53
+ }
54
+ else {
55
+ requestBody = JSON.stringify(options.body);
56
+ if (!options.headers['Content-Type'] && !options.headers['content-type']) {
57
+ options.headers['Content-Type'] = 'application/json';
58
+ }
45
59
  }
46
60
  }
47
61
  const response = await client.request(options.url, {
package/dist/cli/index.js CHANGED
@@ -1,6 +1,68 @@
1
1
  #!/usr/bin/env node
2
2
  import { program } from 'commander';
3
+ import { promises as fs } from 'node:fs';
4
+ import { join } from 'node:path';
3
5
  import pc from '../utils/colors.js';
6
+ async function readStdin() {
7
+ if (process.stdin.isTTY) {
8
+ return null;
9
+ }
10
+ return new Promise((resolve) => {
11
+ let data = '';
12
+ const timeout = setTimeout(() => {
13
+ resolve(null);
14
+ }, 100);
15
+ process.stdin.setEncoding('utf8');
16
+ process.stdin.on('data', (chunk) => {
17
+ clearTimeout(timeout);
18
+ data += chunk;
19
+ });
20
+ process.stdin.on('end', () => {
21
+ clearTimeout(timeout);
22
+ resolve(data.trim() || null);
23
+ });
24
+ process.stdin.on('error', () => {
25
+ clearTimeout(timeout);
26
+ resolve(null);
27
+ });
28
+ process.stdin.resume();
29
+ });
30
+ }
31
+ async function loadEnvFile(filePath) {
32
+ const envPath = typeof filePath === 'string' ? filePath : join(process.cwd(), '.env');
33
+ const envVars = {};
34
+ try {
35
+ const content = await fs.readFile(envPath, 'utf-8');
36
+ const lines = content.split('\n');
37
+ for (const line of lines) {
38
+ const trimmed = line.trim();
39
+ if (!trimmed || trimmed.startsWith('#'))
40
+ continue;
41
+ const match = trimmed.match(/^([^=]+)=(.*)$/);
42
+ if (match) {
43
+ const [, key, value] = match;
44
+ const cleanKey = key.trim();
45
+ let cleanValue = value.trim();
46
+ if ((cleanValue.startsWith('"') && cleanValue.endsWith('"')) ||
47
+ (cleanValue.startsWith("'") && cleanValue.endsWith("'"))) {
48
+ cleanValue = cleanValue.slice(1, -1);
49
+ }
50
+ envVars[cleanKey] = cleanValue;
51
+ process.env[cleanKey] = cleanValue;
52
+ }
53
+ }
54
+ console.log(pc.gray(`Loaded ${Object.keys(envVars).length} variables from ${envPath}`));
55
+ }
56
+ catch (error) {
57
+ if (error.code === 'ENOENT') {
58
+ console.log(pc.yellow(`Warning: No .env file found at ${envPath}`));
59
+ }
60
+ else {
61
+ console.log(pc.red(`Error loading .env: ${error.message}`));
62
+ }
63
+ }
64
+ return envVars;
65
+ }
4
66
  async function main() {
5
67
  const { handleRequest } = await import('./handler.js');
6
68
  const { resolvePreset } = await import('./presets.js');
@@ -51,7 +113,7 @@ async function main() {
51
113
  }
52
114
  if (!url) {
53
115
  url = arg;
54
- if (!hasPreset && !url.startsWith('http') && !url.startsWith('ws') && !url.startsWith('udp')) {
116
+ if (!hasPreset && !url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('ws://') && !url.startsWith('wss://') && !url.startsWith('udp://')) {
55
117
  url = `https://${url}`;
56
118
  }
57
119
  }
@@ -66,6 +128,7 @@ async function main() {
66
128
  .argument('[args...]', 'URL, Method, Headers (Key:Value), Data (key=value)')
67
129
  .option('-v, --verbose', 'Show full request/response details')
68
130
  .option('-j, --json', 'Force JSON content-type')
131
+ .option('-e, --env [path]', 'Load .env file from current directory or specified path')
69
132
  .addHelpText('after', `
70
133
  ${pc.bold(pc.yellow('Examples:'))}
71
134
  ${pc.green('$ rek httpbin.org/json')}
@@ -81,6 +144,10 @@ ${pc.bold(pc.yellow('Available Presets:'))}
81
144
  program.help();
82
145
  return;
83
146
  }
147
+ if (options.env !== undefined) {
148
+ await loadEnvFile(options.env);
149
+ }
150
+ const stdinData = await readStdin();
84
151
  let argsToParse = args;
85
152
  let presetConfig = undefined;
86
153
  if (args[0].startsWith('@')) {
@@ -116,11 +183,23 @@ ${pc.bold(pc.yellow('Available Presets:'))}
116
183
  return;
117
184
  }
118
185
  try {
186
+ let body = undefined;
187
+ if (stdinData) {
188
+ try {
189
+ body = JSON.parse(stdinData);
190
+ }
191
+ catch {
192
+ body = stdinData;
193
+ }
194
+ }
195
+ else if (Object.keys(data).length > 0) {
196
+ body = data;
197
+ }
119
198
  await handleRequest({
120
199
  method,
121
200
  url,
122
201
  headers,
123
- body: Object.keys(data).length > 0 ? data : undefined,
202
+ body,
124
203
  verbose: options.verbose,
125
204
  presetConfig
126
205
  });
@@ -5,6 +5,8 @@ export declare class RekShell {
5
5
  private baseUrl;
6
6
  private lastResponse;
7
7
  private variables;
8
+ private envVars;
9
+ private envLoaded;
8
10
  private initialized;
9
11
  private currentDoc;
10
12
  private currentDocUrl;
@@ -23,6 +25,8 @@ export declare class RekShell {
23
25
  private parseLine;
24
26
  private setBaseUrl;
25
27
  private setVariable;
28
+ private showVars;
29
+ loadEnvFile(filePath?: string): Promise<void>;
26
30
  private resolveVariables;
27
31
  private resolveUrl;
28
32
  private executeRequest;
@@ -38,6 +42,16 @@ export declare class RekShell {
38
42
  private runSelectHtml;
39
43
  private runSelectLinks;
40
44
  private runSelectImages;
45
+ private runSelectScripts;
46
+ private runSelectCSS;
47
+ private runSelectSourcemaps;
48
+ private runUnmap;
49
+ private runUnmapView;
50
+ private runUnmapSave;
51
+ private runBeautify;
52
+ private beautifyJS;
53
+ private beautifyCSS;
54
+ private runBeautifySave;
41
55
  private runSelectTable;
42
56
  private printHelp;
43
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/shell.ts"],"names":[],"mappings":"AAiCA,qBAAa,QAAQ;IACnB,OAAO,CAAC,EAAE,CAAsB;IAChC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,aAAa,CAAc;;YAWrB,iBAAiB;IAe/B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,SAAS;IAYJ,KAAK;IA8BlB,OAAO,CAAC,MAAM;YAKA,aAAa;YAwIb,kBAAkB;YAkBlB,SAAS;YAkBT,WAAW;IA0DzB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,UAAU;YAeJ,cAAc;YAyEd,QAAQ;YA8GR,MAAM;YA2DN,MAAM;YA2EN,OAAO;YA+DP,OAAO;YA0CP,QAAQ;YAwCR,SAAS;YAsCT,aAAa;YA8Bb,aAAa;YA+Bb,aAAa;YA6Bb,cAAc;YAkCd,eAAe;YAkCf,cAAc;IA8C5B,OAAO,CAAC,SAAS;CAyDlB"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/shell.ts"],"names":[],"mappings":"AAmCA,qBAAa,QAAQ;IACnB,OAAO,CAAC,EAAE,CAAsB;IAChC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,aAAa,CAAc;;YAWrB,iBAAiB;IAe/B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,SAAS;IAaJ,KAAK;IA8BlB,OAAO,CAAC,MAAM;YAKA,aAAa;YAmKb,kBAAkB;YAkBlB,SAAS;YAkBT,WAAW;IA0DzB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,QAAQ;IAoCV,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM;IA6CnC,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,UAAU;YAeJ,cAAc;YAyEd,QAAQ;YA8GR,MAAM;YA2DN,MAAM;YA2EN,OAAO;YA+DP,OAAO;YA0CP,QAAQ;YAoER,SAAS;YAsCT,aAAa;YA8Bb,aAAa;YA+Bb,aAAa;YA6Bb,cAAc;YAkCd,eAAe;YA+Ef,gBAAgB;YAmEhB,YAAY;YAiEZ,mBAAmB;YAsFnB,QAAQ;YA0FR,YAAY;YAoCZ,YAAY;YA6CZ,WAAW;IA6CzB,OAAO,CAAC,UAAU;IA4GlB,OAAO,CAAC,WAAW;YAgFL,eAAe;YAkBf,cAAc;IA8C5B,OAAO,CAAC,SAAS;CAkElB"}