@peac/disc 0.9.18

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 ADDED
@@ -0,0 +1,23 @@
1
+ # @peac/disc
2
+
3
+ PEAC discovery with ≤20 lines enforcement
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @peac/disc
9
+ ```
10
+
11
+ ## Documentation
12
+
13
+ See [peacprotocol.org](https://peacprotocol.org) for full documentation.
14
+
15
+ ## License
16
+
17
+ Apache-2.0
18
+
19
+ ---
20
+
21
+ PEAC Protocol is an open source project stewarded by Originary and community contributors.
22
+
23
+ [Originary](https://www.originary.xyz) | [Docs](https://peacprotocol.org) | [GitHub](https://github.com/peacprotocol/peac)
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @peac/disc - PEAC discovery with ≤20 lines enforcement
3
+ * ABNF-compliant .well-known/peac.txt parser and generator
4
+ */
5
+ export { parse, emit, validate } from './parser.js';
6
+ export type { PeacDiscovery, PublicKeyInfo, ParseResult, ValidationOptions } from './types.js';
7
+ export declare const VERSION = "0.9.15";
8
+ export declare const MAX_LINES = 20;
9
+ export declare const WELL_KNOWN_PATH = "/.well-known/peac.txt";
10
+ export declare function discover(origin: string): Promise<import('./types.js').ParseResult>;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/F,eAAO,MAAM,OAAO,WAAW,CAAC;AAChC,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAKvD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,YAAY,EAAE,WAAW,CAAC,CAuBxF"}
package/dist/index.js ADDED
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @peac/disc - PEAC discovery with ≤20 lines enforcement
3
+ * ABNF-compliant .well-known/peac.txt parser and generator
4
+ */
5
+ export { parse, emit, validate } from './parser.js';
6
+ // Constants
7
+ export const VERSION = '0.9.15';
8
+ export const MAX_LINES = 20;
9
+ export const WELL_KNOWN_PATH = '/.well-known/peac.txt';
10
+ const UA = `PEAC/${VERSION} (+https://peacprotocol.org)`;
11
+ // Convenience function for fetching and parsing discovery documents
12
+ export async function discover(origin) {
13
+ try {
14
+ const url = new URL(WELL_KNOWN_PATH, origin);
15
+ const response = await fetch(url.toString(), {
16
+ headers: { 'User-Agent': UA },
17
+ });
18
+ if (!response.ok) {
19
+ return {
20
+ valid: false,
21
+ errors: [`HTTP ${response.status}: ${response.statusText}`],
22
+ };
23
+ }
24
+ const content = await response.text();
25
+ const { parse } = await import('./parser.js');
26
+ return parse(content);
27
+ }
28
+ catch (error) {
29
+ return {
30
+ valid: false,
31
+ errors: [`Discovery failed: ${error instanceof Error ? error.message : String(error)}`],
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGpD,YAAY;AACZ,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEvD,MAAM,EAAE,GAAG,QAAQ,OAAO,8BAA8B,CAAC;AAEzD,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC3C,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;aAC5D,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,CAAC,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SACxF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @peac/disc/parser - peac.txt parser with ≤20 lines enforcement
3
+ * ABNF-compliant discovery document parsing
4
+ */
5
+ import type { PeacDiscovery, ParseResult, ValidationOptions } from './types.js';
6
+ export declare function parse(content: string, options?: ValidationOptions): ParseResult;
7
+ export declare function emit(data: PeacDiscovery): string;
8
+ export declare function validate(content: string): boolean;
9
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAiB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAa/F,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,WAAW,CAsEnF;AA6BD,wBAAgB,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAuChD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGjD"}
package/dist/parser.js ADDED
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @peac/disc/parser - peac.txt parser with ≤20 lines enforcement
3
+ * ABNF-compliant discovery document parsing
4
+ */
5
+ const MAX_LINES = 20;
6
+ const FIELD_PATTERNS = {
7
+ preferences: /^preferences:\s*(.+)$/,
8
+ access_control: /^access_control:\s*(.+)$/,
9
+ payments: /^payments:\s*\[([^\]]+)\]$/,
10
+ provenance: /^provenance:\s*(.+)$/,
11
+ receipts: /^receipts:\s*(required|optional)$/,
12
+ verify: /^verify:\s*(.+)$/,
13
+ public_keys: /^public_keys:\s*\[([^\]]+)\]$/,
14
+ };
15
+ export function parse(content, options = {}) {
16
+ const maxLines = options.maxLines ?? MAX_LINES;
17
+ const errors = [];
18
+ const data = {};
19
+ const lines = content
20
+ .split('\n')
21
+ .map((l) => l.trim())
22
+ .filter((l) => l && !l.startsWith('#'));
23
+ // Enforce line limit
24
+ if (lines.length > maxLines) {
25
+ return {
26
+ valid: false,
27
+ errors: [`Line limit exceeded: ${lines.length} > ${maxLines}`],
28
+ lineCount: lines.length,
29
+ };
30
+ }
31
+ // Parse each line
32
+ for (const [index, line] of lines.entries()) {
33
+ let matched = false;
34
+ for (const [field, pattern] of Object.entries(FIELD_PATTERNS)) {
35
+ const match = line.match(pattern);
36
+ if (match) {
37
+ matched = true;
38
+ try {
39
+ switch (field) {
40
+ case 'preferences':
41
+ case 'access_control':
42
+ case 'provenance':
43
+ case 'verify':
44
+ data[field] = match[1].trim();
45
+ break;
46
+ case 'receipts':
47
+ data.receipts = match[1];
48
+ break;
49
+ case 'payments':
50
+ data.payments = parseArray(match[1]);
51
+ break;
52
+ case 'public_keys':
53
+ data.public_keys = parsePublicKeys(match[1]);
54
+ break;
55
+ }
56
+ }
57
+ catch (error) {
58
+ errors.push(`Line ${index + 1}: ${error instanceof Error ? error.message : String(error)}`);
59
+ }
60
+ break;
61
+ }
62
+ }
63
+ if (!matched) {
64
+ errors.push(`Line ${index + 1}: Invalid format: ${line}`);
65
+ }
66
+ }
67
+ // Validate required fields
68
+ if (!data.verify) {
69
+ errors.push('Missing required field: verify');
70
+ }
71
+ return {
72
+ valid: errors.length === 0,
73
+ data: errors.length === 0 ? data : undefined,
74
+ errors: errors.length > 0 ? errors : undefined,
75
+ lineCount: lines.length,
76
+ };
77
+ }
78
+ function parseArray(content) {
79
+ return content
80
+ .split(',')
81
+ .map((item) => item.trim().replace(/^["']|["']$/g, ''))
82
+ .filter((item) => item.length > 0);
83
+ }
84
+ function parsePublicKeys(content) {
85
+ const keyStrings = parseArray(content);
86
+ const keys = [];
87
+ for (const keyString of keyStrings) {
88
+ const keyMatch = keyString.match(/^([^:]+):([^:]+):(.+)$/);
89
+ if (!keyMatch) {
90
+ throw new Error(`Invalid public key format: ${keyString}`);
91
+ }
92
+ keys.push({
93
+ kid: keyMatch[1],
94
+ alg: keyMatch[2],
95
+ key: keyMatch[3],
96
+ });
97
+ }
98
+ return keys;
99
+ }
100
+ export function emit(data) {
101
+ const lines = [];
102
+ if (data.preferences) {
103
+ lines.push(`preferences: ${data.preferences}`);
104
+ }
105
+ if (data.access_control) {
106
+ lines.push(`access_control: ${data.access_control}`);
107
+ }
108
+ if (data.payments && data.payments.length > 0) {
109
+ const paymentsStr = data.payments.map((p) => `"${p}"`).join(', ');
110
+ lines.push(`payments: [${paymentsStr}]`);
111
+ }
112
+ if (data.provenance) {
113
+ lines.push(`provenance: ${data.provenance}`);
114
+ }
115
+ if (data.receipts) {
116
+ lines.push(`receipts: ${data.receipts}`);
117
+ }
118
+ if (data.verify) {
119
+ lines.push(`verify: ${data.verify}`);
120
+ }
121
+ if (data.public_keys && data.public_keys.length > 0) {
122
+ const keysStr = data.public_keys.map((k) => `"${k.kid}:${k.alg}:${k.key}"`).join(', ');
123
+ lines.push(`public_keys: [${keysStr}]`);
124
+ }
125
+ // Enforce line limit during emission
126
+ if (lines.length > MAX_LINES) {
127
+ throw new Error(`Generated peac.txt exceeds ${MAX_LINES} lines: ${lines.length}`);
128
+ }
129
+ return lines.join('\n');
130
+ }
131
+ export function validate(content) {
132
+ const result = parse(content);
133
+ return result.valid;
134
+ }
135
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,cAAc,GAAG;IACrB,WAAW,EAAE,uBAAuB;IACpC,cAAc,EAAE,0BAA0B;IAC1C,QAAQ,EAAE,4BAA4B;IACtC,UAAU,EAAE,sBAAsB;IAClC,QAAQ,EAAE,mCAAmC;IAC7C,MAAM,EAAE,kBAAkB;IAC1B,WAAW,EAAE,+BAA+B;CAC7C,CAAC;AAEF,MAAM,UAAU,KAAK,CAAC,OAAe,EAAE,UAA6B,EAAE;IACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAkB,EAAE,CAAC;IAE/B,MAAM,KAAK,GAAG,OAAO;SAClB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1C,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,CAAC,wBAAwB,KAAK,CAAC,MAAM,MAAM,QAAQ,EAAE,CAAC;YAC9D,SAAS,EAAE,KAAK,CAAC,MAAM;SACxB,CAAC;IACJ,CAAC;IAED,kBAAkB;IAClB,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC;oBACH,QAAQ,KAAK,EAAE,CAAC;wBACd,KAAK,aAAa,CAAC;wBACnB,KAAK,gBAAgB,CAAC;wBACtB,KAAK,YAAY,CAAC;wBAClB,KAAK,QAAQ;4BACX,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;4BAC9B,MAAM;wBACR,KAAK,UAAU;4BACb,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAA4B,CAAC;4BACpD,MAAM;wBACR,KAAK,UAAU;4BACb,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrC,MAAM;wBACR,KAAK,aAAa;4BAChB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC7C,MAAM;oBACV,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CACT,QAAQ,KAAK,GAAG,CAAC,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/E,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC9C,SAAS,EAAE,KAAK,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;SACtD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,GAAoB,EAAE,CAAC;IAEjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACR,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChB,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChB,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAmB;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,cAAc,WAAW,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @peac/disc/types - Discovery types for .well-known/peac.txt
3
+ */
4
+ export interface PeacDiscovery {
5
+ preferences?: string;
6
+ access_control?: string;
7
+ payments?: string[];
8
+ provenance?: string;
9
+ receipts?: 'required' | 'optional';
10
+ verify?: string;
11
+ public_keys?: PublicKeyInfo[];
12
+ }
13
+ export interface PublicKeyInfo {
14
+ kid: string;
15
+ alg: string;
16
+ key: string;
17
+ }
18
+ export interface ParseResult {
19
+ valid: boolean;
20
+ data?: PeacDiscovery;
21
+ errors?: string[];
22
+ lineCount?: number;
23
+ }
24
+ export interface ValidationOptions {
25
+ maxLines?: number;
26
+ strictAbnf?: boolean;
27
+ }
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @peac/disc/types - Discovery types for .well-known/peac.txt
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@peac/disc",
3
+ "version": "0.9.18",
4
+ "description": "PEAC discovery with ≤20 lines enforcement",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "require": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "package.json",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "build:types": "tsc -b",
25
+ "test": "node --test src/*.test.js",
26
+ "lint": "echo 'Lint temporarily disabled due to workspace dependencies - run from root'",
27
+ "typecheck": "tsc --noEmit"
28
+ },
29
+ "dependencies": {},
30
+ "devDependencies": {
31
+ "typescript": "^5.0.0"
32
+ },
33
+ "keywords": [
34
+ "peac",
35
+ "discovery",
36
+ "well-known",
37
+ "abnf"
38
+ ],
39
+ "license": "Apache-2.0",
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/peacprotocol/peac.git",
43
+ "directory": "packages/discovery"
44
+ },
45
+ "bugs": {
46
+ "url": "https://github.com/peacprotocol/peac/issues"
47
+ },
48
+ "homepage": "https://github.com/peacprotocol/peac#readme",
49
+ "publishConfig": {
50
+ "access": "public"
51
+ },
52
+ "sideEffects": false
53
+ }