@hashtree/nostr 0.1.5 → 0.1.6

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/README.md CHANGED
@@ -123,6 +123,24 @@ stop();
123
123
 
124
124
  The library does not keep a global snapshot cache for you. It provides stateless helpers plus a live watcher; route caching and reuse policy stay with the app. Pass a `HashTree` when you already have one controlling write policy, or a raw `Store` when the default wrapper is enough.
125
125
 
126
+ Snapshot routes use the signed snapshot blob `nhash` plus a path and optional link key:
127
+
128
+ ```typescript
129
+ import {
130
+ buildTreeEventSnapshotPermalink,
131
+ parseTreeEventSnapshotPermalink,
132
+ } from '@hashtree/nostr';
133
+
134
+ const href = buildTreeEventSnapshotPermalink({
135
+ snapshotNhash: snapshot.snapshotNhash,
136
+ path: ['index.html'],
137
+ linkKey: 'abcd...optional 64-hex link key',
138
+ });
139
+ // nhash1.../index.html?snapshot=1&k=...
140
+
141
+ const parsed = parseTreeEventSnapshotPermalink(`htree://${href}`);
142
+ ```
143
+
126
144
  ## License
127
145
 
128
146
  MIT
package/dist/index.d.ts CHANGED
@@ -8,4 +8,5 @@ export { createNostrRefResolver, createNostrRefResolver as createNostrRootResolv
8
8
  export { NostrEventStore, type StoredNostrEvent, type NostrEventManifest, type ListEventsOptions, } from './events.js';
9
9
  export { encodeSignedNostrEventJson, decodeSignedNostrEventJson, storeSignedNostrEventSnapshot, readSignedNostrEventSnapshot, parseHashtreeRootEvent, type ParsedHashtreeRootEvent, type SnapshotTreeLike, type SnapshotTarget, } from './snapshot.js';
10
10
  export { storeTreeEventSnapshot, readTreeEventSnapshot, fetchLatestTreeEventSnapshot, watchLatestTreeEventSnapshot, compareTreeEventSnapshots, isNewerTreeEventSnapshot, snapshotMatchesRootCid, resolveSnapshotRootCid, type TreeEventSnapshotInfo, type TreeEventSnapshotQuery, type FetchLatestTreeEventSnapshotConfig, type WatchTreeEventSnapshotsConfig, } from './treeEventSnapshots.js';
11
+ export { buildTreeEventSnapshotPermalink, parseTreeEventSnapshotPermalink, normalizeTreeEventSnapshotLinkKey, type TreeEventSnapshotPermalink, type BuildTreeEventSnapshotPermalinkOptions, } from './treeEventSnapshotPermalinks.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,sBAAsB,EAEtB,sBAAsB,IAAI,uBAAuB,EACjD,KAAK,sBAAsB,EAE3B,KAAK,sBAAsB,IAAI,uBAAuB,EACtD,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,GACnC,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,sBAAsB,EAEtB,sBAAsB,IAAI,uBAAuB,EACjD,KAAK,sBAAsB,EAE3B,KAAK,sBAAsB,IAAI,uBAAuB,EACtD,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,GACnC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,iCAAiC,EACjC,KAAK,0BAA0B,EAC/B,KAAK,sCAAsC,GAC5C,MAAM,kCAAkC,CAAC"}
package/dist/index.js CHANGED
@@ -15,4 +15,5 @@ createNostrRefResolver as createNostrRootResolver, } from './resolver/index.js';
15
15
  export { NostrEventStore, } from './events.js';
16
16
  export { encodeSignedNostrEventJson, decodeSignedNostrEventJson, storeSignedNostrEventSnapshot, readSignedNostrEventSnapshot, parseHashtreeRootEvent, } from './snapshot.js';
17
17
  export { storeTreeEventSnapshot, readTreeEventSnapshot, fetchLatestTreeEventSnapshot, watchLatestTreeEventSnapshot, compareTreeEventSnapshots, isNewerTreeEventSnapshot, snapshotMatchesRootCid, resolveSnapshotRootCid, } from './treeEventSnapshots.js';
18
+ export { buildTreeEventSnapshotPermalink, parseTreeEventSnapshotPermalink, normalizeTreeEventSnapshotLinkKey, } from './treeEventSnapshotPermalinks.js';
18
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,aAAa;AACb,qBAAqB;AACrB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,GA0Bd,MAAM,mBAAmB,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EACL,sBAAsB;AACtB,eAAe;AACf,sBAAsB,IAAI,uBAAuB,GASlD,MAAM,qBAAqB,CAAC;AAE7B,6BAA6B;AAC7B,OAAO,EACL,eAAe,GAIhB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,GAIvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GAKvB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,aAAa;AACb,qBAAqB;AACrB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,GA0Bd,MAAM,mBAAmB,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EACL,sBAAsB;AACtB,eAAe;AACf,sBAAsB,IAAI,uBAAuB,GASlD,MAAM,qBAAqB,CAAC;AAE7B,6BAA6B;AAC7B,OAAO,EACL,eAAe,GAIhB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,GAIvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,GAKvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,iCAAiC,GAGlC,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export interface TreeEventSnapshotPermalink {
2
+ snapshotNhash: string;
3
+ path: string[];
4
+ linkKey?: string;
5
+ }
6
+ export interface BuildTreeEventSnapshotPermalinkOptions {
7
+ prefix?: string;
8
+ }
9
+ export declare function normalizeTreeEventSnapshotLinkKey(value?: string | null): string | null;
10
+ export declare function buildTreeEventSnapshotPermalink(value: TreeEventSnapshotPermalink, options?: BuildTreeEventSnapshotPermalinkOptions): string;
11
+ export declare function parseTreeEventSnapshotPermalink(input: string | URL): TreeEventSnapshotPermalink | null;
12
+ //# sourceMappingURL=treeEventSnapshotPermalinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeEventSnapshotPermalinks.d.ts","sourceRoot":"","sources":["../src/treeEventSnapshotPermalinks.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sCAAsC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA+CD,wBAAgB,iCAAiC,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAStF;AAsBD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,0BAA0B,EACjC,OAAO,GAAE,sCAA2C,GACnD,MAAM,CAUR;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,0BAA0B,GAAG,IAAI,CA2CtG"}
@@ -0,0 +1,120 @@
1
+ import { nhashDecode } from '@hashtree/core';
2
+ const NHASH_PATTERN = /^nhash1[a-z0-9]+$/;
3
+ const LINK_KEY_PATTERN = /^[a-f0-9]{64}$/i;
4
+ function safeDecode(value) {
5
+ try {
6
+ return decodeURIComponent(value);
7
+ }
8
+ catch {
9
+ return value;
10
+ }
11
+ }
12
+ function extractPermalinkCandidate(input) {
13
+ const raw = `${input instanceof URL ? input.toString() : input}`.trim();
14
+ if (!raw) {
15
+ return '';
16
+ }
17
+ try {
18
+ const parsed = input instanceof URL ? input : new URL(raw);
19
+ if (parsed.hash.startsWith('#/')) {
20
+ return parsed.hash.slice(1);
21
+ }
22
+ return `/${parsed.host}${parsed.pathname}${parsed.search}`;
23
+ }
24
+ catch {
25
+ if (raw.startsWith('#/')) {
26
+ return raw.slice(1);
27
+ }
28
+ return raw;
29
+ }
30
+ }
31
+ function normalizeSnapshotNhash(value) {
32
+ const trimmed = value.trim();
33
+ if (!NHASH_PATTERN.test(trimmed)) {
34
+ return null;
35
+ }
36
+ try {
37
+ const decoded = nhashDecode(trimmed);
38
+ if (decoded.key) {
39
+ return null;
40
+ }
41
+ return trimmed;
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
47
+ export function normalizeTreeEventSnapshotLinkKey(value) {
48
+ const trimmed = value?.trim();
49
+ if (!trimmed) {
50
+ return null;
51
+ }
52
+ if (!LINK_KEY_PATTERN.test(trimmed)) {
53
+ return null;
54
+ }
55
+ return trimmed.toLowerCase();
56
+ }
57
+ function normalizeTreeEventSnapshotPermalink(value) {
58
+ const snapshotNhash = normalizeSnapshotNhash(value.snapshotNhash);
59
+ if (!snapshotNhash) {
60
+ throw new Error(`Invalid tree event snapshot nhash: ${value.snapshotNhash}`);
61
+ }
62
+ const linkKey = normalizeTreeEventSnapshotLinkKey(value.linkKey);
63
+ if (value.linkKey?.trim() && !linkKey) {
64
+ throw new Error(`Invalid tree event snapshot link key: ${value.linkKey}`);
65
+ }
66
+ return {
67
+ snapshotNhash,
68
+ path: value.path.filter(Boolean),
69
+ ...(linkKey ? { linkKey } : {}),
70
+ };
71
+ }
72
+ export function buildTreeEventSnapshotPermalink(value, options = {}) {
73
+ const normalized = normalizeTreeEventSnapshotPermalink(value);
74
+ const encodedPath = normalized.path.map((part) => encodeURIComponent(part)).join('/');
75
+ const query = new URLSearchParams();
76
+ query.set('snapshot', '1');
77
+ if (normalized.linkKey) {
78
+ query.set('k', normalized.linkKey);
79
+ }
80
+ const prefix = options.prefix ?? '';
81
+ return `${prefix}${normalized.snapshotNhash}${encodedPath ? `/${encodedPath}` : ''}?${query.toString()}`;
82
+ }
83
+ export function parseTreeEventSnapshotPermalink(input) {
84
+ const candidate = extractPermalinkCandidate(input);
85
+ if (!candidate) {
86
+ return null;
87
+ }
88
+ const [pathPart, queryPart = ''] = candidate.split('?', 2);
89
+ const parts = pathPart
90
+ .replace(/^\/+/, '')
91
+ .split('/')
92
+ .filter(Boolean)
93
+ .map(safeDecode);
94
+ if (parts[0] === 'nhash') {
95
+ parts.shift();
96
+ }
97
+ const snapshotNhash = parts.shift();
98
+ if (!snapshotNhash) {
99
+ return null;
100
+ }
101
+ const normalizedSnapshotNhash = normalizeSnapshotNhash(snapshotNhash);
102
+ if (!normalizedSnapshotNhash) {
103
+ return null;
104
+ }
105
+ const params = new URLSearchParams(queryPart);
106
+ if (params.get('snapshot')?.trim() !== '1') {
107
+ return null;
108
+ }
109
+ const rawLinkKey = params.get('k');
110
+ const linkKey = normalizeTreeEventSnapshotLinkKey(rawLinkKey);
111
+ if (rawLinkKey?.trim() && !linkKey) {
112
+ return null;
113
+ }
114
+ return {
115
+ snapshotNhash: normalizedSnapshotNhash,
116
+ path: parts,
117
+ ...(linkKey ? { linkKey } : {}),
118
+ };
119
+ }
120
+ //# sourceMappingURL=treeEventSnapshotPermalinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeEventSnapshotPermalinks.js","sourceRoot":"","sources":["../src/treeEventSnapshotPermalinks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hashtree/nostr",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Nostr integration for hashtree - WebRTC P2P store and ref resolver",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",