@atproto/syntax 0.6.1 → 0.6.3
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/CHANGELOG.md +12 -0
- package/dist/aturi.d.ts +1 -1
- package/dist/aturi.d.ts.map +1 -1
- package/dist/nsid.d.ts.map +1 -1
- package/package.json +2 -3
- package/tests/aturi-string.test.ts +18 -10
- package/tests/aturi.test.ts +29 -35
- package/tests/nsid.test.ts +15 -40
- package/tsconfig.build.json +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.json +2 -2
- package/tsconfig.tests.json +1 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atproto/syntax
|
|
2
2
|
|
|
3
|
+
## 0.6.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#5151](https://github.com/bluesky-social/atproto/pull/5151) [`a51c45d`](https://github.com/bluesky-social/atproto/commit/a51c45d38f6bd7b8765f640e564cf921d52162e7) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Update dependencies
|
|
8
|
+
|
|
9
|
+
## 0.6.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#4967](https://github.com/bluesky-social/atproto/pull/4967) [`9fc720c`](https://github.com/bluesky-social/atproto/commit/9fc720ce75f3ee88a5e48a9be919b07c7647f6f5) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Use TypeScript 7 to build package
|
|
14
|
+
|
|
3
15
|
## 0.6.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/aturi.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare class AtUri {
|
|
|
14
14
|
constructor(uri: string, base?: string | AtUri);
|
|
15
15
|
static make(handleOrDid: string, collection?: string, rkey?: string): AtUri;
|
|
16
16
|
get protocol(): string;
|
|
17
|
-
get origin(): `at
|
|
17
|
+
get origin(): `at://${string}.${string}` | `at://did:${string}:${string}`;
|
|
18
18
|
get did(): DidString;
|
|
19
19
|
get hostname(): AtIdentifierString;
|
|
20
20
|
set hostname(v: string);
|
package/dist/aturi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aturi.d.ts","sourceRoot":"","sources":["../src/aturi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAGnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAmB,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,eAAe,EAAwB,MAAM,gBAAgB,CAAA;AAEtE,cAAc,uBAAuB,CAAA;AAGrC,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,UAAU,EACV,eAAe,GAChB,CAAA;AAED,eAAO,MAAM,aAAa,QAEyE,CAAA;AAInG,qBAAa,KAAK;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"aturi.d.ts","sourceRoot":"","sources":["../src/aturi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAGnB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAmB,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,eAAe,EAAwB,MAAM,gBAAgB,CAAA;AAEtE,cAAc,uBAAuB,CAAA;AAGrC,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,UAAU,EACV,eAAe,GAChB,CAAA;AAED,eAAO,MAAM,aAAa,QAEyE,CAAA;AAInG,qBAAa,KAAK;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,eAAe,CAAA;IAE7B,YAAY,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,EAc7C;IAED,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,SAKlE;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,MAAM,gEAET;IAED,IAAI,GAAG,IAAI,SAAS,CAInB;IAED,IAAI,QAAQ,IAAI,kBAAkB,CAEjC;IAED,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,EAGrB;IAED,IAAI,MAAM,IAII,MAAM,CAFnB;IAED,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAEnB;IAED,IAAI,UAAU,IAUI,MAAM,CARvB;IAED,IAAI,cAAc,IAAI,UAAU,CAI/B;IAED,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAGvB;IAED,qBAAqB,CAAC,CAAC,EAAE,MAAM,QAI9B;IAED,IAAI,IAAI,IAUI,MAAM,CARjB;IAED,IAAI,QAAQ,IAAI,eAAe,CAI9B;IAED,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAGjB;IAED,eAAe,CAAC,CAAC,EAAE,MAAM,QAKxB;IAED,IAAI,IAAI,gBAEP;IAED,QAAQ,IAAI,WAAW,CAoBtB;CACF"}
|
package/dist/nsid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nsid.d.ts","sourceRoot":"","sources":["../src/nsid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAA;AAe1D,MAAM,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAA;AAExD,qBAAa,IAAI;IACf,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAEpC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"nsid.d.ts","sourceRoot":"","sources":["../src/nsid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAA;AAe1D,MAAM,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAA;AAExD,qBAAa,IAAI;IACf,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAEpC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEhC;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGnD;IAED,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,2CAE1B;IAED,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;KAAE,GAAG,IAAI,CASnD;IAED,YAAY,IAAI,EAAE,MAAM,EAEvB;IAED,IAAI,SAAS,IAIK,GAAG,MAAM,IAAI,MAAM,EAAE,CACtC;IAED,IAAI,IAAI,uBAEP;IAED,QAAQ,IAAI,UAAU,CAErB;CACF;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,UAAU,CAGjC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAIhD;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,KAAK,EAAE,CAAC,GACP,KAAK,IAAI,CAAC,GAAG,UAAU,CAIzB;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAiC5D;AA4BD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAG7E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAgBnE;AAED,qBAAa,gBAAiB,SAAQ,KAAK;CAAG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/syntax",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=22"
|
|
6
6
|
},
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"tslib": "^2.8.1"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"typescript": "^6.0.3",
|
|
27
26
|
"vitest": "^4.0.16"
|
|
28
27
|
},
|
|
29
28
|
"browser": {
|
|
@@ -38,6 +37,6 @@
|
|
|
38
37
|
},
|
|
39
38
|
"scripts": {
|
|
40
39
|
"test": "vitest run",
|
|
41
|
-
"build": "
|
|
40
|
+
"build": "tsgo --build tsconfig.build.json"
|
|
42
41
|
}
|
|
43
42
|
}
|
|
@@ -7,19 +7,27 @@ import {
|
|
|
7
7
|
} from '../src/index.js'
|
|
8
8
|
|
|
9
9
|
describe('valid interop', () => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
test.each(
|
|
11
|
+
readLines(
|
|
12
|
+
`${__dirname}/../../../interop-test-files/syntax/aturi_syntax_valid.txt`,
|
|
13
|
+
),
|
|
14
|
+
)('%s', (value) => {
|
|
15
|
+
expect(isAtUriString(value)).toBe(true)
|
|
16
|
+
expect(isAtUriString(value, { strict: false })).toBe(true)
|
|
17
|
+
expect(() => assertAtUriString(value)).not.toThrow()
|
|
18
|
+
expect(() => assertAtUriString(value, { strict: false })).not.toThrow()
|
|
19
|
+
})
|
|
15
20
|
})
|
|
16
21
|
|
|
17
22
|
describe('invalid interop', () => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
test.each(
|
|
24
|
+
readLines(
|
|
25
|
+
`${__dirname}/../../../interop-test-files/syntax/aturi_syntax_invalid.txt`,
|
|
26
|
+
),
|
|
27
|
+
)('%s', (value) => {
|
|
28
|
+
expect(isAtUriString(value)).toBe(false)
|
|
29
|
+
expect(() => assertAtUriString(value)).toThrow(InvalidAtUriError)
|
|
30
|
+
})
|
|
23
31
|
})
|
|
24
32
|
|
|
25
33
|
describe('custom cases', () => {
|
package/tests/aturi.test.ts
CHANGED
|
@@ -4,13 +4,13 @@ import { AtUri } from '../src/index.js'
|
|
|
4
4
|
|
|
5
5
|
describe(AtUri, () => {
|
|
6
6
|
describe('parses valid interop', () => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
7
|
+
test.each(
|
|
8
|
+
readLines(
|
|
9
|
+
`${__dirname}/../../../interop-test-files/syntax/aturi_syntax_valid.txt`,
|
|
10
|
+
),
|
|
11
|
+
)('%s', (value) => {
|
|
12
|
+
expect(() => new AtUri(value)).not.toThrow()
|
|
13
|
+
})
|
|
14
14
|
})
|
|
15
15
|
|
|
16
16
|
describe('valid at uris', () => {
|
|
@@ -260,18 +260,16 @@ describe(AtUri, () => {
|
|
|
260
260
|
'',
|
|
261
261
|
],
|
|
262
262
|
]
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
})
|
|
274
|
-
}
|
|
263
|
+
test.each(TESTS)('%s', (input, host, path, search, hash) => {
|
|
264
|
+
const urip = new AtUri(input)
|
|
265
|
+
expect(urip.protocol).toBe('at:')
|
|
266
|
+
expect(urip.host).toBe(host)
|
|
267
|
+
expect(urip.hostname).toBe(host)
|
|
268
|
+
expect(urip.origin).toBe(`at://${host}`)
|
|
269
|
+
expect(urip.pathname).toBe(path)
|
|
270
|
+
expect(urip.search).toBe(search)
|
|
271
|
+
expect(urip.hash).toBe(hash)
|
|
272
|
+
})
|
|
275
273
|
})
|
|
276
274
|
|
|
277
275
|
it('handles ATP-specific parsing', () => {
|
|
@@ -360,23 +358,19 @@ describe(AtUri, () => {
|
|
|
360
358
|
'at://did:web:localhost%3A1234/foo/bar?foo=bar&baz=buux#hash',
|
|
361
359
|
]
|
|
362
360
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
expect(uri.search).toBe(search)
|
|
375
|
-
expect(uri.hash).toBe(hash)
|
|
376
|
-
})
|
|
377
|
-
}
|
|
361
|
+
describe.each(BASES)('%s', (base) => {
|
|
362
|
+
test.each(TESTS)('%s', (input, path, search, hash) => {
|
|
363
|
+
const baseUri = new AtUri(base)
|
|
364
|
+
const uri = new AtUri(input, base)
|
|
365
|
+
expect(uri.protocol).toBe('at:')
|
|
366
|
+
expect(uri.host).toBe(baseUri.host)
|
|
367
|
+
expect(uri.hostname).toBe(baseUri.hostname)
|
|
368
|
+
expect(uri.origin).toBe(baseUri.origin)
|
|
369
|
+
expect(uri.pathname).toBe(path)
|
|
370
|
+
expect(uri.search).toBe(search)
|
|
371
|
+
expect(uri.hash).toBe(hash)
|
|
378
372
|
})
|
|
379
|
-
}
|
|
373
|
+
})
|
|
380
374
|
})
|
|
381
375
|
|
|
382
376
|
it('properly checks that the did property is a valid did', () => {
|
package/tests/nsid.test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as fs from 'node:fs'
|
|
2
|
-
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { describe, expect, it, test } from 'vitest'
|
|
3
3
|
import {
|
|
4
4
|
InvalidNsidError,
|
|
5
5
|
NSID,
|
|
@@ -92,7 +92,7 @@ describe('NSID validation', () => {
|
|
|
92
92
|
})
|
|
93
93
|
|
|
94
94
|
describe('valid NSIDs', () => {
|
|
95
|
-
|
|
95
|
+
test.each([
|
|
96
96
|
'com.example.foo',
|
|
97
97
|
'o'.repeat(63) + '.foo.bar',
|
|
98
98
|
'com.' + 'o'.repeat(63) + '.foo',
|
|
@@ -119,15 +119,11 @@ describe('NSID validation', () => {
|
|
|
119
119
|
'org.4chan.lex.getThing',
|
|
120
120
|
'test.12345.record',
|
|
121
121
|
'xn--fiqs8s.xn--fiqa61au8b7zsevnm8ak20mc4a87e.record.two',
|
|
122
|
-
])
|
|
123
|
-
it(validNsid, () => {
|
|
124
|
-
expectValid(validNsid)
|
|
125
|
-
})
|
|
126
|
-
}
|
|
122
|
+
])('%s', expectValid)
|
|
127
123
|
})
|
|
128
124
|
|
|
129
125
|
describe('invalid NSIDs', () => {
|
|
130
|
-
|
|
126
|
+
test.each([
|
|
131
127
|
'o'.repeat(64) + '.foo.bar',
|
|
132
128
|
'com.' + 'o'.repeat(64) + '.foo',
|
|
133
129
|
'com.example.' + 'o'.repeat(64),
|
|
@@ -157,43 +153,22 @@ describe('NSID validation', () => {
|
|
|
157
153
|
'com.-example.foo',
|
|
158
154
|
'com.example.0foo',
|
|
159
155
|
'com.example.f-o',
|
|
160
|
-
])
|
|
161
|
-
it(invalidNsid, () => {
|
|
162
|
-
expect(validateNsid(invalidNsid)).toMatchObject({
|
|
163
|
-
success: false,
|
|
164
|
-
message: expect.any(String),
|
|
165
|
-
})
|
|
166
|
-
})
|
|
167
|
-
}
|
|
156
|
+
])('%s', expectInvalid)
|
|
168
157
|
})
|
|
169
158
|
|
|
170
159
|
describe('conforms to interop valid NSIDs', () => {
|
|
171
|
-
|
|
172
|
-
.readFileSync(`${__dirname}/interop-files/nsid_syntax_valid.txt`)
|
|
173
|
-
.toString()
|
|
174
|
-
.split('\n')) {
|
|
175
|
-
if (line.startsWith('#') || line.length === 0) {
|
|
176
|
-
continue
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
it(line, () => {
|
|
180
|
-
expectValid(line)
|
|
181
|
-
})
|
|
182
|
-
}
|
|
160
|
+
test.each(readInteropLines('nsid_syntax_valid.txt'))('%s', expectValid)
|
|
183
161
|
})
|
|
184
162
|
|
|
185
163
|
describe('conforms to interop invalid NSIDs', () => {
|
|
186
|
-
|
|
187
|
-
.readFileSync(`${__dirname}/interop-files/nsid_syntax_invalid.txt`)
|
|
188
|
-
.toString()
|
|
189
|
-
.split('\n')) {
|
|
190
|
-
if (line.startsWith('#') || line.length === 0) {
|
|
191
|
-
continue
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
it(line, () => {
|
|
195
|
-
expectInvalid(line)
|
|
196
|
-
})
|
|
197
|
-
}
|
|
164
|
+
test.each(readInteropLines('nsid_syntax_invalid.txt'))('%s', expectInvalid)
|
|
198
165
|
})
|
|
199
166
|
})
|
|
167
|
+
|
|
168
|
+
function readInteropLines(filename: string): string[] {
|
|
169
|
+
return fs
|
|
170
|
+
.readFileSync(`${__dirname}/interop-files/${filename}`)
|
|
171
|
+
.toString()
|
|
172
|
+
.split('\n')
|
|
173
|
+
.filter((line) => line.length > 0 && !line.startsWith('#'))
|
|
174
|
+
}
|
package/tsconfig.build.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/at-identifier.ts","./src/aturi.ts","./src/aturi_validation.ts","./src/datetime.ts","./src/did.ts","./src/handle.ts","./src/index.ts","./src/language.ts","./src/nsid.ts","./src/recordkey.ts","./src/tid.ts","./src/uri.ts","./src/lib/result.ts"]
|
|
1
|
+
{"version":"7.0.0-dev.20260614.1","root":["./src/at-identifier.ts","./src/aturi.ts","./src/aturi_validation.ts","./src/datetime.ts","./src/did.ts","./src/handle.ts","./src/index.ts","./src/language.ts","./src/nsid.ts","./src/recordkey.ts","./src/tid.ts","./src/uri.ts","./src/lib/result.ts"]}
|
package/tsconfig.json
CHANGED