@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.
Files changed (104) hide show
  1. package/dist/configure/http.d.ts +25 -0
  2. package/dist/configure/http.d.ts.map +1 -0
  3. package/dist/configure/http.js +88 -0
  4. package/dist/configure/http.js.map +1 -0
  5. package/dist/configure/index.d.ts +78 -0
  6. package/dist/configure/index.d.ts.map +1 -0
  7. package/dist/configure/index.js +78 -0
  8. package/dist/configure/index.js.map +1 -0
  9. package/dist/configure/plugin.d.ts +23 -0
  10. package/dist/configure/plugin.d.ts.map +1 -0
  11. package/dist/configure/plugin.js +81 -0
  12. package/dist/configure/plugin.js.map +1 -0
  13. package/dist/configure/runtime.d.ts +24 -0
  14. package/dist/configure/runtime.d.ts.map +1 -0
  15. package/dist/configure/runtime.js +45 -0
  16. package/dist/configure/runtime.js.map +1 -0
  17. package/dist/configure/template.d.ts +22 -0
  18. package/dist/configure/template.d.ts.map +1 -0
  19. package/dist/configure/template.js +34 -0
  20. package/dist/configure/template.js.map +1 -0
  21. package/dist/configure/vars.d.ts +20 -0
  22. package/dist/configure/vars.d.ts.map +1 -0
  23. package/dist/configure/vars.js +48 -0
  24. package/dist/configure/vars.js.map +1 -0
  25. package/dist/configure.d.ts +2 -150
  26. package/dist/configure.d.ts.map +1 -1
  27. package/dist/configure.js +2 -562
  28. package/dist/configure.js.map +1 -1
  29. package/dist/contract-artifacts.d.ts +268 -0
  30. package/dist/contract-artifacts.d.ts.map +1 -0
  31. package/dist/contract-artifacts.js +402 -0
  32. package/dist/contract-artifacts.js.map +1 -0
  33. package/dist/contract-core.d.ts +33 -1
  34. package/dist/contract-core.d.ts.map +1 -1
  35. package/dist/contract-core.js +51 -2
  36. package/dist/contract-core.js.map +1 -1
  37. package/dist/contract-http/adapter.d.ts.map +1 -1
  38. package/dist/contract-http/adapter.js +22 -7
  39. package/dist/contract-http/adapter.js.map +1 -1
  40. package/dist/contract-http/factory.d.ts.map +1 -1
  41. package/dist/contract-http/factory.js +13 -14
  42. package/dist/contract-http/factory.js.map +1 -1
  43. package/dist/contract-http/index.d.ts +4 -3
  44. package/dist/contract-http/index.d.ts.map +1 -1
  45. package/dist/contract-http/index.js +4 -3
  46. package/dist/contract-http/index.js.map +1 -1
  47. package/dist/contract-http/openapi.d.ts +56 -7
  48. package/dist/contract-http/openapi.d.ts.map +1 -1
  49. package/dist/contract-http/openapi.js +371 -21
  50. package/dist/contract-http/openapi.js.map +1 -1
  51. package/dist/contract-http/types.d.ts +2 -13
  52. package/dist/contract-http/types.d.ts.map +1 -1
  53. package/dist/contract-types.d.ts +59 -10
  54. package/dist/contract-types.d.ts.map +1 -1
  55. package/dist/expect.d.ts +13 -0
  56. package/dist/expect.d.ts.map +1 -1
  57. package/dist/expect.js +18 -0
  58. package/dist/expect.js.map +1 -1
  59. package/dist/index.d.ts +61 -518
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +26 -835
  62. package/dist/index.js.map +1 -1
  63. package/dist/install-plugin.d.ts +94 -0
  64. package/dist/install-plugin.d.ts.map +1 -0
  65. package/dist/install-plugin.js +222 -0
  66. package/dist/install-plugin.js.map +1 -0
  67. package/dist/internal.d.ts +2 -0
  68. package/dist/internal.d.ts.map +1 -1
  69. package/dist/internal.js +6 -0
  70. package/dist/internal.js.map +1 -1
  71. package/dist/plugin.d.ts +45 -34
  72. package/dist/plugin.d.ts.map +1 -1
  73. package/dist/plugin.js +47 -34
  74. package/dist/plugin.js.map +1 -1
  75. package/dist/runtime-carrier.d.ts +142 -0
  76. package/dist/runtime-carrier.d.ts.map +1 -0
  77. package/dist/runtime-carrier.js +148 -0
  78. package/dist/runtime-carrier.js.map +1 -0
  79. package/dist/session.d.ts.map +1 -1
  80. package/dist/session.js +2 -1
  81. package/dist/session.js.map +1 -1
  82. package/dist/test/builder.d.ts +249 -0
  83. package/dist/test/builder.d.ts.map +1 -0
  84. package/dist/test/builder.js +265 -0
  85. package/dist/test/builder.js.map +1 -0
  86. package/dist/test/each-builder.d.ts +244 -0
  87. package/dist/test/each-builder.d.ts.map +1 -0
  88. package/dist/test/each-builder.js +268 -0
  89. package/dist/test/each-builder.js.map +1 -0
  90. package/dist/test/extend.d.ts +59 -0
  91. package/dist/test/extend.d.ts.map +1 -0
  92. package/dist/test/extend.js +111 -0
  93. package/dist/test/extend.js.map +1 -0
  94. package/dist/test/utils.d.ts +39 -0
  95. package/dist/test/utils.d.ts.map +1 -0
  96. package/dist/test/utils.js +91 -0
  97. package/dist/test/utils.js.map +1 -0
  98. package/dist/types.d.ts +89 -111
  99. package/dist/types.d.ts.map +1 -1
  100. package/package.json +1 -1
  101. package/dist/contract-http/markdown.d.ts +0 -10
  102. package/dist/contract-http/markdown.d.ts.map +0 -1
  103. package/dist/contract-http/markdown.js +0 -21
  104. package/dist/contract-http/markdown.js.map +0 -1
@@ -1,151 +1,3 @@
1
- /**
2
- * File-level configuration for Glubean tests.
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
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,cAAc,EACd,KAAK,EACL,UAAU,EAGV,WAAW,EACX,aAAa,EAEb,qBAAqB,EACrB,cAAc,EACf,MAAM,YAAY,CAAC;AAMpB;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7C;AA4GD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAgBR;AAyaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAEzD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CACtE,MAAM,EACN,KAAK,CACN,EAED,OAAO,EAAE,gBAAgB,GAAG;IAC1B,IAAI,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;KAAE,CAAC;IAClC,OAAO,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;KAAE,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,GAAG;SAAG,CAAC,IAAI,qBAAqB,CAAC,CAAC,EAAE,KAAK;KAAE,CAAC;CACxD,GAEC,eAAe,CACf;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CAAE,EAC1B;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;CAAE,CAC3B,GACC,cAAc,CAAC,CAAC,CAAC,CAuBpB"}
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"}