Commit Graph

42 Commits

Author SHA1 Message Date
github-actions[bot] ff9f84e11a Version packages (#4851)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-15 10:06:49 +02:00
github-actions[bot] 83b7246439 Version packages (#4833)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-09 10:24:41 -05:00
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
github-actions[bot] 2203d825e8 Version packages (#4776)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-26 09:17:15 -03:00
github-actions[bot] 8445e8a9aa Version packages (#4770)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-19 15:53:07 +01:00
github-actions[bot] 13b2aad9b6 Version packages (#4720)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-18 16:47:57 -05:00
github-actions[bot] 88326d2833 Version packages (#4703)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-03 15:45:46 +01:00
github-actions[bot] caad88223f Version packages (#4653)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-20 09:05:35 +01:00
Matthieu Sieben ea5df64db9 Various Lex SDK improvements (#4660)
* Various Lex SDK improvements

* changeset

* Improve typeing of `string()` schemas

* fix tests

* improve backwards compatibility
2026-02-19 13:52:24 +01:00
Matthieu Sieben 39dea03c41 Lex SDK fixes and improvements (#4654)
* minor tests fix

* Properly support "enum" and "const" schemas in params

* tidy

* Add support for `knownValues` in string schemas

* tidy

* tests

* tidy

* tidy

* tidy

* fix types

* fix tests

* add suggested tests

* merge conflicts
2026-02-19 13:17:54 +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
github-actions[bot] 6ae3cf6131 Version packages (#4637)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-13 15:11:24 +01:00
dan 619068fb81 Expose LexDefBuilder and allow passing moduleSpecifier (#4610)
* Expose LexDefBuilder and allow passing moduleSpecifier

* Changeset
2026-02-13 15:07:10 +01:00
github-actions[bot] 27cdeb4e86 Version packages (#4604)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-02-06 15:12:15 +01:00
Matthieu Sieben ed61c62f31 Add docs in lex SDK packages (#4601)
* Fix `exports` field in package.json

* tidy

* AT Protocol
2026-02-06 14:40:54 +01:00
github-actions[bot] 915f9065d3 Version packages (#4584)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-30 14:20:33 -03:00
Matthieu Sieben 8a725a9d69 Change workspace version selector from workspace:* to workspace:^ 2026-01-28 16:42:44 +01:00
github-actions[bot] 595dd20323 Version packages (#4561)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-23 13:29:23 -06: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
github-actions[bot] c2615a7eee Version packages (#4530) 2026-01-12 21:13:16 +02:00
github-actions[bot] 0b03086d35 Version packages (#4518)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-08 18:12:54 +01:00
Matthieu Sieben d78484f94d @atproto/lex improvements (bis) (#4512)
* `@atproto/lex` improvements (bis)

* tidy

* tidy
2026-01-08 15:31:49 +01:00
github-actions[bot] 0093727fc4 Version packages (#4505)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-06 15:59:52 +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
github-actions[bot] 8e759970af Version packages (#4497)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-02 09:48:32 +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
github-actions[bot] 95bd491ecb Version packages (#4466)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-30 10:26:18 -06: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
github-actions[bot] 104e6ed37b Version packages (#4412)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-08 16:05:29 -03:00
Matthieu Sieben e39ca114ac Fix support for NodeJS version <18.18, 19.x, <20.4 and 21.x (#4413)
Add support for NodeJS version <18.18, 19.x, <20.4 and 21.x
2025-12-03 19:15:33 +01:00
github-actions[bot] dc08244c24 Version packages (#4386)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-02 11:05:55 -06:00
Matthieu Sieben a17d2e8a59 Add ignoreInvalidLexicons when building lexicon schemas (#4398)
* Add `ignoreInvalidLexicons` when building lexicon schemas

* tidy
2025-12-01 08:41:54 +01:00
Matthieu Sieben 688f9d6759 Add changelog to npm packages and @atproto/lex readme (#4397)
* Add changelog to npm packages and `@atproto/lex` readme

* changeset
2025-11-30 20:02:12 +01:00
Matthieu Sieben bcae2b77b6 Increase string format typing strictness (#4389)
* Increase string format typing strictness

* fix tests

* tidy

* Use string formats from `@atproto/syntax`

* tidy

* `key` field in `record` definitions is non optional and now properly validated

* add missing /*@__NO_SIDE_EFFECTS__*/
2025-11-30 19:46:07 +01:00
Matthieu Sieben 1d445af2a7 lex SDK improvements (#4390)
* Add `l.nullable` schema builder

* Use unique symbol to describe Validator type metadata

* fixup! Add `l.nullable` schema builder

* Rework object validation logic to work without `options` argument

* Do not use symbol for type inference

* Use `Issue` classes to represent validation issues

* Properly apply default value with `const` and `enum` schemas

* style

* Require `l.discriminatedUnion` discriminator field to be a literal or enum schema

* Add `l.refined` schema

* Add more lexicons document validation tests

* wip

* use "assert" fn

* rework refine system

* use assert instead of check fn

* tidy

* Rename schema methods `validate`, `check` and `maybe` to `safeParse`, `matches` and `ifMatches` respectively.

* docs

* changeset
2025-11-30 14:35:15 +01:00
github-actions[bot] 86f6860418 Version packages (#4381)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-25 11:37:09 +01:00
Matthieu Sieben 23c271fcac @atproto/lex improvements (#4380)
* Deterministically order lexicon manifest items (Fixes #4378)

* Use `literal` value as default

* Code style

* Remove `--build`/`--no-build` argument from the `install` command

Fixes #4377

* Add ability to configure file extenstion and import file extension in `lex build`

Fixes #4376

* Fix description of `--allowLegacyBlobs` argument
2025-11-25 11:28:34 +01:00
github-actions[bot] d4d23e1950 Version packages (#4375)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-25 01:16:27 +01:00
github-actions[bot] 151a7b0c6d Version packages (#4373)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-24 23:52:41 +01:00
Matthieu Sieben 7456f53e45 Fix @atproto/lex install (#4372) 2025-11-24 23:45:56 +01:00
github-actions[bot] 72d4bfcfc5 Version packages (#4370)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-24 23:27:19 +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