domainkit 0.2.2 → 0.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.
Files changed (58) hide show
  1. package/README.md +26 -26
  2. package/dist/index.d.mts +639 -187
  3. package/dist/index.mjs +301 -300
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/promise.d.mts +464 -0
  6. package/dist/promise.mjs +636 -0
  7. package/dist/promise.mjs.map +1 -0
  8. package/dist/{resolver-CxE-VDw4.mjs → resolver-CvK7JoJM.mjs} +401 -54
  9. package/dist/resolver-CvK7JoJM.mjs.map +1 -0
  10. package/dist/{resolver-Dc0hwV-J.d.mts → resolver-uqe1h5Vz.d.mts} +1513 -25
  11. package/dist/testing.d.mts +4 -5
  12. package/dist/testing.mjs +17 -3
  13. package/dist/testing.mjs.map +1 -1
  14. package/dist/verify-BoWy70ew.mjs +2420 -0
  15. package/dist/verify-BoWy70ew.mjs.map +1 -0
  16. package/dist/{verify-Dls29YC-.d.mts → verify-CkgVrwyl.d.mts} +318 -21
  17. package/package.json +6 -30
  18. package/dist/auth-BR-19zj-.mjs +0 -738
  19. package/dist/auth-BR-19zj-.mjs.map +0 -1
  20. package/dist/auth-g-waCHcz.mjs +0 -671
  21. package/dist/auth-g-waCHcz.mjs.map +0 -1
  22. package/dist/authorization-OeaSR47S.mjs +0 -284
  23. package/dist/authorization-OeaSR47S.mjs.map +0 -1
  24. package/dist/canonical-json-CpvqGMcr.mjs +0 -57
  25. package/dist/canonical-json-CpvqGMcr.mjs.map +0 -1
  26. package/dist/cloudflare-BrZPU9li.d.mts +0 -32
  27. package/dist/cloudflare-CGmasR8A.mjs +0 -69
  28. package/dist/cloudflare-CGmasR8A.mjs.map +0 -1
  29. package/dist/cloudflare.d.mts +0 -3
  30. package/dist/cloudflare.mjs +0 -2
  31. package/dist/connection-BfkloPZy.d.mts +0 -186
  32. package/dist/connection-BwtOwpH6.mjs +0 -195
  33. package/dist/connection-BwtOwpH6.mjs.map +0 -1
  34. package/dist/connection-CjNQe_E-.mjs +0 -58
  35. package/dist/connection-CjNQe_E-.mjs.map +0 -1
  36. package/dist/connection-api-DNuEZ_jR.d.mts +0 -7
  37. package/dist/dns-record-BLeqo56C.mjs +0 -289
  38. package/dist/dns-record-BLeqo56C.mjs.map +0 -1
  39. package/dist/effect-cloudflare.d.mts +0 -2
  40. package/dist/effect-cloudflare.mjs +0 -2
  41. package/dist/effect-vercel.d.mts +0 -2
  42. package/dist/effect-vercel.mjs +0 -2
  43. package/dist/effect.d.mts +0 -36
  44. package/dist/effect.mjs +0 -51
  45. package/dist/effect.mjs.map +0 -1
  46. package/dist/index-BHWRTThN.d.mts +0 -159
  47. package/dist/index-D3PVknwE.d.mts +0 -145
  48. package/dist/resolver-CxE-VDw4.mjs.map +0 -1
  49. package/dist/vercel-BsNDu4Np.d.mts +0 -31
  50. package/dist/vercel-CfoJaaCu.mjs +0 -60
  51. package/dist/vercel-CfoJaaCu.mjs.map +0 -1
  52. package/dist/vercel.d.mts +0 -3
  53. package/dist/vercel.mjs +0 -2
  54. package/dist/verify-BKbvq7IN.mjs +0 -642
  55. package/dist/verify-BKbvq7IN.mjs.map +0 -1
  56. package/dist/zone-discovery-BPnH3sLU.d.mts +0 -1397
  57. package/dist/zones-DKHTpX9C.mjs +0 -19
  58. package/dist/zones-DKHTpX9C.mjs.map +0 -1
@@ -1,6 +1,9 @@
1
- import { Ft as DomainName, K as ProviderAuthorization, M as Connection, bt as DnsRecord, mt as Service$1, zt as Error } from "./zone-discovery-BPnH3sLU.mjs";
2
- import { a as Interface$1, c as Service$2, i as Error$1, n as AsyncInterface, o as Query, t as Answer } from "./resolver-Dc0hwV-J.mjs";
1
+ import { $ as InteractiveFlow, At as coversDomain, Bt as ProviderAuthorization, Ct as Connection, Dn as DomainName, Dt as StoredCredential, Et as Schema$1, Ft as validate, G as AuthenticationFailure, Gt as IntegrationMethod, H as Source, It as Capability, J as Continuation, Jt as OAuthClientConfiguration, K as BaseInput, Kt as Manifest, Mt as encode, Nt as includeDomains, Ot as assertGrant, Pt as removeDomain$1, Q as Failure, Qt as TokenValidation, St as AuthorizationError, Tn as Value, W as Authentication, X as Error, Xt as OAuthSubjectResolver, Y as ContinuationStore, Yt as OAuthMethod, Z as ExtendInput, a as Interface$4, at as StartResult, c as Service$1, ct as removeDomain, dt as Envelope, et as InteractiveStart, i as Error$3, in as Service$2, it as Requirements, jn as Error$2, jt as decode, kt as authorizationError, lt as start, n as AsyncInterface, nn as Error$1, nt as RemoveDomainInput, o as Query, ot as complete, q as CompleteInput, rn as Interface$3, rt as RemoveDomainResult, st as extend, t as Answer, tt as Method, un as DnsRecord, ut as Codec, wt as Grant } from "./resolver-uqe1h5Vz.mjs";
3
2
  import { Context, Data, Effect, Layer, Schema } from "effect";
3
+ import * as oauth from "oauth4webapi";
4
+ declare namespace connection_api_d_exports {
5
+ export { Authentication, AuthenticationFailure, AuthorizationError, BaseInput, CompleteInput, Connection, Method as ConnectionMethod, RemoveDomainResult as ConnectionRemoveDomainResult, StartResult as ConnectionStartResult, Continuation, ContinuationStore, Error, ExtendInput, Failure, Grant, InteractiveFlow, InteractiveStart, Method, RemoveDomainInput, RemoveDomainResult, Requirements, Schema$1 as Schema, StartResult, StoredCredential, assertGrant, authorizationError, complete, coversDomain, decode, encode, extend, includeDomains, removeDomain, removeDomain$1 as removeDomainFromGrant, start, validate };
6
+ }
4
7
  declare namespace diagnostic_d_exports {
5
8
  export { Category, Diagnostic, Fields, RetryAdvice, from };
6
9
  }
@@ -95,6 +98,300 @@ declare namespace zones_d_exports {
95
98
  export { candidates };
96
99
  }
97
100
  declare function candidates(input: string): ReadonlyArray<DomainName>;
101
+ //#endregion
102
+ //#region src/providers/cloudflare/protocol.d.ts
103
+ declare const Account$2: Schema.Struct<{
104
+ readonly id: Schema.String;
105
+ readonly name: Schema.String;
106
+ }>;
107
+ interface Account$2 extends Schema.Schema.Type<typeof Account$2> {}
108
+ declare namespace client_d_exports$1 {
109
+ export { Account$1 as Account, Fetch$2 as Fetch, Interface$2 as Interface, ListZonesInput$1 as ListZonesInput, Options$4 as Options, Zone$1 as Zone, discoverAuthorizationAccount, discovery$1 as discovery, make$5 as make, validateDomainToken };
110
+ }
111
+ type Fetch$2 = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
112
+ /** Configuration for an Effect-native Cloudflare authoritative-DNS client. */
113
+ interface Options$4 {
114
+ readonly accountId: string;
115
+ readonly baseUrl?: string;
116
+ /** Capabilities the host required when issuing or authorizing this credential. */
117
+ readonly capabilities: TokenValidation["capabilities"];
118
+ readonly fetch?: Fetch$2;
119
+ readonly token: Value;
120
+ readonly tokenKind?: "account" | "user";
121
+ }
122
+ interface ListZonesInput$1 {
123
+ readonly accountId?: string;
124
+ readonly name?: DomainName;
125
+ }
126
+ type Account$1 = Account$2;
127
+ /** A portable Cloudflare authoritative zone with normalized nameserver evidence. */
128
+ interface Zone$1 {
129
+ readonly accountId: string;
130
+ readonly id: string;
131
+ readonly name: DomainName;
132
+ readonly nameservers: ReadonlyArray<DomainName>;
133
+ readonly status: string | null;
134
+ }
135
+ interface Interface$2 extends Interface$3 {
136
+ readonly listAccounts: () => Effect.Effect<ReadonlyArray<Account$1>, Error$1>;
137
+ readonly listZones: (input?: ListZonesInput$1) => Effect.Effect<ReadonlyArray<Zone$1>, Error$1>;
138
+ readonly validateToken: () => Effect.Effect<TokenValidation, Error$1>;
139
+ }
140
+ /** Exposes Cloudflare zone lookup as the optional provider discovery capability. */
141
+ declare function discovery$1(client: Interface$2): Source;
142
+ interface CredentialOptions$1 {
143
+ readonly baseUrl?: string;
144
+ readonly fetch?: Fetch$2;
145
+ readonly token: Value;
146
+ }
147
+ interface DomainCredentialOptions extends CredentialOptions$1 {
148
+ readonly capabilities: TokenValidation["capabilities"];
149
+ readonly domain: DomainName;
150
+ readonly tokenKind?: "account" | "user";
151
+ }
152
+ declare const discoverAuthorizationAccount: (options: CredentialOptions$1 & {
153
+ readonly domain: DomainName;
154
+ }) => Effect.Effect<{
155
+ readonly id: string;
156
+ readonly name: string;
157
+ }, Error$1, never>;
158
+ declare const validateDomainToken: (options: DomainCredentialOptions) => Effect.Effect<{
159
+ accountId: string;
160
+ capabilities: readonly ("dns:read" | "dns:write")[];
161
+ expiresAt: Date | null;
162
+ scopes: never[];
163
+ }, Error$1, never>;
164
+ /** Creates an Effect-native Cloudflare client without owning the credential lifecycle. */
165
+ declare function make$5(options: Options$4): Interface$2;
166
+ declare namespace auth_d_exports$1 {
167
+ export { Context$2 as Context, CredentialTarget, OAuthFlowOptions, OAuthMethodOptions, SubjectResolverOptions, TokenConnectionOptions$1 as TokenConnectionOptions, TokenValidatorOptions, contextCodec$1 as contextCodec, manifest$1 as manifest, oauthAuthentication, oauthFlow, oauthMethod, subjectResolver, tokenConnectionMethod$1 as tokenConnectionMethod, tokenMethod$1 as tokenMethod, tokenValidator };
168
+ }
169
+ declare const Context$2: Schema.Struct<{
170
+ readonly tokenKind: Schema.Literals<readonly ["account", "user"]>;
171
+ }>;
172
+ type Context$2 = typeof Context$2.Type;
173
+ declare const contextCodec$1: Codec<{
174
+ readonly tokenKind: "account" | "user";
175
+ }>;
176
+ /** Describes Cloudflare's caller-created API-token authorization method. */
177
+ declare function tokenMethod$1(capabilities: TokenValidation["capabilities"]): Extract<Manifest["methods"][number], {
178
+ readonly _tag: "token";
179
+ }>;
180
+ interface OAuthMethodOptions {
181
+ /** Scope IDs assigned to the OAuth client by Cloudflare. */
182
+ readonly scopes: ReadonlyArray<string>;
183
+ /** Capabilities represented by those assigned scope IDs. */
184
+ readonly capabilities: TokenValidation["capabilities"];
185
+ readonly clientAuth: OAuthMethod["clientAuth"];
186
+ }
187
+ /** Describes a registered Cloudflare OAuth client and its assigned scope IDs. */
188
+ declare function oauthMethod(options: OAuthMethodOptions): OAuthMethod;
189
+ /** Creates the Cloudflare token and OAuth authorization manifest. */
190
+ declare function manifest$1(options: OAuthMethodOptions): Manifest;
191
+ type CredentialOptions = Omit<Options$4, "accountId" | "token" | "tokenKind">;
192
+ /** Selects an explicit Cloudflare account or discovers it from an authorized domain. */
193
+ type CredentialTarget = {
194
+ readonly accountId: string;
195
+ readonly domain?: never;
196
+ } | {
197
+ readonly accountId?: never;
198
+ readonly domain: DomainName;
199
+ };
200
+ type SubjectResolverOptions = CredentialOptions & CredentialTarget;
201
+ /** Configuration for validating a Cloudflare token against an account or authorized domain. */
202
+ type TokenValidatorOptions = CredentialOptions & ({
203
+ readonly accountId: string;
204
+ readonly domain?: never;
205
+ readonly tokenKind?: "account" | "user";
206
+ } | {
207
+ readonly accountId?: never;
208
+ readonly domain: DomainName;
209
+ readonly tokenKind?: "account" | "user";
210
+ });
211
+ /** Resolves the Cloudflare account selected by a completed OAuth grant. */
212
+ declare function subjectResolver(options: SubjectResolverOptions): OAuthSubjectResolver;
213
+ /** Creates a host callback that validates a Cloudflare API token. */
214
+ declare function tokenValidator(options: TokenValidatorOptions): (token: Value) => ReturnType<Interface$2["validateToken"]>;
215
+ type TokenConnectionOptions$1 = TokenValidatorOptions & {
216
+ readonly token: Value;
217
+ };
218
+ /** Creates a provider-independent token connection method backed by Cloudflare validation. */
219
+ declare function tokenConnectionMethod$1(options: TokenConnectionOptions$1): Extract<Method, {
220
+ readonly _tag: "Token";
221
+ }>;
222
+ /** Converts a completed Cloudflare OAuth grant into the canonical connection authentication. */
223
+ declare const oauthAuthentication: (options: SubjectResolverOptions & {
224
+ readonly accessToken: Value;
225
+ readonly tokens: oauth.TokenEndpointResponse;
226
+ }) => Effect.Effect<{
227
+ capabilityEvidence: {
228
+ capability: "dns:read" | "dns:write";
229
+ evidence: {
230
+ readonly _tag: "Introspected";
231
+ readonly observedAt: Date;
232
+ };
233
+ }[];
234
+ credential: {
235
+ accessToken: Value;
236
+ refreshToken: Value | null;
237
+ tokenType: Lowercase<string>;
238
+ };
239
+ expiresAt: Date | null;
240
+ providerAccountId: string;
241
+ providerContext: Envelope;
242
+ scopes: string[];
243
+ }, Error$2 | Error$1, never>;
244
+ type OAuthFlowOptions = SubjectResolverOptions & {
245
+ readonly client: OAuthClientConfiguration;
246
+ readonly clientAuth: OAuthMethod["clientAuth"];
247
+ readonly redirectUri: string;
248
+ readonly scopes: ReadonlyArray<string>;
249
+ };
250
+ /** Creates Cloudflare's OAuth implementation of the common interactive connection capability. */
251
+ declare function oauthFlow(options: OAuthFlowOptions): InteractiveFlow;
252
+ declare namespace index_d_exports$1 {
253
+ export { Account$1 as Account, auth_d_exports$1 as Auth, client_d_exports$1 as Client, Fetch$2 as Fetch, Interface$2 as Interface, ListZonesInput$1 as ListZonesInput, Options$4 as Options, Zone$1 as Zone, discovery$1 as discovery, make$5 as make };
254
+ }
255
+ declare namespace client_d_exports {
256
+ export { Account, AccountContext, Fetch$1 as Fetch, Interface$1 as Interface, ListZonesInput, Options$3 as Options, Zone, discovery, make$4 as make };
257
+ }
258
+ type Fetch$1 = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
259
+ /** Selects whether Vercel requests operate on a personal account or a team. */
260
+ type AccountContext = {
261
+ readonly _tag: "personal";
262
+ } | {
263
+ readonly _tag: "team";
264
+ readonly teamId: string;
265
+ };
266
+ /** Configuration for an Effect-native Vercel authoritative-DNS client. */
267
+ interface Options$3 {
268
+ readonly baseUrl?: string;
269
+ /** Capabilities the host required when issuing or authorizing this credential. */
270
+ readonly capabilities: TokenValidation["capabilities"];
271
+ readonly context: AccountContext;
272
+ readonly fetch?: Fetch$1;
273
+ readonly token: Value;
274
+ }
275
+ interface ListZonesInput {
276
+ readonly name?: DomainName;
277
+ }
278
+ /** A Vercel account visible to the supplied credential. */
279
+ interface Account {
280
+ readonly id: string;
281
+ readonly name: string;
282
+ readonly type: "personal" | "team";
283
+ }
284
+ /** A Vercel-managed authoritative zone with normalized nameserver evidence. */
285
+ interface Zone {
286
+ readonly accountId: string;
287
+ readonly id: string;
288
+ readonly name: DomainName;
289
+ readonly nameservers: ReadonlyArray<DomainName>;
290
+ readonly status: "active" | "pending";
291
+ }
292
+ interface Interface$1 extends Interface$3 {
293
+ readonly listAccounts: () => Effect.Effect<ReadonlyArray<Account>, Error$1>;
294
+ readonly listZones: (input?: ListZonesInput) => Effect.Effect<ReadonlyArray<Zone>, Error$1>;
295
+ readonly validateToken: () => Effect.Effect<TokenValidation, Error$1>;
296
+ }
297
+ /** Exposes Vercel zone lookup as the optional provider discovery capability. */
298
+ declare function discovery(client: Interface$1): Source;
299
+ /** Creates an Effect-native Vercel client without owning the credential lifecycle. */
300
+ declare function make$4(options: Options$3): Interface$1;
301
+ declare namespace auth_d_exports {
302
+ export { Context$1 as Context, ExchangeCodeOptions, IntegrationCredential, IntegrationFlowOptions, IntegrationMethodOptions, TokenConnectionOptions, contextCodec, exchangeCode, integrationAuthentication, integrationFlow, integrationMethod, manifest, tokenConnectionMethod, tokenMethod };
303
+ }
304
+ declare const Context$1: Schema.TaggedUnion<{
305
+ readonly personal: Schema.TaggedStruct<"personal", {
306
+ readonly installationId: Schema.NullOr<Schema.String>;
307
+ }>;
308
+ readonly team: Schema.TaggedStruct<"team", {
309
+ readonly installationId: Schema.NullOr<Schema.String>;
310
+ readonly teamId: Schema.String;
311
+ }>;
312
+ }>;
313
+ type Context$1 = typeof Context$1.Type;
314
+ declare const contextCodec: Codec<{
315
+ readonly _tag: "personal";
316
+ readonly installationId: string | null;
317
+ } | {
318
+ readonly _tag: "team";
319
+ readonly installationId: string | null;
320
+ readonly teamId: string;
321
+ }>;
322
+ /** Describes Vercel's caller-created personal access-token method. */
323
+ declare function tokenMethod(capabilities: TokenValidation["capabilities"]): Extract<Manifest["methods"][number], {
324
+ readonly _tag: "token";
325
+ }>;
326
+ interface IntegrationMethodOptions {
327
+ readonly capabilities: TokenValidation["capabilities"];
328
+ readonly slug: string;
329
+ }
330
+ /** Describes Vercel's provider-specific integration installation flow. */
331
+ declare function integrationMethod(options: IntegrationMethodOptions): IntegrationMethod;
332
+ /** Creates the Vercel token and integration authorization manifest. */
333
+ declare function manifest(options: IntegrationMethodOptions): Manifest;
334
+ interface ExchangeCodeOptions {
335
+ readonly baseUrl?: string;
336
+ readonly clientId: string;
337
+ readonly clientSecret: Value;
338
+ readonly code: Value;
339
+ readonly fetch?: Fetch$1;
340
+ readonly redirectUri: string;
341
+ }
342
+ interface IntegrationCredential {
343
+ readonly accessToken: Value;
344
+ readonly context: AccountContext;
345
+ readonly installationId: string | null;
346
+ readonly userId: string;
347
+ }
348
+ /** Exchanges Vercel's one-time integration code and preserves its account context. */
349
+ declare const exchangeCode: (options: ExchangeCodeOptions) => Effect.Effect<{
350
+ accessToken: Value;
351
+ context: {
352
+ readonly _tag: "personal";
353
+ readonly teamId?: never;
354
+ } | {
355
+ readonly _tag: "team";
356
+ readonly teamId: string;
357
+ };
358
+ installationId: string | null;
359
+ userId: string;
360
+ }, Error$1, never>;
361
+ interface TokenConnectionOptions extends Omit<Options$3, "token"> {
362
+ readonly token: Value;
363
+ }
364
+ /** Creates a provider-independent token connection method backed by Vercel validation. */
365
+ declare function tokenConnectionMethod(options: TokenConnectionOptions): Extract<Method, {
366
+ readonly _tag: "Token";
367
+ }>;
368
+ /** Converts a completed Vercel Integration exchange into canonical connection authentication. */
369
+ declare const integrationAuthentication: (options: ExchangeCodeOptions & {
370
+ readonly capabilities: ReadonlyArray<Capability>;
371
+ }) => Effect.Effect<{
372
+ capabilityEvidence: {
373
+ capability: "dns:read" | "dns:write";
374
+ evidence: {
375
+ readonly _tag: "Introspected";
376
+ readonly observedAt: Date;
377
+ };
378
+ }[];
379
+ credential: {
380
+ accessToken: Value;
381
+ refreshToken: null;
382
+ tokenType: string;
383
+ };
384
+ expiresAt: null;
385
+ providerAccountId: string;
386
+ providerContext: Envelope;
387
+ scopes: never[];
388
+ }, Error$2 | Error$1, never>;
389
+ interface IntegrationFlowOptions extends Omit<ExchangeCodeOptions, "code">, IntegrationMethodOptions {}
390
+ /** Creates Vercel Integration's implementation of the common interactive connection capability. */
391
+ declare function integrationFlow(options: IntegrationFlowOptions): InteractiveFlow;
392
+ declare namespace index_d_exports {
393
+ export { Account, AccountContext, auth_d_exports as Auth, client_d_exports as Client, Fetch$1 as Fetch, Interface$1 as Interface, ListZonesInput, Options$3 as Options, Zone, discovery, make$4 as make };
394
+ }
98
395
  declare namespace doh_d_exports {
99
396
  export { Fetch, Options$2 as Options, layer$2 as layer, make$3 as make, toAsync$2 as toAsync };
100
397
  }
@@ -104,8 +401,8 @@ interface Options$2 {
104
401
  readonly fetch?: Fetch;
105
402
  readonly timeoutMs?: number;
106
403
  }
107
- declare function make$3(options: Options$2): Interface$1;
108
- declare const layer$2: (options: Options$2) => Layer.Layer<Service$2>;
404
+ declare function make$3(options: Options$2): Interface$4;
405
+ declare const layer$2: (options: Options$2) => Layer.Layer<Service$1>;
109
406
  declare const toAsync$2: (options: Options$2) => AsyncInterface;
110
407
  declare namespace cloudflare_doh_d_exports {
111
408
  export { Options$1 as Options, layer$1 as layer, make$2 as make, toAsync$1 as toAsync };
@@ -113,8 +410,8 @@ declare namespace cloudflare_doh_d_exports {
113
410
  interface Options$1 extends Omit<Options$2, "endpoint"> {
114
411
  readonly endpoint?: string;
115
412
  }
116
- declare function make$2(options?: Options$1): Interface$1;
117
- declare const layer$1: (options?: Options$1) => Layer.Layer<Service$2>;
413
+ declare function make$2(options?: Options$1): Interface$4;
414
+ declare const layer$1: (options?: Options$1) => Layer.Layer<Service$1>;
118
415
  declare const toAsync$1: (options?: Options$1) => AsyncInterface;
119
416
  declare namespace google_doh_d_exports {
120
417
  export { Options, layer, make$1 as make, toAsync };
@@ -122,15 +419,15 @@ declare namespace google_doh_d_exports {
122
419
  interface Options extends Omit<Options$2, "endpoint"> {
123
420
  readonly endpoint?: string;
124
421
  }
125
- declare function make$1(options?: Options): Interface$1;
126
- declare const layer: (options?: Options) => Layer.Layer<Service$2>;
422
+ declare function make$1(options?: Options): Interface$4;
423
+ declare const layer: (options?: Options) => Layer.Layer<Service$1>;
127
424
  declare const toAsync: (options?: Options) => AsyncInterface;
128
425
  declare namespace resolver_pool_d_exports {
129
426
  export { DefaultOptions, Entry, Interface, Observation, Policy, Service, defaultLayer, defaultMake, make };
130
427
  }
131
428
  interface Entry {
132
429
  readonly id: string;
133
- readonly resolver: Interface$1;
430
+ readonly resolver: Interface$4;
134
431
  readonly timeoutMs?: number;
135
432
  }
136
433
  type Observation = Data.TaggedEnum<{
@@ -140,7 +437,7 @@ type Observation = Data.TaggedEnum<{
140
437
  };
141
438
  Failed: {
142
439
  readonly message: string;
143
- readonly reason: Exclude<Error$1["reason"], "timeout">;
440
+ readonly reason: Exclude<Error$3["reason"], "timeout">;
144
441
  readonly resolverId: string;
145
442
  };
146
443
  NoData: {
@@ -161,7 +458,7 @@ declare const Observation: {
161
458
  }> | Extract<{
162
459
  readonly _tag: "Failed";
163
460
  readonly message: string;
164
- readonly reason: Exclude<Error$1["reason"], "timeout">;
461
+ readonly reason: Exclude<Error$3["reason"], "timeout">;
165
462
  readonly resolverId: string;
166
463
  }, {
167
464
  readonly _tag: Tag;
@@ -185,7 +482,7 @@ declare const Observation: {
185
482
  } | {
186
483
  readonly _tag: "Failed";
187
484
  readonly message: string;
188
- readonly reason: Exclude<Error$1["reason"], "timeout">;
485
+ readonly reason: Exclude<Error$3["reason"], "timeout">;
189
486
  readonly resolverId: string;
190
487
  } | {
191
488
  readonly _tag: "NoData";
@@ -203,7 +500,7 @@ declare const Observation: {
203
500
  } | {
204
501
  readonly _tag: "Failed";
205
502
  readonly message: string;
206
- readonly reason: Exclude<Error$1["reason"], "timeout">;
503
+ readonly reason: Exclude<Error$3["reason"], "timeout">;
207
504
  readonly resolverId: string;
208
505
  } | {
209
506
  readonly _tag: "NoData";
@@ -220,7 +517,7 @@ declare const Observation: {
220
517
  } | {
221
518
  readonly _tag: "Failed";
222
519
  readonly message: string;
223
- readonly reason: Exclude<Error$1["reason"], "timeout">;
520
+ readonly reason: Exclude<Error$3["reason"], "timeout">;
224
521
  readonly resolverId: string;
225
522
  } | {
226
523
  readonly _tag: "NoData";
@@ -238,7 +535,7 @@ declare const Observation: {
238
535
  } | {
239
536
  readonly _tag: "Failed";
240
537
  readonly message: string;
241
- readonly reason: Exclude<Error$1["reason"], "timeout">;
538
+ readonly reason: Exclude<Error$3["reason"], "timeout">;
242
539
  readonly resolverId: string;
243
540
  } | {
244
541
  readonly _tag: "NoData";
@@ -257,7 +554,7 @@ declare const Observation: {
257
554
  readonly Failed: Data.TaggedEnum.ConstructorFrom<{
258
555
  readonly _tag: "Failed";
259
556
  readonly message: string;
260
- readonly reason: Exclude<Error$1["reason"], "timeout">;
557
+ readonly reason: Exclude<Error$3["reason"], "timeout">;
261
558
  readonly resolverId: string;
262
559
  }, "_tag">;
263
560
  readonly NoData: Data.TaggedEnum.ConstructorFrom<{
@@ -797,9 +1094,9 @@ declare const Result: {
797
1094
  readonly publicDns: PublicDnsObservation | null;
798
1095
  }, "_tag">;
799
1096
  };
800
- declare function observe(input: PublicOnlyConfig): Effect.Effect<Result, Error>;
801
- declare function observe(input: ProviderConfig): Effect.Effect<Result, Error, Service$1>;
802
- declare function observe(input: Config): Effect.Effect<Result, Error, Service$1>;
1097
+ declare function observe(input: PublicOnlyConfig): Effect.Effect<Result, Error$2>;
1098
+ declare function observe(input: ProviderConfig): Effect.Effect<Result, Error$2, Service$2>;
1099
+ declare function observe(input: Config): Effect.Effect<Result, Error$2, Service$2>;
803
1100
  //#endregion
804
- export { selection_d_exports as _, verify_d_exports as a, Policy as c, google_doh_d_exports as d, Options$1 as f, zones_d_exports as g, doh_d_exports as h, Result as i, resolver_pool_d_exports as l, Options$2 as m, PublicDns as n, DefaultOptions as o, cloudflare_doh_d_exports as p, PublicDnsObservation as r, Observation as s, ProviderObservation as t, Options as u, diagnostic_d_exports as v };
805
- //# sourceMappingURL=verify-Dls29YC-.d.mts.map
1101
+ export { Zone as A, tokenMethod$1 as B, manifest as C, Fetch$1 as D, AccountContext as E, SubjectResolverOptions as F, Zone$1 as G, Fetch$2 as H, TokenConnectionOptions$1 as I, diagnostic_d_exports as J, zones_d_exports as K, TokenValidatorOptions as L, CredentialTarget as M, OAuthFlowOptions as N, ListZonesInput as O, OAuthMethodOptions as P, manifest$1 as R, integrationMethod as S, Account as T, ListZonesInput$1 as U, Account$1 as V, Options$4 as W, connection_api_d_exports as Y, ExchangeCodeOptions as _, verify_d_exports as a, IntegrationMethodOptions as b, Policy as c, google_doh_d_exports as d, Options$1 as f, index_d_exports as g, doh_d_exports as h, Result as i, index_d_exports$1 as j, Options$3 as k, resolver_pool_d_exports as l, Options$2 as m, PublicDns as n, DefaultOptions as o, cloudflare_doh_d_exports as p, selection_d_exports as q, PublicDnsObservation as r, Observation as s, ProviderObservation as t, Options as u, IntegrationCredential as v, tokenMethod as w, TokenConnectionOptions as x, IntegrationFlowOptions as y, oauthMethod as z };
1102
+ //# sourceMappingURL=verify-CkgVrwyl.d.mts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "domainkit",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "Provider-independent DNS provisioning plans and authorization for TypeScript",
5
5
  "keywords": [
6
6
  "dns",
@@ -31,25 +31,9 @@
31
31
  "types": "./dist/index.d.mts",
32
32
  "import": "./dist/index.mjs"
33
33
  },
34
- "./effect": {
35
- "types": "./dist/effect.d.mts",
36
- "import": "./dist/effect.mjs"
37
- },
38
- "./cloudflare": {
39
- "types": "./dist/cloudflare.d.mts",
40
- "import": "./dist/cloudflare.mjs"
41
- },
42
- "./effect/cloudflare": {
43
- "types": "./dist/effect-cloudflare.d.mts",
44
- "import": "./dist/effect-cloudflare.mjs"
45
- },
46
- "./vercel": {
47
- "types": "./dist/vercel.d.mts",
48
- "import": "./dist/vercel.mjs"
49
- },
50
- "./effect/vercel": {
51
- "types": "./dist/effect-vercel.d.mts",
52
- "import": "./dist/effect-vercel.mjs"
34
+ "./promise": {
35
+ "types": "./dist/promise.d.mts",
36
+ "import": "./dist/promise.mjs"
53
37
  },
54
38
  "./testing": {
55
39
  "types": "./dist/testing.d.mts",
@@ -60,12 +44,7 @@
60
44
  "scripts": {
61
45
  "build": "tsdown",
62
46
  "clean": "rm -rf dist coverage",
63
- "format": "oxfmt --write .",
64
- "format:check": "oxfmt --check .",
65
- "lint": "oxlint --deny-warnings .",
66
- "lint:rules": "node --test tools/oxlint/*.test.js",
67
- "release:check": "bun run lint && bun run lint:rules && bun run format:check && bun run typecheck && bun run test && bun run build && bun run typecheck:examples && bun run test:artifact",
68
- "tegami": "bun scripts/tegami.mts",
47
+ "release:check": "bun run typecheck && bun run test && bun run build && bun run typecheck:examples && bun run test:artifact",
69
48
  "test": "vitest run --exclude tests/artifact/**/*.test.ts",
70
49
  "test:artifact": "vitest run tests/artifact",
71
50
  "test:consumers": "vitest run tests/artifact/packed-consumers.test.ts",
@@ -86,15 +65,12 @@
86
65
  "@types/bun": "1.4.0",
87
66
  "effect": "4.0.0-rc.112",
88
67
  "miniflare": "3.20250718.3",
89
- "oxfmt": "0.65.0",
90
- "oxlint": "1.80.0",
91
- "tegami": "1.4.0",
92
68
  "tsdown": "0.22.14",
93
69
  "typescript": "7.0.2",
94
70
  "vitest": "4.1.11"
95
71
  },
96
72
  "peerDependencies": {
97
- "effect": ">=4.0.0-rc.111 <5"
73
+ "effect": ">=4.0.0-rc.112 <5.0.0"
98
74
  },
99
75
  "engines": {
100
76
  "node": ">=24.10.0"