@wenathlan/argan 2.0.167 → 2.0.168
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/package.json +40 -43
- package/test/family.test.ts +7 -0
- package/test/zones.test.ts +63 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wenathlan/argan",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.168",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "argan is the DNS and gateway library of the wenathlan family: zones, records, dnssec and handshake — the system network library whose site shares the unified database. The envelope distributes the documentation set, the zero-build site and the tests directory as one package.",
|
|
6
6
|
"license": "GPL-3.0-only",
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"restore:entry": "node -e \"const{readFileSync}=require('node:fs');const{execSync}=require('node:child_process');const script=/script[^>]*App\\.tsx/;const triad=/family=Inter[\\s\\S]*Geist\\+Mono/;const face=(h)=>script.test(h)&&triad.test(h);if(face(readFileSync('index.html','utf8'))){console.log('index.html already rides the source face');process.exit(0)}if(!face(execSync('git show HEAD:./index.html',{encoding:'utf8'}))){console.error('refusing: HEAD index.html is not the canonical source face yet (script App.tsx + the font triad) - land the source-face fix first; nothing was touched');process.exit(1)}execSync('git checkout -- index.html',{stdio:'inherit'});console.log('index.html restored from HEAD (the source face)')\""
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@ai-sdk/openai": "^4.0.
|
|
19
|
-
"@ai-sdk/openai-compatible": "^3.0.
|
|
20
|
-
"@ai-sdk/provider-utils": "^5.0.
|
|
18
|
+
"@ai-sdk/openai": "^4.0.111",
|
|
19
|
+
"@ai-sdk/openai-compatible": "^3.0.87",
|
|
20
|
+
"@ai-sdk/provider-utils": "^5.0.76",
|
|
21
21
|
"@anthropic-ai/sdk": "^1.6.0",
|
|
22
22
|
"@biomejs/biome": "^2.6.6",
|
|
23
23
|
"@capacitor/android": "^8.6.0",
|
|
@@ -87,15 +87,15 @@
|
|
|
87
87
|
"@types/react-dom": "^19.3.0",
|
|
88
88
|
"@types/three": "^0.187.0",
|
|
89
89
|
"@vitejs/plugin-react": "^6.2.1",
|
|
90
|
-
"@wenathlan/argan": "~2.0.
|
|
91
|
-
"@wenathlan/cadria": "~2.0.
|
|
92
|
-
"@wenathlan/debonair": "~2.0.
|
|
93
|
-
"@wenathlan/devthink": "~2.0.
|
|
94
|
-
"@wenathlan/getry": "~2.0.
|
|
95
|
-
"@wenathlan/saddle": "~2.0.
|
|
96
|
-
"@wenathlan/vault": "~2.0.
|
|
90
|
+
"@wenathlan/argan": "~2.0.167",
|
|
91
|
+
"@wenathlan/cadria": "~2.0.167",
|
|
92
|
+
"@wenathlan/debonair": "~2.0.167",
|
|
93
|
+
"@wenathlan/devthink": "~2.0.167",
|
|
94
|
+
"@wenathlan/getry": "~2.0.167",
|
|
95
|
+
"@wenathlan/saddle": "~2.0.167",
|
|
96
|
+
"@wenathlan/vault": "~2.0.167",
|
|
97
97
|
"add": "^2.0.9",
|
|
98
|
-
"ai": "^7.0.
|
|
98
|
+
"ai": "^7.0.165",
|
|
99
99
|
"autoprefixer": "^10.6.2",
|
|
100
100
|
"axios": "^1.21.0",
|
|
101
101
|
"baseline-browser-mapping": "^2.11.35",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"class-variance-authority": "^0.7.1",
|
|
107
107
|
"clsx": "^2.1.1",
|
|
108
108
|
"cmdk": "^1.1.1",
|
|
109
|
-
"commander": "^15.
|
|
109
|
+
"commander": "^15.1.0",
|
|
110
110
|
"date-fns": "^4.4.0",
|
|
111
111
|
"deepmerge-ts": "^8.0.2",
|
|
112
112
|
"dockerode": "^5.0.1",
|
|
@@ -124,13 +124,12 @@
|
|
|
124
124
|
"framer-motion": "^14.10.1",
|
|
125
125
|
"glob": "^14.0.4",
|
|
126
126
|
"gsap": "^3.15.1",
|
|
127
|
-
"hono": "^4.13.
|
|
127
|
+
"hono": "^4.13.17",
|
|
128
128
|
"ink": "^8.0.0",
|
|
129
129
|
"input-otp": "^1.5.0",
|
|
130
130
|
"js-yaml": "^5.5.0",
|
|
131
131
|
"jsdom": "^31.0.0",
|
|
132
132
|
"katex": "^0.19.1",
|
|
133
|
-
"lucide-react": "^1.70.0",
|
|
134
133
|
"minimatch": "^11.0.5",
|
|
135
134
|
"motion": "^14.10.1",
|
|
136
135
|
"mysql2": "^3.24.6",
|
|
@@ -189,9 +188,9 @@
|
|
|
189
188
|
"zustand": "^5.1.0"
|
|
190
189
|
},
|
|
191
190
|
"devDependencies": {
|
|
192
|
-
"@ai-sdk/openai": "^4.0.
|
|
193
|
-
"@ai-sdk/openai-compatible": "^3.0.
|
|
194
|
-
"@ai-sdk/provider-utils": "^5.0.
|
|
191
|
+
"@ai-sdk/openai": "^4.0.111",
|
|
192
|
+
"@ai-sdk/openai-compatible": "^3.0.87",
|
|
193
|
+
"@ai-sdk/provider-utils": "^5.0.76",
|
|
195
194
|
"@anthropic-ai/sdk": "^1.6.0",
|
|
196
195
|
"@biomejs/biome": "^2.6.6",
|
|
197
196
|
"@capacitor/android": "^8.6.0",
|
|
@@ -261,15 +260,15 @@
|
|
|
261
260
|
"@types/react-dom": "^19.3.0",
|
|
262
261
|
"@types/three": "^0.187.0",
|
|
263
262
|
"@vitejs/plugin-react": "^6.2.1",
|
|
264
|
-
"@wenathlan/argan": "~2.0.
|
|
265
|
-
"@wenathlan/cadria": "~2.0.
|
|
266
|
-
"@wenathlan/debonair": "~2.0.
|
|
267
|
-
"@wenathlan/devthink": "~2.0.
|
|
268
|
-
"@wenathlan/getry": "~2.0.
|
|
269
|
-
"@wenathlan/saddle": "~2.0.
|
|
270
|
-
"@wenathlan/vault": "~2.0.
|
|
263
|
+
"@wenathlan/argan": "~2.0.167",
|
|
264
|
+
"@wenathlan/cadria": "~2.0.167",
|
|
265
|
+
"@wenathlan/debonair": "~2.0.167",
|
|
266
|
+
"@wenathlan/devthink": "~2.0.167",
|
|
267
|
+
"@wenathlan/getry": "~2.0.167",
|
|
268
|
+
"@wenathlan/saddle": "~2.0.167",
|
|
269
|
+
"@wenathlan/vault": "~2.0.167",
|
|
271
270
|
"add": "^2.0.9",
|
|
272
|
-
"ai": "^7.0.
|
|
271
|
+
"ai": "^7.0.165",
|
|
273
272
|
"autoprefixer": "^10.6.2",
|
|
274
273
|
"axios": "^1.21.0",
|
|
275
274
|
"baseline-browser-mapping": "^2.11.35",
|
|
@@ -280,7 +279,7 @@
|
|
|
280
279
|
"class-variance-authority": "^0.7.1",
|
|
281
280
|
"clsx": "^2.1.1",
|
|
282
281
|
"cmdk": "^1.1.1",
|
|
283
|
-
"commander": "^15.
|
|
282
|
+
"commander": "^15.1.0",
|
|
284
283
|
"date-fns": "^4.4.0",
|
|
285
284
|
"deepmerge-ts": "^8.0.2",
|
|
286
285
|
"dockerode": "^5.0.1",
|
|
@@ -298,13 +297,12 @@
|
|
|
298
297
|
"framer-motion": "^14.10.1",
|
|
299
298
|
"glob": "^14.0.4",
|
|
300
299
|
"gsap": "^3.15.1",
|
|
301
|
-
"hono": "^4.13.
|
|
300
|
+
"hono": "^4.13.17",
|
|
302
301
|
"ink": "^8.0.0",
|
|
303
302
|
"input-otp": "^1.5.0",
|
|
304
303
|
"js-yaml": "^5.5.0",
|
|
305
304
|
"jsdom": "^31.0.0",
|
|
306
305
|
"katex": "^0.19.1",
|
|
307
|
-
"lucide-react": "^1.70.0",
|
|
308
306
|
"minimatch": "^11.0.5",
|
|
309
307
|
"motion": "^14.10.1",
|
|
310
308
|
"mysql2": "^3.24.6",
|
|
@@ -363,9 +361,9 @@
|
|
|
363
361
|
"zustand": "^5.1.0"
|
|
364
362
|
},
|
|
365
363
|
"overrides": {
|
|
366
|
-
"@ai-sdk/openai": "^4.0.
|
|
367
|
-
"@ai-sdk/openai-compatible": "^3.0.
|
|
368
|
-
"@ai-sdk/provider-utils": "^5.0.
|
|
364
|
+
"@ai-sdk/openai": "^4.0.111",
|
|
365
|
+
"@ai-sdk/openai-compatible": "^3.0.87",
|
|
366
|
+
"@ai-sdk/provider-utils": "^5.0.76",
|
|
369
367
|
"@anthropic-ai/sdk": "^1.6.0",
|
|
370
368
|
"@biomejs/biome": "^2.6.6",
|
|
371
369
|
"@capacitor/android": "^8.6.0",
|
|
@@ -435,15 +433,15 @@
|
|
|
435
433
|
"@types/react-dom": "^19.3.0",
|
|
436
434
|
"@types/three": "^0.187.0",
|
|
437
435
|
"@vitejs/plugin-react": "^6.2.1",
|
|
438
|
-
"@wenathlan/argan": "~2.0.
|
|
439
|
-
"@wenathlan/cadria": "~2.0.
|
|
440
|
-
"@wenathlan/debonair": "~2.0.
|
|
441
|
-
"@wenathlan/devthink": "~2.0.
|
|
442
|
-
"@wenathlan/getry": "~2.0.
|
|
443
|
-
"@wenathlan/saddle": "~2.0.
|
|
444
|
-
"@wenathlan/vault": "~2.0.
|
|
436
|
+
"@wenathlan/argan": "~2.0.167",
|
|
437
|
+
"@wenathlan/cadria": "~2.0.167",
|
|
438
|
+
"@wenathlan/debonair": "~2.0.167",
|
|
439
|
+
"@wenathlan/devthink": "~2.0.167",
|
|
440
|
+
"@wenathlan/getry": "~2.0.167",
|
|
441
|
+
"@wenathlan/saddle": "~2.0.167",
|
|
442
|
+
"@wenathlan/vault": "~2.0.167",
|
|
445
443
|
"add": "^2.0.9",
|
|
446
|
-
"ai": "^7.0.
|
|
444
|
+
"ai": "^7.0.165",
|
|
447
445
|
"autoprefixer": "^10.6.2",
|
|
448
446
|
"axios": "^1.21.0",
|
|
449
447
|
"baseline-browser-mapping": "^2.11.35",
|
|
@@ -454,7 +452,7 @@
|
|
|
454
452
|
"class-variance-authority": "^0.7.1",
|
|
455
453
|
"clsx": "^2.1.1",
|
|
456
454
|
"cmdk": "^1.1.1",
|
|
457
|
-
"commander": "^15.
|
|
455
|
+
"commander": "^15.1.0",
|
|
458
456
|
"date-fns": "^4.4.0",
|
|
459
457
|
"deepmerge-ts": "^8.0.2",
|
|
460
458
|
"dockerode": "^5.0.1",
|
|
@@ -472,13 +470,12 @@
|
|
|
472
470
|
"framer-motion": "^14.10.1",
|
|
473
471
|
"glob": "^14.0.4",
|
|
474
472
|
"gsap": "^3.15.1",
|
|
475
|
-
"hono": "^4.13.
|
|
473
|
+
"hono": "^4.13.17",
|
|
476
474
|
"ink": "^8.0.0",
|
|
477
475
|
"input-otp": "^1.5.0",
|
|
478
476
|
"js-yaml": "^5.5.0",
|
|
479
477
|
"jsdom": "^31.0.0",
|
|
480
478
|
"katex": "^0.19.1",
|
|
481
|
-
"lucide-react": "^1.70.0",
|
|
482
479
|
"minimatch": "^11.0.5",
|
|
483
480
|
"motion": "^14.10.1",
|
|
484
481
|
"mysql2": "^3.24.6",
|
package/test/family.test.ts
CHANGED
|
@@ -45,6 +45,13 @@ describe("family table", () => {
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
+
it("answers the os slug at the family root even though the rail never lists it", () => {
|
|
49
|
+
// the owner seat pins the devthink lane the sibling batteries pin: the
|
|
50
|
+
// os answers at the family root itself, never one segment deep
|
|
51
|
+
assert.equal(familyurl("devthink"), "../");
|
|
52
|
+
assert.equal(familyurl("/devthink/"), "../");
|
|
53
|
+
});
|
|
54
|
+
|
|
48
55
|
it("strips decorative slashes and normalizes the slug", () => {
|
|
49
56
|
assert.equal(familyurl("/cadria/"), "../cadria/");
|
|
50
57
|
assert.equal(familyurl(" getry "), "../ getry /");
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// # zones.test — the domains ledger of argan, runnable with the vitest
|
|
2
|
+
// runner:
|
|
3
|
+
// pnpm test
|
|
4
|
+
// The ledger is the domains-under-management table of the dns library: the
|
|
5
|
+
// seed rows ride the zones db table through seedIfEmpty and reach the home
|
|
6
|
+
// and zones faces over the catalog accessor. The battery pins the
|
|
7
|
+
// restoration the complaint register ordered (complaint #72 — "de sete
|
|
8
|
+
// domínios dois foram arrancados indevidamente": of seven domains, two were
|
|
9
|
+
// ripped, and the name, type and content properties never belonged in a
|
|
10
|
+
// removal): the gateway and the os domains of the devthink.pro family ride
|
|
11
|
+
// the ledger again, treated exactly like the standing domains — the same
|
|
12
|
+
// ZoneSnapshot grammar, argan primary (master) and signed from day one per
|
|
13
|
+
// the family law, hanging under the devthink.pro apex.
|
|
14
|
+
import assert from "node:assert/strict";
|
|
15
|
+
import { describe, it } from "vitest";
|
|
16
|
+
import { findZone } from "../argan.ts";
|
|
17
|
+
import { seedZones } from "../seed.ts";
|
|
18
|
+
|
|
19
|
+
/** the two family domains the complaint register ordered restored. */
|
|
20
|
+
const RESTORED = ["gateway.devthink.pro", "os.devthink.pro"];
|
|
21
|
+
|
|
22
|
+
describe("domains ledger", () => {
|
|
23
|
+
it("carries the two ripped family domains restored, beside the standing five", () => {
|
|
24
|
+
// the ledger answers seven domains: the five standing rows plus the two
|
|
25
|
+
// the complaint register orders back
|
|
26
|
+
assert.equal(seedZones.length, 7);
|
|
27
|
+
for (const origin of RESTORED) {
|
|
28
|
+
const zone = findZone(seedZones, origin);
|
|
29
|
+
assert.ok(zone, `the ledger lost the restored domain ${origin}`);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("treats the restored domains like the standing ones — the same grammar", () => {
|
|
34
|
+
for (const origin of RESTORED) {
|
|
35
|
+
const zone = findZone(seedZones, origin);
|
|
36
|
+
assert.ok(zone);
|
|
37
|
+
// the row type is the standing one: origin, kind, serial, state — no
|
|
38
|
+
// extra shape, no invented fields
|
|
39
|
+
assert.deepEqual(Object.keys(zone).sort(), ["kind", "origin", "serial", "state"]);
|
|
40
|
+
// argan is primary for the family domains (the registry law: one
|
|
41
|
+
// primary; the secondaries ride authenticated transfer)
|
|
42
|
+
assert.equal(zone.kind, "master");
|
|
43
|
+
// the family law: the domains in the account are signed from day one
|
|
44
|
+
assert.equal(zone.state, "signed");
|
|
45
|
+
// the zone law: the serial rides the YYYYMMDDNN shape (date plus the
|
|
46
|
+
// revision of the day)
|
|
47
|
+
assert.match(zone.serial, /^\d{8}\d{2}$/);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it("hangs the restored domains under the devthink.pro apex the ledger keeps", () => {
|
|
52
|
+
// the family domains of the complaint live under the bought apex — the
|
|
53
|
+
// hung model law: one purchased domain anchors everything
|
|
54
|
+
const apex = findZone(seedZones, "devthink.pro");
|
|
55
|
+
assert.ok(apex, "the ledger lost the devthink.pro apex");
|
|
56
|
+
for (const origin of RESTORED) {
|
|
57
|
+
assert.ok(origin.endsWith(".devthink.pro"), `${origin} hangs under the apex`);
|
|
58
|
+
}
|
|
59
|
+
// the restored rows never shadow the apex or each other
|
|
60
|
+
const origins = seedZones.map((zone) => zone.origin);
|
|
61
|
+
assert.equal(new Set(origins).size, origins.length, "the ledger carries a duplicate origin");
|
|
62
|
+
});
|
|
63
|
+
});
|