@glubean/sdk 0.2.0 → 0.2.2
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/configure/http.d.ts +25 -0
- package/dist/configure/http.d.ts.map +1 -0
- package/dist/configure/http.js +88 -0
- package/dist/configure/http.js.map +1 -0
- package/dist/configure/index.d.ts +78 -0
- package/dist/configure/index.d.ts.map +1 -0
- package/dist/configure/index.js +78 -0
- package/dist/configure/index.js.map +1 -0
- package/dist/configure/plugin.d.ts +23 -0
- package/dist/configure/plugin.d.ts.map +1 -0
- package/dist/configure/plugin.js +81 -0
- package/dist/configure/plugin.js.map +1 -0
- package/dist/configure/runtime.d.ts +24 -0
- package/dist/configure/runtime.d.ts.map +1 -0
- package/dist/configure/runtime.js +45 -0
- package/dist/configure/runtime.js.map +1 -0
- package/dist/configure/template.d.ts +22 -0
- package/dist/configure/template.d.ts.map +1 -0
- package/dist/configure/template.js +34 -0
- package/dist/configure/template.js.map +1 -0
- package/dist/configure/vars.d.ts +20 -0
- package/dist/configure/vars.d.ts.map +1 -0
- package/dist/configure/vars.js +48 -0
- package/dist/configure/vars.js.map +1 -0
- package/dist/configure.d.ts +2 -150
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +2 -562
- package/dist/configure.js.map +1 -1
- package/dist/contract-artifacts.d.ts +268 -0
- package/dist/contract-artifacts.d.ts.map +1 -0
- package/dist/contract-artifacts.js +402 -0
- package/dist/contract-artifacts.js.map +1 -0
- package/dist/contract-core.d.ts +33 -1
- package/dist/contract-core.d.ts.map +1 -1
- package/dist/contract-core.js +51 -2
- package/dist/contract-core.js.map +1 -1
- package/dist/contract-http/adapter.d.ts.map +1 -1
- package/dist/contract-http/adapter.js +22 -7
- package/dist/contract-http/adapter.js.map +1 -1
- package/dist/contract-http/factory.d.ts.map +1 -1
- package/dist/contract-http/factory.js +13 -14
- package/dist/contract-http/factory.js.map +1 -1
- package/dist/contract-http/index.d.ts +4 -3
- package/dist/contract-http/index.d.ts.map +1 -1
- package/dist/contract-http/index.js +4 -3
- package/dist/contract-http/index.js.map +1 -1
- package/dist/contract-http/openapi.d.ts +56 -7
- package/dist/contract-http/openapi.d.ts.map +1 -1
- package/dist/contract-http/openapi.js +371 -21
- package/dist/contract-http/openapi.js.map +1 -1
- package/dist/contract-http/types.d.ts +2 -13
- package/dist/contract-http/types.d.ts.map +1 -1
- package/dist/contract-types.d.ts +59 -10
- package/dist/contract-types.d.ts.map +1 -1
- package/dist/expect.d.ts +13 -0
- package/dist/expect.d.ts.map +1 -1
- package/dist/expect.js +18 -0
- package/dist/expect.js.map +1 -1
- package/dist/index.d.ts +61 -518
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -835
- package/dist/index.js.map +1 -1
- package/dist/install-plugin.d.ts +94 -0
- package/dist/install-plugin.d.ts.map +1 -0
- package/dist/install-plugin.js +222 -0
- package/dist/install-plugin.js.map +1 -0
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +6 -0
- package/dist/internal.js.map +1 -1
- package/dist/plugin.d.ts +45 -34
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +47 -34
- package/dist/plugin.js.map +1 -1
- package/dist/runtime-carrier.d.ts +142 -0
- package/dist/runtime-carrier.d.ts.map +1 -0
- package/dist/runtime-carrier.js +148 -0
- package/dist/runtime-carrier.js.map +1 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +2 -1
- package/dist/session.js.map +1 -1
- package/dist/test/builder.d.ts +249 -0
- package/dist/test/builder.d.ts.map +1 -0
- package/dist/test/builder.js +265 -0
- package/dist/test/builder.js.map +1 -0
- package/dist/test/each-builder.d.ts +244 -0
- package/dist/test/each-builder.d.ts.map +1 -0
- package/dist/test/each-builder.js +268 -0
- package/dist/test/each-builder.js.map +1 -0
- package/dist/test/extend.d.ts +59 -0
- package/dist/test/extend.d.ts.map +1 -0
- package/dist/test/extend.js +111 -0
- package/dist/test/extend.js.map +1 -0
- package/dist/test/utils.d.ts +39 -0
- package/dist/test/utils.d.ts.map +1 -0
- package/dist/test/utils.js +91 -0
- package/dist/test/utils.js.map +1 -0
- package/dist/types.d.ts +89 -111
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/contract-http/markdown.d.ts +0 -10
- package/dist/contract-http/markdown.d.ts.map +0 -1
- package/dist/contract-http/markdown.js +0 -21
- package/dist/contract-http/markdown.js.map +0 -1
package/dist/configure.d.ts
CHANGED
|
@@ -1,151 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* `configure()` lets you declare shared dependencies (vars, secrets, HTTP config)
|
|
5
|
-
* once at the top of a test file (or in a shared `configure.ts`), eliminating
|
|
6
|
-
* repetitive `ctx.vars.require()` / `ctx.secrets.require()` calls in every test.
|
|
7
|
-
*
|
|
8
|
-
* All returned values are **lazy** — they are not resolved until a test function
|
|
9
|
-
* actually accesses them at runtime. This means:
|
|
10
|
-
* - Safe to call at module top-level (scanner won't trigger resolution)
|
|
11
|
-
* - Safe to share across files via re-exports
|
|
12
|
-
* - Each test execution gets the correct runtime values
|
|
13
|
-
*
|
|
14
|
-
* @example Single file usage
|
|
15
|
-
* ```ts
|
|
16
|
-
* import { test, configure } from "@glubean/sdk";
|
|
17
|
-
*
|
|
18
|
-
* const { vars, secrets, http } = configure({
|
|
19
|
-
* vars: { baseUrl: "BASE_URL" },
|
|
20
|
-
* secrets: { apiKey: "API_KEY" },
|
|
21
|
-
* http: {
|
|
22
|
-
* prefixUrl: "BASE_URL",
|
|
23
|
-
* headers: { Authorization: "Bearer {{API_KEY}}" },
|
|
24
|
-
* },
|
|
25
|
-
* });
|
|
26
|
-
*
|
|
27
|
-
* export const listUsers = test("list-users", async (ctx) => {
|
|
28
|
-
* const res = await http.get("users").json();
|
|
29
|
-
* ctx.assert(res.length > 0, "has users");
|
|
30
|
-
* });
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* @example Shared across files (tests/configure.ts)
|
|
34
|
-
* ```ts
|
|
35
|
-
* // tests/configure.ts
|
|
36
|
-
* import { configure } from "@glubean/sdk";
|
|
37
|
-
* export const { vars, secrets, http } = configure({
|
|
38
|
-
* vars: { baseUrl: "BASE_URL" },
|
|
39
|
-
* http: { prefixUrl: "BASE_URL" },
|
|
40
|
-
* });
|
|
41
|
-
*
|
|
42
|
-
* // tests/users.test.ts
|
|
43
|
-
* import { test } from "@glubean/sdk";
|
|
44
|
-
* import { http } from "./configure.js";
|
|
45
|
-
*
|
|
46
|
-
* export const listUsers = test("list-users", async (ctx) => {
|
|
47
|
-
* const res = await http.get("users").json();
|
|
48
|
-
* });
|
|
49
|
-
* ```
|
|
50
|
-
*
|
|
51
|
-
* @module configure
|
|
52
|
-
*/
|
|
53
|
-
import type { ConfigureOptions, ConfigureResult, GlubeanAction, GlubeanEvent, GlubeanRuntime, Trace, HttpClient, PluginEntry, PluginFactory, ReservedConfigureKeys, ResolvePlugins } from "./types.js";
|
|
54
|
-
/**
|
|
55
|
-
* Shape of the runtime context injected by the harness before test execution.
|
|
56
|
-
* This is the internal shape — the public `GlubeanRuntime` in types.ts adds
|
|
57
|
-
* helper methods (requireVar, requireSecret, resolveTemplate) for plugins.
|
|
58
|
-
*
|
|
59
|
-
* @internal
|
|
60
|
-
*/
|
|
61
|
-
export interface InternalRuntime {
|
|
62
|
-
vars: Record<string, string>;
|
|
63
|
-
secrets: Record<string, string>;
|
|
64
|
-
/** Session key-value store. Set during session setup, available to all tests. */
|
|
65
|
-
session: Record<string, unknown>;
|
|
66
|
-
http: HttpClient;
|
|
67
|
-
test?: GlubeanRuntime["test"];
|
|
68
|
-
trace?(t: Trace): void;
|
|
69
|
-
action?(a: GlubeanAction): void;
|
|
70
|
-
event?(ev: GlubeanEvent): void;
|
|
71
|
-
log?(message: string, data?: unknown): void;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Resolve `{{key}}` template placeholders in a string.
|
|
75
|
-
*
|
|
76
|
-
* Resolution priority (first non-empty wins):
|
|
77
|
-
* 1. Session — dynamic values set during session setup (e.g., auth tokens)
|
|
78
|
-
* 2. Secrets — from `.env.secrets`
|
|
79
|
-
* 3. Vars — from `.env`
|
|
80
|
-
*
|
|
81
|
-
* Session values must be strings to resolve in templates. Non-string session
|
|
82
|
-
* values are silently skipped (they're still accessible via `ctx.session.get()`).
|
|
83
|
-
*
|
|
84
|
-
* This is used internally by `buildLazyHttp()` and exposed to plugin authors
|
|
85
|
-
* via `GlubeanRuntime.resolveTemplate()`.
|
|
86
|
-
*/
|
|
87
|
-
export declare function resolveTemplate(template: string, vars: Record<string, string>, secrets: Record<string, string>, session?: Record<string, unknown>): string;
|
|
88
|
-
/**
|
|
89
|
-
* Declare file-level dependencies on vars, secrets, and HTTP configuration.
|
|
90
|
-
*
|
|
91
|
-
* Returns lazy accessors that resolve at test runtime, not at import time.
|
|
92
|
-
* All declared vars and secrets are **required** — missing values cause the test
|
|
93
|
-
* to fail immediately with a clear error message.
|
|
94
|
-
*
|
|
95
|
-
* The returned objects can be shared across files via re-exports.
|
|
96
|
-
*
|
|
97
|
-
* @param options Configuration declaring vars, secrets, and HTTP defaults
|
|
98
|
-
* @returns Lazy accessors for vars, secrets, and a pre-configured HTTP client
|
|
99
|
-
*
|
|
100
|
-
* @example Basic usage
|
|
101
|
-
* ```ts
|
|
102
|
-
* import { test, configure } from "@glubean/sdk";
|
|
103
|
-
*
|
|
104
|
-
* const { vars, http } = configure({
|
|
105
|
-
* vars: { baseUrl: "base_url" },
|
|
106
|
-
* http: { prefixUrl: "base_url" },
|
|
107
|
-
* });
|
|
108
|
-
*
|
|
109
|
-
* export const listUsers = test("list-users", async (ctx) => {
|
|
110
|
-
* const res = await http.get("users").json();
|
|
111
|
-
* ctx.log(`Base URL: ${vars.baseUrl}`);
|
|
112
|
-
* });
|
|
113
|
-
* ```
|
|
114
|
-
*
|
|
115
|
-
* @example Full configuration with secrets
|
|
116
|
-
* ```ts
|
|
117
|
-
* const { vars, secrets, http } = configure({
|
|
118
|
-
* vars: { baseUrl: "base_url", orgId: "org_id" },
|
|
119
|
-
* secrets: { apiKey: "api_key" },
|
|
120
|
-
* http: {
|
|
121
|
-
* prefixUrl: "base_url",
|
|
122
|
-
* headers: { Authorization: "Bearer {{api_key}}" },
|
|
123
|
-
* },
|
|
124
|
-
* });
|
|
125
|
-
* ```
|
|
126
|
-
*
|
|
127
|
-
* @example Shared across test files
|
|
128
|
-
* ```ts
|
|
129
|
-
* // tests/configure.ts
|
|
130
|
-
* export const { vars, secrets, http } = configure({ ... });
|
|
131
|
-
*
|
|
132
|
-
* // tests/users.test.ts
|
|
133
|
-
* import { http, vars } from "./configure.js";
|
|
134
|
-
* ```
|
|
135
|
-
*/
|
|
136
|
-
export declare function configure<V extends Record<string, string> = Record<string, string>, S extends Record<string, string> = Record<string, string>, P extends Record<string, PluginFactory<any> | PluginEntry<any>> = Record<string, never>>(options: ConfigureOptions & {
|
|
137
|
-
vars?: {
|
|
138
|
-
[K in keyof V]: string;
|
|
139
|
-
};
|
|
140
|
-
secrets?: {
|
|
141
|
-
[K in keyof S]: string;
|
|
142
|
-
};
|
|
143
|
-
plugins?: P & {
|
|
144
|
-
[K in ReservedConfigureKeys]?: never;
|
|
145
|
-
};
|
|
146
|
-
}): ConfigureResult<{
|
|
147
|
-
[K in keyof V]: string;
|
|
148
|
-
}, {
|
|
149
|
-
[K in keyof S]: string;
|
|
150
|
-
}> & ResolvePlugins<P>;
|
|
1
|
+
export { configure, resolveTemplate } from "./configure/index.js";
|
|
2
|
+
export type { InternalRuntime } from "./configure/index.js";
|
|
151
3
|
//# sourceMappingURL=configure.d.ts.map
|
package/dist/configure.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|