Matthieu Sieben
c62651dd69
Fix support for legacy blobs in lex SDK ( #4828 )
...
* Allow validation of legacy blobs (in 'validate' mode)
* tidy
* tidy
* tidy
* changeset
* tidy
* review comments
* update skills
* tidy
* Add `TypedBlobRef`
* fix style
* review comments
* lint
2026-04-07 20:11:46 +02:00
Matthieu Sieben
e5e5bcf85f
Show invalid values in issue description ( #4784 )
...
* Show invalid values in issue description (when stringifiable in reasonably small string)
* tidy
* tidy
2026-03-23 13:52:09 +01:00
Matthieu Sieben
527f5d4c5d
Various lex SDK improvements ( #4779 )
...
* Various lex SDK improvements
* tidy
* Improve performances of error instantiation
* Improve clarity of params validation errors (and add "cause" for improved debugging)
* update error handling
* tidy
* tidy
* review comments
* tidy
2026-03-23 11:47:23 +01:00
Matthieu Sieben
3dc3791543
Add Standard Schema compatibility ( #4734 )
...
* Add [Standard Schema](https://standardschema.dev/ ) compatibility
* tidy
* tidy
* rename `StandardSchemaValidator` to `StandardSchemaAdapter`
* `LexValidationError` class now implements `ResultFailure`
* review comments
* add readme
* fix tests
* Add tests for StandardSchemaAdapter (`schema['~standard']`) (#4735 )
* Initial plan
* Add StandardSchemaAdapter tests
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
* changeset
* return `message` in `toJSON`
* review comments
* tidy
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
2026-03-10 16:39:39 +01:00
Matthieu Sieben
f7c26103a6
Increase type strictness in @atproto/syntax ( #4689 )
...
* Increase type strictness in `@atproto/syntax`
* review comments
* wip
* make `rkey` and `collection` AtUri getters actually safe
* tidy
* tidy
* tidy
* changeset
* tidy
* tidy
* fix ci
2026-03-03 15:10:29 +01:00
Matthieu Sieben
cd9deb6f21
Fix conflicting identifier for generated type utilities ( #4659 )
...
Add a `$` in front of the method type utilities to prevent name conflicts with local definitions
2026-02-19 13:04:40 +01:00
Matthieu Sieben
369bb02b9f
@atproto/lex-client error typing improvements (#4589 )
2026-01-30 14:01:17 +01:00
Matthieu Sieben
99963d002a
lex SDK improvements ( #4571 )
...
* Improve code coverage of `@atproto/lex-data` tests
* Improve typing of `@atproto/syntax` type assertion utilities
* Improve performance of `@atproto/lex-schema ` string format checking
* Remove `assertX` string format assertion utilities
* tidy
* tidy
* Rename `isLanguageString` to `validateLanguage`
* add string format utils
* tidy
* Refactor uri validation to use `@atproto/syntax`
* More language validation to @atproto/syntax
2026-01-21 16:15:47 +01:00
Matthieu Sieben
7310b9704d
Fix behavior of "default" and assignment to LexValue ( #4562 )
...
* Fix inability to assign (object containing) open union results to `LexMap` type
* properly support and type default values
* strong cohesion
* changeset
* tidy
* Add validation error as cause when handling invalid records
* tidy
* Update `cborg` dependency, fixing encoding of strings with invalid surrogate pairs, and ignoring `undefined` object properties
* tidy
* Simplify encoding logic of `number`
* Improvements around usage of `noUndefinedVals`
* Memoize array schemas (without options)
* Memoize empty params schemas
* tidy
* tidy
2026-01-20 13:20:56 +01:00
Matthieu Sieben
d78484f94d
@atproto/lex improvements (bis) (#4512 )
...
* `@atproto/lex` improvements (bis)
* tidy
* tidy
2026-01-08 15:31:49 +01:00
Matthieu Sieben
2f78893ace
Small @atproto/lex improvements ( #4501 )
...
* Avoid escaping export identifier when it is a known global
* Use a record type instead of a record schema type as the generic parameter for `ListRecord`
* Export everything from `@atproto/lex-data` and `@atproto/lex-json`
* Add lex-json and lex-data to lex readme
* lock
* Apply defaults when running `schema.$build()` on objects and records.
* changeset
* simplify $Typed and $TypedMaybe
* tidy
* tidy
* Add `enumBlobRefs` utility function
* Add an `indexFile` option that allows generating an "index.ts" file that re-exports every tld namespaces.
* readme
* Add `base64ToUtf8` and `utf8ToBase64` utilities
* Add service auth authentication method
2026-01-06 15:47:13 +01:00
Matthieu Sieben
9af7a2d122
Password based agent implementation ( #4443 )
...
* Password based agent implementation
* tidy
* tidy
* wip
* tidy
* wip
* tidy
* wip
* tests
* tidy
* websocket
* tidy
* tidy
* tidy
* tidy
* tidy
* tidy
* tidy
* tidy
* changeset
* codegen
* tidy
* tidy
* tidy
* tidy
* tests
* tidy
* tidy
* tests
* tidy
* tidy
* tidy
* wip
* tidy
* memoize
* tidy
* tests
* tidy
* files reorg
* Ensure that default values match constraints
* wip
* use vitest to test lex
* Add readme
* fix lint
* add vitest workspace config
* vitest config
* vitest-cfg
* tests
* ignore coverage
* tidy
2026-01-01 13:28:29 +01:00
Matthieu Sieben
e6b6107e02
Lex SDK improvements ( #4457 )
...
* Lex SDK improvements
* changeset
* tidy
* tidy
* Fix `include` option in `tsconfig.test.json` files
* tidy
* ignore "require" in cjs files
* tidy
* tidy
* Improve error management
* rename xrpc-error file
* tests
* fix lint
* lint
* tidy
* puppeteer cache busting
* fix oauth tests
* tidy
* wip
* tidy
* tidy
* tidy
* Forbid use of unsafe integers
2025-12-17 16:14:15 +01:00
Matthieu Sieben
261968fd65
New TS SDK ( #4366 )
...
* lex
* packaging
* moke packaging
* revert test changes
* do not build temp
* tidy
* automatically build the list of `@atproto/lex/com` lexicons
* fix build
* Remove "com" export
* ridy
* remove manifest option
* tidy
* rename
* tidy
* tidy
* tidy
* tests
* add procedure params
* stricter tests
* tidy
* Improve ui8 parsing
* tidy
* tidy
* code split
* code split
* fix reserved keywords conflict
* exclude packages/lex/src/tests/lexicons from lint
* reserved keywords
* safe identifier
* fix build
* move lib.js to src/lib.ts
* Move tests dir
* fix ci ?
* increast lint size
* Remove `Record` type alias for recordsz
* fix package json exports
* Add support for unsafe characters in defs and nsids
* tidy
* token tests
* tidy
* name consistency
* remove unused `unknownKeys` params option
* Fix "moving" keys in `DictSchema` (remove `IntersectionSchema`)
* REview comments
* adapt shebang in `env`
* Make sure union object have their $type property set in typings
* fix
* Improve typing of `UnknownTypedObject`
* lex improvements
* code reorg
* split lex-builder
* tidy
* improve packaging
* rename lex-validation to lex-schema
* lex client
* rename prettifier option
* add lex-client as dependency to "lex"
* Export client as part of main export
* re-write example app using @atproto/lex
* add missing lex-client to tsconfig
* tidy
* add "null" schema type
* Smaller bundle code footprint
* tidy
* correctness
* tidy
* code split and improved testing
* tidy
* refactor common utils
* test all implementations
* improve tests
* tidy
* fix build
* fixes
* tidy
* lint
* tests
* tidy
* fix oauth-example app
* tidy
* tidy
* tests
* tidy
* Return an actual `Uint8Array` from `fromBase64Node`
* tidy
* adapt xrpc-server
* Rename `Lex` to `LexValue`
* minor fixes
* fix tests
* fix tests
* tidy
* fix
* tidy
* tidy
* fix `verifyCidForBytes` implementation
* fix imports
* tidy
* split lex-json in own package
* make base64 tests faster
* Add interop tests
* lint error
* tidy
* tidy
* changeset
* implement lex-resolver and lex-install
* remove need for polyfill
* readme
* more details
* tidy
* allow specifying `service` header on a per request basis
* tidy
* tidy
* tidy
* tidy
* add custom/intersection validation schemas
* tidy
* tidy
* remive un-necessary util
* improve typing of `l.object` output
* make "name" required in lexicon method errors
* fix tests
* tidy
* tidy
* add error responses
* update readme
* add "like " to example
* readme improvements
* tidy
* error management improvements
* Improve error results
* tidy
* refactor
* tidy
* lock
* Update binary to `ts-lex`
* tidy
* tidy
* Add "Overview" section
* fix build
* update bin
* readme-improvements
* paul's feedback
* Update packages/lex/lex/README.md
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com >
* Initial plan
* Address README review comments
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
* Clarify client configuration inheritance behavior
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
* Document allowLegacyBlobs default and compatibility implications (#15 )
* Initial plan
* Add notes about default setting and compatibility for allowLegacyBlobs
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
* Rename `Json` to `JsonValue` in lex-json package (#14 )
* Initial plan
* Rename Json to JsonValue in lex-json package and dependent packages
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
* Remove import alias for JsonValue in ipld.ts
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
* Update packages/lex/lex/README.md
Co-authored-by: Paul Frazee <pfrazee@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Paul Frazee <pfrazee@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Paul Frazee <pfrazee@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Paul Frazee <pfrazee@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Paul Frazee <pfrazee@gmail.com >
* Update packages/lex/lex/README.md
Co-authored-by: Paul Frazee <pfrazee@gmail.com >
* review comments and fixes
* Add lex to the dockerfiles
* tidy
* changeset for lex packages
* tidy
* Tidy
* tidy
* tidy
* Move language parsing to lex-data
* tidy
* doctoc
* error handling
* tidy
* tidy
* tidy
* fix
---------
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: matthieusieben <813661+matthieusieben@users.noreply.github.com >
Co-authored-by: Paul Frazee <pfrazee@gmail.com >
2025-11-24 21:01:16 +01:00