@loxtep/sdk 0.2.1 → 0.2.3
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/README.md
CHANGED
|
@@ -69,10 +69,15 @@ credentials for SigV4 on both REST and the bus.
|
|
|
69
69
|
bot_id: 'your-bot-id',
|
|
70
70
|
output_queue_name: 'your-ingest-queue',
|
|
71
71
|
});
|
|
72
|
-
writer.write({
|
|
72
|
+
writer.write({ customer_id: '123', name: 'Alice', email: 'alice@example.com' });
|
|
73
|
+
writer.write({ customer_id: '456', name: 'Bob', email: 'bob@example.com' });
|
|
73
74
|
await writer.close();
|
|
74
75
|
```
|
|
75
76
|
|
|
77
|
+
The `write()` method accepts your raw business object — the SDK handles
|
|
78
|
+
batching and delivery to the stream bus automatically. No event envelope
|
|
79
|
+
or metadata wrapper is needed.
|
|
80
|
+
|
|
76
81
|
5. **Stream config from the platform (optional)** — after login,
|
|
77
82
|
`await client.observe.stream_config()` returns stream resource names
|
|
78
83
|
needed for the data plane. Merge into
|
|
@@ -142,8 +147,8 @@ re-resolution on the next call.
|
|
|
142
147
|
|
|
143
148
|
`client.flows.get_writer(flow_id)` returns a **FlowWriter** with:
|
|
144
149
|
|
|
145
|
-
- **`write(event)`** – enqueues
|
|
146
|
-
control batch size or flush timing.
|
|
150
|
+
- **`write(event)`** – enqueues a raw business object. Batching is transparent:
|
|
151
|
+
you do not control batch size or flush timing.
|
|
147
152
|
- **`close()`** – flushes any buffered events and guarantees delivery (or
|
|
148
153
|
attempts to). Always call `close()` when done writing.
|
|
149
154
|
|
|
@@ -151,11 +156,12 @@ Example:
|
|
|
151
156
|
|
|
152
157
|
```ts
|
|
153
158
|
const writer = client.flows.get_writer(flowId, { bot_id: 'your-bot-id' });
|
|
154
|
-
writer.write({
|
|
155
|
-
writer.write({
|
|
159
|
+
writer.write({ customer_id: '123', name: 'Alice', email: 'alice@example.com' });
|
|
160
|
+
writer.write({ customer_id: '456', name: 'Bob', email: 'bob@example.com' });
|
|
156
161
|
await writer.close();
|
|
157
162
|
```
|
|
158
163
|
|
|
164
|
+
Pass your raw business objects — no envelope, no `id`/`payload` wrapper needed.
|
|
159
165
|
Buffered events flush on `close()` via the stream data plane to the resolved
|
|
160
166
|
output queue.
|
|
161
167
|
|
|
@@ -8,10 +8,10 @@ export interface LoginOptions {
|
|
|
8
8
|
mfa_code?: string;
|
|
9
9
|
organization_id?: string;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* Force console/terminal login (email + password + optional TOTP prompts).
|
|
12
|
+
* Use for CI/headless environments or when browser is unavailable.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
console?: boolean;
|
|
15
15
|
/** For tests: inject fetch to mock API. */
|
|
16
16
|
fetchFn?: typeof fetch;
|
|
17
17
|
/** For tests: config file path (default: env/file). */
|
|
@@ -24,7 +24,7 @@ export interface LoginOptions {
|
|
|
24
24
|
no_open?: boolean;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* Run login: by default opens a browser for OAuth login. Use --email/--password for headless/CI environments.
|
|
27
|
+
* Run login: by default opens a browser for OAuth login. Use --console or --email/--password for headless/CI environments.
|
|
28
28
|
*/
|
|
29
29
|
export declare function runLogin(options?: LoginOptions): Promise<void>;
|
|
30
30
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -23,11 +23,11 @@ function parseOptionalMfaInput(raw) {
|
|
|
23
23
|
throw new Error('Authenticator code must be exactly 6 digits, or press Enter if you do not use TOTP.');
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Run login: by default opens a browser for OAuth login. Use --email/--password for headless/CI environments.
|
|
26
|
+
* Run login: by default opens a browser for OAuth login. Use --console or --email/--password for headless/CI environments.
|
|
27
27
|
*/
|
|
28
28
|
export async function runLogin(options = {}) {
|
|
29
|
-
// Default to browser login
|
|
30
|
-
const useBrowser = options.
|
|
29
|
+
// Default to browser login unless --console or --email/--password forces console mode
|
|
30
|
+
const useBrowser = !options.console && !options.email && !options.password;
|
|
31
31
|
if (useBrowser) {
|
|
32
32
|
const config = await loadConfig(options.configFilePath);
|
|
33
33
|
const credentialsPath = options.credentialsPath ?? getCredentialsPath();
|
|
@@ -117,7 +117,7 @@ export async function runLogin(options = {}) {
|
|
|
117
117
|
const msg = err instanceof Error ? err.message : String(err);
|
|
118
118
|
console.error('Login failed:', msg);
|
|
119
119
|
if (/forbidden|403/i.test(msg)) {
|
|
120
|
-
console.error('Hint: try browser login with: npx loxtep login
|
|
120
|
+
console.error('Hint: try browser login with: npx loxtep login');
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
process.exitCode = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4BzE,yDAAyD;AACzD,SAAS,MAAM,CAAC,QAAgB;IAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wEAAwE;AACxE,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAwB,EAAE;IACvD,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -31,7 +31,7 @@ function printHelp() {
|
|
|
31
31
|
Usage: loxtep <command> [options]
|
|
32
32
|
|
|
33
33
|
Commands:
|
|
34
|
-
login Log in (
|
|
34
|
+
login Log in (opens browser by default). Use --console for terminal email/password/TOTP login.
|
|
35
35
|
logout Remove stored credentials
|
|
36
36
|
whoami Print current user and organization
|
|
37
37
|
init Print setup checklist (config + auth + docs pointers)
|
|
@@ -67,8 +67,8 @@ Commands:
|
|
|
67
67
|
|
|
68
68
|
Examples:
|
|
69
69
|
loxtep login
|
|
70
|
-
loxtep login --
|
|
71
|
-
loxtep login --
|
|
70
|
+
loxtep login --console
|
|
71
|
+
loxtep login --console --email you@ex.com --password '…' --mfa-code 123456
|
|
72
72
|
loxtep whoami
|
|
73
73
|
loxtep data-products list
|
|
74
74
|
loxtep flows list --project-id <project-id>
|
|
@@ -100,7 +100,7 @@ async function main() {
|
|
|
100
100
|
const mfaIdx = args.indexOf('--mfa-code');
|
|
101
101
|
const orgIdx = args.indexOf('--organization-id');
|
|
102
102
|
await runLogin({
|
|
103
|
-
|
|
103
|
+
console: args.includes('--console'),
|
|
104
104
|
email: emailIdx >= 0 ? args[emailIdx + 1] : undefined,
|
|
105
105
|
password: passwordIdx >= 0 ? args[passwordIdx + 1] : undefined,
|
|
106
106
|
mfa_code: mfaIdx >= 0 ? args[mfaIdx + 1] : undefined,
|