chore: release package - #164
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@hypercerts-org/lexicon@0.10.0
Minor Changes
#76
3044e22Thanks @s-adamantine! - Add org.hypercerts.acknowledgement lexicon for bidirectional inclusion links between records across PDS repos#141
06fb6b5Thanks @holkexyz! - Add CEL expression support for structured work scopes (org.hypercerts.workscope.cel,org.hypercerts.workscope.tag)#106
b03a1f7Thanks @copilot-swe-agent! - Add avatar and banner fields to collection lexicon for visual representation#113
c3f9ca2Thanks @holkexyz! - Refactor collection items structure to support optional weights and remove activityWeight from activity schemaBreaking Changes:
org.hypercerts.claim.activity):org.hypercerts.claim.activity#activityWeightdeforg.hypercerts.claim.collection):org.hypercerts.claim.collection#itemsfrom array of strongRefs to array of item objectsorg.hypercerts.claim.collection#itemdef with:itemIdentifier(required): strongRef to an item (activity or collection)itemWeight(optional): positive numeric value stored as stringMigration:
Collection items: Convert from array of strongRefs to array of item objects:
Activity weights: Migrate existing
org.hypercerts.claim.activity#activityWeightdata to collectionorg.hypercerts.claim.collection#item.itemWeight:Update collections that reference activities to include weights in
org.hypercerts.claim.collection#item.itemWeight. Weights can be dropped if not needed.#149
9f124ebThanks @daviddao! - Addorg.hyperboards.boardandorg.hyperboards.displayProfilelexicons for hyperboard visual presentation records.#123
c623d32Thanks @aspiers! - Addlocationproperty to collections. Collections can now reference a location record directly via strongRef. This replaces the sidecar pattern which was impractical since location records cannot be reused across multiple collections.#140
20eb414Thanks @holkexyz! - Add app.certified.actor.organization sidecar record for organization actor profiles with fields for organization type, labeled URLs, location (strongRef), and founded date#133
6752cadThanks @Kzoeps! - Add profile lexicon for Hypercert account profiles with support for display name, description, pronouns, website, avatar, banner.#78
c55d8a7Thanks @bitbeckers! - Remove org.hypercerts.claim.project lexicon and replace with org.hypercerts.claim.collection.project sidecar. Projects are now represented as collections with an optional project sidecar (same TID) that provides rich-text descriptions, avatars, and cover photos. Avatar and coverPhoto fields moved from base collection to project sidecar. Collections without the project sidecar are simple groupings; collections with it are "projects" with rich documentation.#91
0c6da09Thanks @holkexyz! - Add rich text facet support to activity claim descriptionsAdd
shortDescriptionFacetsanddescriptionFacetsfields to the activity lexicon to support rich text annotations (mentions, URLs, hashtags, etc.) in activity claim descriptions.#144
fb90134Thanks @holkexyz! - Make items optional in collection schema to allow creating empty collections#151
4d5f42fThanks @holkexyz! - Add optionalurlfield toapp.certified.badge.awardfor linking to an external page associated with the badge#122
3e3da41Thanks @aspiers! - Drop HELPER_ prefix from workScopeTag constants.HELPER_WORK_SCOPE_TAG_NSID,HELPER_WORK_SCOPE_TAG_LEXICON_JSON, andHELPER_WORK_SCOPE_TAG_LEXICON_DOCare nowWORK_SCOPE_TAG_NSID,WORK_SCOPE_TAG_LEXICON_JSON, andWORK_SCOPE_TAG_LEXICON_DOC.#136
062fbdeThanks @copilot-swe-agent! - Expand locationType knownValues to include geojson, h3, geohash, wkt, address, and scaledCoordinates from the Location Protocol spec#131
7f42fadThanks @aspiers! - Add inline string format to app.certified.location schema with documentation and examples#121
5c33b79Thanks @aspiers! - Fix camelCase export names to use underscores. Generated constants likeCONTRIBUTIONDETAILS_LEXICON_*are nowCONTRIBUTION_DETAILS_LEXICON_*for consistency.Affected exports:
CONTRIBUTION_DETAILS_NSID,CONTRIBUTION_DETAILS_LEXICON_JSON,CONTRIBUTION_DETAILS_LEXICON_DOC(wasCONTRIBUTIONDETAILS_*)CONTRIBUTOR_INFORMATION_NSID,CONTRIBUTOR_INFORMATION_LEXICON_JSON,CONTRIBUTOR_INFORMATION_LEXICON_DOC(wasCONTRIBUTORINFORMATION_*)STRONG_REF_NSID,STRONG_REF_LEXICON_JSON,STRONG_REF_LEXICON_DOC(wasSTRONGREF_*)HELPER_WORK_SCOPE_TAG_NSID,HELPER_WORK_SCOPE_TAG_LEXICON_JSON,HELPER_WORK_SCOPE_TAG_LEXICON_DOC(wasHELPER_WORKSCOPETAG_*)#132
da481e0Thanks @aspiers! - Convert app.certified.defs#did to object typeThe did definition in app.certified.defs has been converted from a primitive
string type to an object type to comply with the ATProto specification
requirement that all union variants must be object or record types.
This change was necessary because app.certified.badge.award uses this
definition in a union for the subject property.
Breaking changes:
app.certified.defs#did: Now an object withdidstring property (maxLength 256).didproperty instead of using the value directly#132
e134b26Thanks @aspiers! - Convert union string definitions to object types in activity lexiconThe contributorIdentity, contributorRole, and workScopeString definitions
in org.hypercerts.claim.activity have been converted from primitive string
types to object types to comply with the ATProto specification requirement
that all union variants must be object or record types.
Additionally, maximum length constraints have been reduced to more reasonable
values:
contributorIdentity.identity: maxLength 1000, maxGraphemes 100 (previously no limits)contributorRole.role: maxLength 1000, maxGraphemes 100 (previously maxLength 10000, maxGraphemes 1000)workScopeString.scope: maxLength 1000, maxGraphemes 100 (previously maxLength 10000, maxGraphemes 1000)Breaking changes:
contributorIdentity: Now an object withidentitystring propertycontributorRole: Now an object withrolestring propertyworkScopeString: Now an object withscopestring propertyThis requires updating code that uses these union types to access the nested
property instead of using the value directly.
#152
2afb6edThanks @holkexyz! - Use Leaflet linear documents for rich-text descriptions in activity and attachment lexicons, and make attachment content optional.#161
96bdb6cThanks @aspiers! - Improved exports structure with semantic collection mappings for extra syntactic sugar.Breaking Changes:
idsexport toHYPERCERTS_NSIDS_BY_TYPE(maps type namespaces to NSIDs)New Features:
HYPERCERTS_NSIDSobject with semantic keys (e.g.,ACTIVITY,RIGHTS,CONTRIBUTION)HYPERCERTS_LEXICON_JSONobject with semantic keys mapping to raw JSON lexiconsHYPERCERTS_LEXICON_DOCobject with semantic keys mapping to typed lexicon documentsMigration Guide:
If you were using the
idsexport (rare):Most users should use individual NSID constants (unchanged):
Or the new semantic mapping:
#161
6a62c04Thanks @aspiers! - This release represents the migration of the lexicon package from the SDK monorepo (hypercerts-sdk/packages/lexicon) to a dedicated standalone repository (hypercerts-lexicon). This separation allows for independent versioning and development of the lexicon definitions.Major architectural and feature updates compared to the SDK lexicon package include but are not limited to the following:
New Lexicons:
org.hypercerts.claim.activity- activity-based hypercert records (replaces single claim model)org.hypercerts.claim.project- projects that group multiple activitiesorg.hypercerts.defs- common types (uri, smallBlob, largeBlob, smallImage, largeImage)app.certified.badge.definition,app.certified.badge.award,app.certified.badge.responsefor badge-based endorsementsorg.hypercerts.funding.receipt- payment and funding trackingArchitectural Changes:
org.hypercerts.claimrecord with activity-basedorg.hypercerts.claim.activitymodelactivityWeight) instead of claims (viaclaimItem)workScopeobject with label-based conditions (withinAllOf,withinAnyOf,withinNoneOf)startDate/endDateinstead ofworkTimeFrameFrom/workTimeFrameToorg.hypercerts.defs#smallImageinstead ofapp.certified.defs#uri/smallBlobDefinition Updates:
app.certified.defsnow includesdidtype definitionorg.hypercerts.defswith image and blob type definitionsRemoved/Replaced:
org.hypercerts.claim(replaced byorg.hypercerts.claim.activity)org.hypercerts.collection(replaced byorg.hypercerts.claim.collectionusing activities)#153
57dc44cThanks @holkexyz! - Improve acknowledgement schema: move to org.hypercerts.context.acknowledgement, generalize descriptions, make context optional, add maxGraphemes to comment.#158
7743aa6Thanks @holkexyz! - Move collection lexicon fromorg.hypercerts.claim.collectiontoorg.hypercerts.collectionto reflect that collections can contain more than just claims.#154
4c52b2cThanks @holkexyz! - Move evaluation and attachment lexicons to org.hypercerts.context namespace.#135
806cfbcThanks @Kzoeps! - Move profile lexicon from app.certified.profile to app.certified.actor.profile namespace, requiring migration of existing profile records#97
ceddab9Thanks @aspiers! - Move schema documentation tables from README.md to auto-generated SCHEMAS.md to reduce git merge conflicts. The SCHEMAS.md file is now auto-generated from lexicon definitions and included in the distributed package.#102
68011aeThanks @holkexyz! - Refactor contributions structure in activity lexiconBreaking Changes:
org.hypercerts.claim.activity):contributionsfield tocontributorscontributionsarray (array of strongRefs) with newcontributorsarray containing contributor objectsorg.hypercerts.claim.activity#contributor) has three fields:contributorIdentity(required): string (DID/identifier) or strongRef to a contributor information recordcontributionWeight(optional): positive numeric value stored as stringcontributionDetails(optional): string or strongRef to a contribution details record#contributor: object type for contributor entries#contributorIdentity: string type for DID/identifier values#contributorRole: string type for contribution details (maxLength 10000, maxGraphemes 1000)Migration:
Convert from array of strongRefs to array of contributor objects:
#120
b2f7b68Thanks @holkexyz! - Refactor measurement lexicon schema: convert subject to subjects array, add unit field, date ranges, and locations arrayBreaking Changes:
org.hypercerts.context.measurement):subject(single strongRef) tosubjects(array of strongRefs, maxLength: 100)measurersfrom required, addedunitas requiredunitfield (required, string, maxLength: 50): The unit of the measured value (e.g. kg CO₂e, hectares, %, index score)startDatefield (optional, datetime): The start date and time when the measurement beganendDatefield (optional, datetime): The end date and time when the measurement endedlocation(single strongRef) tolocations(array of strongRefs, maxLength: 100)measurersfrom required to optional fieldcommentfield (optional, string): Short comment suitable for previews and list viewscommentFacetsfield (optional, array): Rich text annotations forcomment(mentions, URLs, hashtags, etc.)metricandvaluewith more detailed examples#67
b51dd76Thanks @bitbeckers! - Remove bidirectional project-activity link. Activities no longer include aprojectfield reference. Projects continue to reference activities via theactivitiesarray, making the relationship unidirectional (project → activities only).#98
43b0431Thanks @aspiers! - Remove org.hypercerts.claim.collection.project lexicon#155
a59e541Thanks @holkexyz! - Rename contributionDetails to contribution (org.hypercerts.claim.contribution).#118
8427780Thanks @holkexyz! - Rename evidence lexicon to attachment and refactor schema structureBreaking Changes:
org.hypercerts.claim.evidence→org.hypercerts.claim.attachmentorg.hypercerts.claim.attachment):subject(single strongRef) tosubjects(array of strongRefs, maxLength: 100)contentfrom single union (uri/blob) to array of unions (maxLength: 100)contentTypefield (string, maxLength: 64) to specify attachment typerelationTypefield (previously used to indicate supports/challenges/clarifies)contributorsfieldlocationsfieldshortDescriptionFacetsanddescriptionFacets(arrays ofapp.bsky.richtext.facet)["title", "content", "createdAt"](content is now required)org.hypercerts.defs):weightedContributordef for contributor references with optional weightscontributorIdentitydef for string-based contributor identificationMigration:
Lexicon ID: Update all references from
org.hypercerts.claim.evidencetoorg.hypercerts.claim.attachment.Schema migration:
Field mapping:
subject→subjects(wrap in array)content(single) →content(array, wrap existing value)relationType→ remove (no direct replacement)contributors→ remove (no direct replacement)locations→ remove (no direct replacement)#156
86f252dThanks @holkexyz! - Require createdAt in app.certified.actor.profile schema#161
ec91289Thanks @aspiers! - chore: switch to build via rollupMajor build system improvements:
dist/index.mjs) and CommonJS (dist/index.cjs) bundlesdist/index.d.ts)/lexiconsexport for lighter bundle (validation only)generated/exports.tswith clean, organized exportsgenerated/directory (gitignored)@hypercerts-org/lexicon(full package with types)@hypercerts-org/lexicon/lexicons(schemas only, smaller bundle)@atcute/leafletfor external lexicon referencesmultiformatsas runtime dependency@atproto/lex-clito devDependencies (build-time only)Migration: No breaking changes for existing users. Package structure is improved
but import paths remain compatible.
#125
771d142Thanks @s-adamantine! - Simplify workScope to union of strongRef and stringBreaking Changes:
workScopefield inorg.hypercerts.claim.activityis now a union of:com.atproto.repo.strongRef: A reference to a work-scope logic record for structured, nested work scope definitionsorg.hypercerts.claim.activity#workScopeString: A free-form string for simple or legacy scopesorg.hypercerts.defs:workScopeAll(logical AND operator)workScopeAny(logical OR operator)workScopeNot(logical NOT operator)workScopeAtom(atomic scope reference)This simplification allows work scope complexity to be managed via referenced records while still supporting simple string-based scopes for straightforward use cases.
#47
6a66e4bThanks @satyam-mishra-pce! - Add support for multiple locations in an activity claim.#103
b5d79daThanks @s-adamantine! - Align all lexicons with the ATProto Lexicon Style Guide: change badge responseenumtoknownValues, addmaxLength/maxGraphemesto unconstrained string and array fields, fix style checker to skip format-typed fields.#75
95e2ba1Thanks @s-adamantine! - Unify project and collection schemas into a singleorg.hypercerts.claim.collectionlexicon withtypediscriminatorfield to allow collections to be designated as projects. Custom
strings are also allowed in
type.Also make
shortDescriptionfield optional inorg.hypercerts.claim.collectionto matchorg.hypercerts.claim.project.This unification removes
org.hypercerts.claim.project, so existingprojects should be migrated to collections with
typeset toproject.#80
e8d5a7cThanks @s-adamantine! - Updatedorg.hypercerts.claim.collectionlexicon:typefield to specify collection type (e.g., 'favorites', 'project')collectionTitle→titleshortCollectionDescription→shortDescriptioncollectionDescription→descriptiondescriptionfrom string to Leaflet linear document reference (pub.leaflet.pages.linearDocument#main) to support rich-text descriptionsBreaking changes:
collectionTitle→title)descriptionfield now expects a reference object instead of a plain string#92
bec8e63Thanks @s-adamantine! - Updateorg.hypercerts.claim.contributorlexicon to support individual contributor profiles and roles.Breaking Changes:
contributorsarray.identifier,displayName, andimagefields for individual profiles.descriptiontocontributionDescription.requiredfields to only includecreatedAt.Also corrected incorrect references to
org.hypercerts.claim.contributionacross the codebase to use the correct IDorg.hypercerts.claim.contributor.Patch Changes
#118
8427780Thanks @holkexyz! - Add location property to attachment schemaNew Feature:
locationfield (org.hypercerts.claim.attachment):locationproperty as a strong reference (com.atproto.repo.strongRef)app.certified.locationlexiconUsage:
{ "$type": "org.hypercerts.claim.attachment", "subjects": [ { "uri": "at://did:plc:.../org.hypercerts.claim.activity/...", "cid": "..." } ], "content": [{ "uri": "https://..." }], "title": "Field Report", "location": { "uri": "at://did:plc:.../app.certified.location/abc123", "cid": "..." }, "createdAt": "..." }This change aligns with the location property addition to collections (PR feat: add location property to collections #123), providing a consistent pattern for associating location metadata across record types.
#161
5a490bfThanks @aspiers! - Add basic test suite using vitest 4.#77
0d61ff7Thanks @bitbeckers! - Document ATProto sidecar pattern for collections using app.certified.location. Collections can now have location metadata by creating a location record with the same TID, allowing location updates without changing the collection CID. Updated README with usage example and ERD with sidecar relationship.#161
ece7629Thanks @aspiers! - Include CHANGELOG.md in package distribution for better user documentation.#74
f845f92Thanks @aspiers! - Make startDate and endDate optional in activity lexicon#161
913eb06Thanks @aspiers! - Switch from bundled to individual type declaration filesChanges:
rollup-plugin-dtsdependencydist/types/Technical Details:
The package now generates individual
.d.tsfiles alongside the bundled JavaScriptoutput. This provides better IDE performance as TypeScript can lazy-load type files
on demand rather than parsing a massive bundled declaration file upfront.