domainkit 0.19.0 → 0.20.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.
@@ -73,7 +73,11 @@ export interface Interface {
73
73
  readonly domain: string;
74
74
  readonly requirements?: ReadonlyArray<DnsRecord.Model>;
75
75
  }) => Fx<Readiness>;
76
- /** Merge host evidence into stored readiness without re-observing DNS. */
76
+ /**
77
+ * Merge host evidence into stored readiness without re-observing DNS. Before the first `observe`
78
+ * the readiness has no requirements, so it is never `ready`: `failed` when a host signal failed,
79
+ * otherwise `pending` with `nextCheckAt` set for the first observation.
80
+ */
77
81
  readonly attachEvidence: (input: {
78
82
  readonly domain: string;
79
83
  readonly evidence: ReadonlyArray<HostEvidence>;
@@ -162,7 +166,7 @@ declare const Observer_base: Context.Reference<ObserverShape>;
162
166
  */
163
167
  export declare class Observer extends Observer_base {
164
168
  }
165
- /** A requirement is satisfied by an exact match; an exclusive one is contradicted by any same-set record. */
169
+ /** A requirement is satisfied only when its exact match also meets its safety constraints. */
166
170
  export declare const statusAgainst: (record: DnsRecord.Model, observed: ReadonlyArray<DnsRecord.Observed>) => Storage.RequirementStatus;
167
171
  export declare const make: Effect.Effect<Interface, never, Storage.Service | Connect.Service | Resolver.Service>;
168
172
  export declare const layer: Layer.Layer<Service, never, Storage.Service | Connect.Service | Resolver.Service>;
@@ -0,0 +1,11 @@
1
+ import * as DnsRecord from "../DnsRecord.ts";
2
+ import type * as Plan from "../Plan.ts";
3
+ interface Collision {
4
+ readonly reason: Plan.Conflict["reason"];
5
+ readonly existing: ReadonlyArray<DnsRecord.Observed>;
6
+ }
7
+ /** Safety constraints precede exact matches in both planning and observation. */
8
+ export declare const collision: (record: DnsRecord.Model, observed: ReadonlyArray<DnsRecord.Observed>) => Collision | undefined;
9
+ /** Both sides' constraints apply, regardless of requirement order or canonical sorting. */
10
+ export declare const projectedCollision: (record: DnsRecord.Model, requirements: ReadonlyArray<DnsRecord.Model>) => Collision | undefined;
11
+ export {};
@@ -0,0 +1,2 @@
1
+ /** RFC 7208 version selection only; full SPF policy validation belongs to the host. */
2
+ export declare const isSpf: (value: string) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "domainkit",
3
- "version": "0.19.0",
3
+ "version": "0.20.1",
4
4
  "description": "Build reviewable DNS plans for custom domains in TypeScript",
5
5
  "keywords": [
6
6
  "custom-domains",
@@ -11,7 +11,7 @@
11
11
  "effect",
12
12
  "typescript"
13
13
  ],
14
- "homepage": "https://github.com/AryaLabsHQ/domainkit#readme",
14
+ "homepage": "https://domain-kit.dev",
15
15
  "bugs": {
16
16
  "url": "https://github.com/AryaLabsHQ/domainkit/issues"
17
17
  },
@@ -143,9 +143,9 @@
143
143
  "tldts": "^7.4.11"
144
144
  },
145
145
  "devDependencies": {
146
- "@effect/vitest": "4.0.0-rc.117",
146
+ "@effect/vitest": "4.0.0",
147
147
  "@types/bun": "1.4.0",
148
- "effect": "4.0.0-rc.117",
148
+ "effect": "4.0.0",
149
149
  "miniflare": "3.20250718.3",
150
150
  "tsdown": "0.22.14",
151
151
  "typescript": "7.0.2",
@@ -153,7 +153,7 @@
153
153
  "vitest": "5.0.1"
154
154
  },
155
155
  "peerDependencies": {
156
- "effect": ">=4.0.0-rc.117 <5.0.0"
156
+ "effect": ">=4.0.0 <5.0.0"
157
157
  },
158
158
  "engines": {
159
159
  "node": ">=24.10.0"