This changelog covers all five packages, as they are (for now) updated as a whole
- #981 Fix bug where the service worker would not update cache with updated code.
- #989 Added an edit button to the resource selector inputs.
- #992 Fix Searchbox overflowing when displaying long names.
- #999 Fix parseMetaTags character escape issue.
- #1014 Fix date input always showing required error even when filled in.
- #1008 Showcase standard properties in the resource selector
- #1008 Add 'New Property' button to the property list in the ontology editor.
- #1008 Fix disabled resource selectors still get highlighted on hover.
- #1008 Add 'open' option to classes and properties in the ontology edit view.
- #1008 Updated the look of the resource selector and made it more responsive.
- #1008 Add info dropdowns to different sections of the ontology editor for more information about the section.
resource.propsis now writeable:resource.props.name = 'New Name'.- Added
store.preloadResourceTree()method, see docs for more info. - Fix generated ontologies not working in a Next.js server context.
- SEMI BREAKING CHANGE: When using generated types by cli, @tomic/lib now requires them to be generated by @tomic/cli v0.41.0 or above.
- Fix types masquerading as esm module in cjs build.
- BREAKING CHANGE:
useCanWritenow only returns a boolean. There is no longer a message returned. - BREAKING CHANGE:
useCanWritedoes not take an agent as argument any more and only checks the agent set in the store. If you need to explicitly check a different agent, useawait resource.canWrite(agent). - BREAKING CHANGE:
useDebounceanduseDebouncedCallbackare no longer exported. - Added
useDebouncedSavehook. - Add a cjs build.
- #983 Give clear error when name collisions are found in an ontology.
- Generates class definitions that enables doing:
resource.props.name = 'New Name';
- #700 Update to Svelte 5. There are significant changes to the API.
- BREAKING CHANGE: Dropped support for Svelte 4 and below.
- BREAKING CHANGE:
getResource()now returns a reactive proxy instead of a readable store. - BREAKING CHANGE:
getResource()now takes a function returning a subject instead of the subject directly. e.g.getResource(() => 'https://my-atomicserver.com/my-resource');. - BREAKING CHANGE: Removed
getValue(). It is no longer needed. Instead useresource.props.namedirectly or doconst name = $derived(resource.get(core.properties.name));. - BREAKING CHANGE: Removed
initStore(). You now need to set your store on a context usingcreateAtomicStoreContext(). - BREAKING CHANGE: Removed
loadResourceTree(). It is now a method onstore:store.preloadResourceTree(). - Added
createAtomicStoreContext()andgetStoreFromContext().
- #700 Update SvelteKit-site template to Svelte 5 and the new @tomic/svelte.
- #966 Add NextJS template.
- #1036 Provide clearer errors when resources couldn't be fetched.
- #993 Fix template not working when the drive subject has a path after the origin.
- #952 Add templates containing pre made ontologies and resources.
- #970 Add "show commit" button in History
- #968 Allow users to pick files by entering a subject into the file picker search bar.
- #969 Fix markdown editor sometimes doesn't update the value after saving.
- #975 Add create button to resource selector without classtype.
- Fix markdown editor closing the edit page when a button is clicked.
- Add an edit button to the default resource view.
- BREAKING CHANGE: removed the
importJsonAdStringfunction. - Added
store.importJsonAD()method. - Added support for commonJS modules.
- Fix shortnames in externals.ts are not converted to camelCase.
- Filter out duplicate classes and properties in generated types.
- Added
@tomic/create-templatepackage to create new templates.
- #855 Add a dialog that shows how to fetch and use the current resource in your code.
- #896 Fix an issue where sidebar items require a double tap on iOS.
- Updated look of the default resource form.
- #896 Fix an issue where sidebar items require a double tap on iOS.
- Updated the look & feel of the sidebar a bit.
- #893 Fix tables not showing any rows when viewing from a different server.
- Fix an issue where the resource-array properties would be set to an empty array instead of removing the property when removing all items in the input.
- Fix an issue where dropdown menus sometimes jump from the upper left corner of the screen.
- Added a full page view for tags.
- Redesigned the ontology page.
- Moved the resource context menu to the top of the page.
- #861 Fix long usernames overflowing on the share page.
- #906 Reset changes after clicking the cancel button in a form or navigating away.
- #914 Fix an issue where changing the subject in a new resource form could update the parent of existing resources if their subject matched the new subject.
- #925 Added export to CSV option to tables.
- #919 Automatically sort classes and properties in the ontology editor.
- #936 Updated the address bar to make it clearer it's also search bar.
- Added
LocalChangeevent toResource. - Added
resource.refresh()method. - Removed
cross-fetch, if your environment does not support fetch make sure to add a polyfill or inject one usingstore.injectFetch().
- BREAKING CHANGE: Removed the
useLocalStoragehook. - When using any
useValuetype hook, values will now update when local changes are made to the resource from elsewhere in the app. - #257 Added
<Image />component that automatically optimizes images for the web.
- #257 Added
<Image />component that automatically optimizes images for the web.
- #845 Add option to create instances and tables from the ontology view.
- #845 Add default Ontology option to drives.
- #841 Add better inputs for
TimestampandDatedatatypes. - #842 Add media picker for properties with classtype file.
- #850 Add drag & drop sorting to ResourceArray inputs.
- #757 Add drag & drop sorting to sidebar.
- #873 Add option to allow multiple resources in relation columns (Tables).
- #825 Folder display styles are now saved locally instead of on the resource. The display style property will now act as the default view style.
- #884 Add new markdown editor.
- #840 Added
store.search(). - Deprecated
resource.getSubject()in favor ofresource.subject. - Deprecated
store.getResouceAsync()in favor ofstore.getResource(). - Deprecated
resource.pushPropval()in favor ofresource.push(). - Deprecated
resource.removePropval()in favor ofresource.remove(). - Added
resource.matchClass()method. - Added
resource.setVersion()method. - Added
collection.getMembersOnPage()method. - Added
collection.totalPages. - Fix lib not working in non-secure browser contexts.
- BREAKING CHANGE: Renamed
resource.getCommitsCollectiontoresource.getCommitsCollectionSubject. - BREAKING CHANGE:
resource.getChildrenCollection()now returns aPromise<Collection>instead of a subject. - BREAKING CHANGE:
resource.createSubject()no longer accepts a class name as an argument and defaults to a fully random subject. - BREAKING CHANGE: Resource now keeps a reference to store internally, therefore all methods that required you to pass a store have been changed to not require a store.
These methods are:
resource.canWrite()resource.getHistory()resource.getRights()resource.destroy()resource.save()resource.set()resource.removeClasses()resource.addClasses()
- Added
useCollectionPagehook. - Fix bug where
useCollectionwould fetch the collection twice on mount. useServerURLno longer stores the server url in localstorage.
- #837 Fix timestamp is mapped to string instead of number.
- #831 Give clear error when trying to generate types from a non ontology resource
- #830 Create output folder if it doesn't exist
- Use type import in generated files.
- #747 Show ontology classes on the new resource page.
- #770 Display more info on the search result page.
- #771 Tables: Don't paste in multiple rows when focused on an input
- #758 Fix Relation column forms to close when clicking on the searchbox
- #780 Use tags in ontology editor to create enum properties.
- #810 Add button to resource selectors to navigate to the selected resource.
- #764 Add option to format numbers as currency in tables.
- #819 Fix number input always shows 'required' even when it's optional.
- #816 Fix bug where editing a column in a table would not submit when pressing enter.
- Fix server not rebuilding client when files changed.
- Added persistent scrollbar to table
- Improved table header UX
- Numbers in tables now respect user locale
- #798 Add
store.newResource()to make creating new resources more easy. - Always fetch all resources after setting + authenticating new agent with websockets #686
- Add progress callback to
resource.getHistory()And increased its performance for resources with a large number of commits #745 - Fix websocket bug on port localhost with port 80
- Add support for types generated by @tomic/cli
- Proxy resource objects instead of cloning them for reactivity.
- Fix bug where an externals.ts file was generated for properties that are already available through @tomic/lib.
Collectionis now an async iterator- Added
getAllMembersmethod toCollection - Fix
setcall with equal arrays #715 - Fix ontologies export bug #728
- Add table editor #639. Add resource instances using table columns, add properties as rows, paste and copy CSV, keyboard support, sorting.
- Add ontology editor #648. Easily create classes, properties and visualize their relationships.
- Show resource usage (incoming links) in data view.
- New resource selector that uses searchbox #677
- Sidebar redesign
- Switch to current drive button #681
- Add support for typed resources through
resource.props, powered by@tomic/cli(see below) - When saving a resource whose parent has not yet been saved we now add them to a batch that gets saved later when the parent is saved.
- The
scopeoption inSearchOptshas changed toparentsand now accepts an array of subjects instead of a single subject. - BREAKING: Removed
getCommitBuilder()method fromResource - Added
hasUnsavedChanges()method toResource - Fix bugs in state management: proxy resources instead of clone (for react) #682 #675 #657
- NEW
- Generate typescript files from ontologies #665
- Improve performance collapsed sidebar items.
- Add article view #319
- Add resource history view
- New subjects have nested paths by default
- BREAKING:
buildSearchSubjectnow takes a serverURL instead of the store. - Fix bug where @tomic/lib would not work in a non-browser context.
- Add
resource.getHistorymethod that returns a list of previous versions of the resource. - Add
store.getResourceAncestrymethod, which returns the ancestry of a resource, including the resource itself. - Add
resource.titleproperty, which returns the name of a resource, or the first property that is can be used to name the resource. store.createSubjectnow accepts aparentargument, which allows creating nested subjects.
- Move static assets around, align build with server and fix PWA #292
- Add
useChildrenhook andStore.getChildrenmethod - Add new file preview UI for images, audio, text and PDF files.
- Add new file preview types to the folder grid view.
- Fix Dialogue form #308
- Refactor search, escape query strings for Tantivy
- Add
importcontext menu, allows importing anywhere
- Add more options to
useSearch
- Add
Store.parseMetaTagsto load JSON-AD objects stored in the DOM. Speeds up initial page load by allowing server to set JSON-AD objects in the initial HTML response. store.createSubjectallows creating nested paths- Add
Store.postToServermethod, addendpoints,importJsonAdString - Add
store.preloadClassesAndPropertiesand removeurls.properties.getAllandurls.classes.getAll. This enables usingatomic-data-browserwithout relying onatomicdata.devbeing available. - Fix Race condition of
store.getResourceAsync#309 - Add
buildSearchSubjectinsearch.tswhich allows you to build full text search queries to send to Atomic-Server. - Add
importJSONADStringfunction, allowing you to import resources from external sources.
- Remove
initAgentFromLocalStorage(). - No longer save agent to local storage.
- Add the ability to change the
fetchfunction used to fetch resources over http. store.addResourceis depricated in favor ofstore.addResources.- Add
AgentChangeevent on store that is fired whenever the stores agent changes. store.fetchResourceFromServernow returns the requested resource.- Add
postCommitmethod tostorethat respects the injectedfetchfunction.
uploadFiles()has moved tostore.uploadFiles().- Remove
Agent.fromJSON() tryValidURLandisValidURLare now static methods onClientand have been renamed totryValidSubjectandisValidSubject.- Rename
store.fetchResourcetostore.fetchResourceFromServer. - Rename
store.handleErrortostore.notifyError. - Rename
agent.checkPublicKeytoagent.verifyPublicKeyWithServer. - Remove
store.errorHandlerand replace with newStoreEvents.Errorevent.
- Don't use WebSocket in Node context #280
- Fix @tomic/lib exports for non-ts contexts #270
- Fix back / forward buttons in desktop build #263
- Fix
isOfflinefor node
- Add folders with list & grid views, allow drag & drop uploads #228
- Show icons in sidebar
- Add scoped search, funded by NGI NLnet Discovery #245 #254
- Make web app installable #30
- Add cookie based authentication #241
- Get rid of
useWindowSize#256 canWritecheck should succeed forpublicAgent#252- Improve error look & text
- Lock ed25519 version #230
- Changed
nulltoundefinedin many places useTitlereturns anarraywith asetTitlefunction, similar touseStateresource.getError()is deprecated in favor orresource.error
- Add Hierarchy in sidebar #75
- Add DriveSwitcher #209
- Add
new driveoption - Add
EventManagerto run custom functions when resources are added / edited / etc. - Add dialog / modal view #24 #181
- Add bookmark import / reader mode #187
- Stricter non-null checks, improved typings #220
- Switch from
yarntopnpm#210 - Various improvements to Dropdown forms #194
- Fix crash in circular parent rendering
- Fix race condition #189
- Make all titles editable #199
- Don't subscribe to search endpoint #200
- Refactor e2e tests
- Render floats
- Hide unsortable items in tables
- Fix dropdown resource select input #222
- Fix Dropdown input bug
- Fix autogrow textarea bug
- Add ChatRooms #153
- Improve UX for creating new Resources, instantly open new ChatRooms and Documents
- Refer to
previousCommits in Commits #140 - Disable websockets out of browser context for
@tomic/lib - Fix NPM builds for
@tomic/liband@tomic/reactin non-ts environments #155 - tauri back buttons, new tab external links #115
- Fix concurrency issue with commits #91
- Make bugsnag optional #133
- Add
parseCommitfunction - Use
hrefattribute in sidebar menu #148 - Use relative links in About page #149
- Show
CommitDetailthat displays audit info (creator, edit date) #145 - Prevent using
localhostAgents for external Servers - Implement
push, for appending new Resources to (existing) Arrays in Commits. - Replace snowpack with vite #156
- Use yarn v2 and replace lerna #105
- Prevent default actions for keyboard shortcuts
- Improve cross-OS keyboard shortcuts compatibility (cmd & ctrl, option & alt)
- Fix markdown being shown shortly
- Don't use WebSockets if they're not supported #131
- Fix
@noblebuild issues
- Switch to
dnd-kitfor drag and drop #92 - Improved views for external resources in Documents
- Add upload dropzone to documents
- Replace
react-helmetwithreact-helmet-async
@tomic/reactcan now be used without@tomic/lib- it re-exports the library- More performant subject updates in new resource form
- Allow
@tomic/libto be used in non-browser (Node) context #128 - Add
useMarkdownfunction to@tomic/react - Make search result previews smaller
- Fetch full collections when showing CollectionCard
useResourcedefaults to not accepting incomplete resources- Add
sign inbutton to invite form - Rename
baseUrltoserverUrl - Add
useServerSearchto@tomic/react - Improve UX in Tauri (desktop) mode
- Regular Links open in your browser, instead of in Atomic
- Add File management views. Preview images and videos, download them. #121
- Add
uploadFilesmethod to @tomic/lib. #121 - Add upload field to forms #121
- Fix bug resourcearray input #123
- Add WebMonetization support #124
- Add Share settings screen where you can see & edit rights / access control #113
- Add Invite form #45
- Convert Classes to typescript interfaces. Show button for this in Class view. #118
Create new resourcebutton on Drive- Show multiple parents in breadcrumbs
- Refresh collection on opening page
- Don't auto-accept invites
- Improve server switcher design
- Change default port of localhost to 9883 (issue)
- Small fix
- Add authentication: sign requests, so the server knows who sent it. This allows for better authorization. #108
- Refactor Error type, improve Error page / views
- Automatically retry unauthorized resources (but I want a prettier solution, see #110)
useResourceno longer returns an array, but only the resource.- Improved EndpointPage (show results, useful for Search, for example)
- Added server-side full text search #106
- Add a seperate document show page #2, improved performance in Documents
- Improved
canWritehook (more stable, faster) - Improved sidebar performance (less re-renders)
- Improve styling tables and sort dropdown
- It's mostly an
atomic-serverversion bump :)
- Fix setting Agent bug
- Add constructor to Store
- Include all Properties and Classes in the initial view, speeding up the app even further. #65
- Parse nested, named JSON-AD resources #98
- Refactor resource status - remove
Resource.status, prefer.loadingand.error - Add loading and error status to Property class, include in
useProperty - Improve loading and error states for various components
- Refactor
store.getResourceLoading,store.fetchResource,useResource- add option toacceptIncomplete.
- Add Typedoc documentation #100
- Fix bug not showing resource form fields
- Fix circular parent handling in
canWrite - Update references to changed resources #102
- Use
wsinstead ofwssfor HTTP connections
- Fix
wsswebsockets - Update typescript type exports
- Added WebSockets for live synchronization with server #80
- Add Commit parsing #80
- Custom fonts
- Prevent re-applying locally defined commits #90
- Fix race condition commits #91
- Added
optsparameter to react hooks - Simplify internal Value model (better performance, less bugs) #88
- Fix bugs when setting Agent, validate public key before setting
- Add integration / end to end tests #70
- Add Document editor (demo) #2
- Improved performance and less concurrency bugs while quickly saving resources
- Improve styling (soft background on light mode)
- Add baseURL settings page + edit function in top left
- Improve resource selector dropdown, show previews, remove dependency #60
- Add toast notifications #63
- Enable
resource.save()with custom agent - Add JSON AD array parser
Addremoveddefault_store.jsonresource to the browser to make things snappier- Improve type checking for value initialization and serialization types
- Improve view for nested resources
- Match version number of atomic-data-rust
- Add Version button to menu
- Disable menu buttons that are not usable
- Improve error view in cards
- Only show plus icon in suitable collections
- Fix tests
- Cleaned up Resource form #51
- Handle usages left in Invites #45
- Add social meta tags #44
- Add fetch as JSON / JSON-AD / Turtle and more to data pages
- Fix bug with invites
- Various styling improvements
- Add Atomic Data Logo
- Dark mode syncs with user
- Scroll to top on page change #47
- Improve keyboard shortcuts for edit / data view #52
- Move Agent settings to sidebar item
- Add rights check
- Change routes and settings structure
- Add Disabled state to form fields
- Improved hotkey handling
- Fix edit subject in resource form
- Resources will update when properties change (notify listeners on update)
- clean up package.json / dependencies
- Add rights check hook
- Add
getCommitBuilderandhasChangesfunction toresourceandcommitBuilder - Add rights check to resource
- Split packages, switch to monorepo
- Publish
@tomic/liband@tomic/reactlibraries to npm - Add changelog