* remove supabase package
* upgrade valibot
* removed supabase package
Migration not complete yet
* update submodule
* fixed some supabase errors
* Add new fields to extension models
- Added `id` field to `ExtPublish`
- Expanded `DBExtension` with multiple new properties:
- `api_version`, `author_id`, `created_at`,
- `downloads`, `icon`, `identifier`,
- `long_description`, `name`,
- `readme`, `short_description`,
- and `tarball_size`
* Refactor: clean up unused Supabase imports
- Removed commented-out Supabase imports from various files to streamline the codebase.
- Updated `created_at` type in `ExtPublish` model from `date` to `string` for consistency.
* update icon enum to union
* fix type errors after removing supabase
* format
* more types fixed
* feat: enhance command handling and update SDK version
* update tauri-plugin-system-info submodule to latest commit cb32fe8
* Update dependencies to latest versions, including valibot to 1.0.0-rc.4 and kkrpc to 0.2.1 across multiple packages. Bump api package version to 0.1.6.
* Update desktop and API package versions; change development server port and URL
* minor ui updates to shiki
* feat: add markdown renderer
* feat(ui): add scroll area component and expand markdown renderer
* feat(ui): expand markdown syntax highlighting with additional language support
* feat(ui): add markdown language support to syntax highlighting
* feat(ui): update markdown syntax highlighting theme to GitHub Dark Default
* feat(ui): add bash language support to markdown syntax highlighting
* feat: add globe component
* Change RetroGrid bg color
* feat: add headless command list to store detail component
* feat: update markdown renderer
Replace svelte-markdown with svelte-exmarkdown, with custom tauri link renderer and code highlight support
* format and fix eslint
* fix: change icon in manifest
* refactor(ui): move BorderBeam component to ui package and update imports
* feat(ui): add new animation components and keyframes utility
* chore(deps): remove svelte-motion and related dependencies
* chore(deps): add svelte-motion and related dependencies
* fix(ui): eslint
* fix: extension store demo image display
* fix(ui): go to settings item in dropdown menu
* format
* chore: comment out auto install for on boarding, its behavior and speed is unpredictable
* fix: clear action when ui template exits
* fix: update extension command search store references
* feat(ui): implement virtual list with advanced search and section handling
- Add @tanstack/svelte-virtual for efficient list rendering
- Integrate Fuse.js for advanced search across list items and sections
- Create dynamic virtual list with support for section headers
- Enhance list view with flexible search and filtering capabilities
- Add new types and components for virtual list management
* chore(desktop): bump package version to 0.1.29
* upgrade tauri-plugin-shellx
* feat(shell): add killPid method to shell API with new permission
* fix: extension new window
* feat(shell): enhance process management and logging in extensions
- Add debug logging for extension process events
- Implement process tracking in UI worker
- Update shell API to support custom process recording
- Modify extension template to demonstrate process spawning
- Refactor shell command handling with improved error handling
* Add killPid extension API to @kksh/api
* chore(deps): update tauri-plugin-shellx-api to version 2.0.15
* pnpm lock
* chore(deps): update dependencies and lock file
- Upgrade ESLint to version 9.21.0
- Update @types/bun to version 1.2.3
- Bump various development dependencies
- Reorganize package.json dependencies in ui package
* chore(deps): update SvelteKit template dependencies
- Add @eslint/js version 9.21.0
- Update package.json dependency order
- Sync pnpm-lock.yaml with package.json changes
* chore: add eslint to desktop
* chore(deps): remove local tauri-plugin-shellx and use published version 2.0.15
* bump desktop to 0.1.28
* feat: add publisher link to extension detail
* fix: improve IconMultiplexer and StoreExtDetail component rendering
* feat: add published date to extension details view
* chore: add moment.js and clean up imports in StoreExtDetail
* fix: support cloudflare worker
Otherwise cloudflare worker gets html instead of json
* refactor: move AppsCmds component to desktop app
* bump: version to 0.1.1
* fix: package.json fetching cors error
* fix: improve files field validation in verify command
* fix: extension new window loading with localStorage
* fix: extension loading in new window
* upgrade: @kksh/svelte5
* refactor: update SideBar import to Sidebar across desktop app
* fix: safely remove test directories with existsSync check
* feat: add open preference command with platform-specific shortcut
* chore: clean up vite config trailing comma
* fix: update email field in KunkunExtManifest to be optional and nullable
* refactor: update Supabase type generation command and enhance database types structure
- Changed the Supabase type generation command to include a specific project reference and output path.
- Refactored the database types in `database.types.ts` for improved readability and added new fields, including `extension_state` and `package_json` in the `ext_publish` table.
- Ensured consistent formatting across type definitions for better maintainability.
* feat: add optional README path to ExtPackageJson and enhance tests for README retrieval
* feat: add optional readmeContent to ExtensionPublishValidationData and retrieve README in validateJsrPackageAsKunkunExtension
* feat: add optional readme field to database types for improved package metadata
* feat: enhance StoreExtDetail to display package metadata including author and contributors
- Added packageJson prop to StoreExtDetail for improved extension metadata display.
- Implemented rendering of author and contributors from packageJson.
- Integrated README content display in StoreExtDetail if available.
- Updated +page.svelte to parse and provide packageJson data using valibot for validation.
* feat: enhance TauriLink component to support conditional rendering based on Tauri environment
- Added detection for Tauri environment using the browser variable.
- Updated the TauriLink component to render a button when in Tauri, and an anchor tag for external links otherwise.
- Improved user experience by ensuring appropriate link behavior based on the application context.
* feat: add unpacked size to npm registry
* feat: replace size in ext_publish table to tarball_size, add unpacked_size (only applicable to npm)
* feat: add pretty-bytes dependency and update debug package version
- Added `pretty-bytes` package with version 6.1.1 to `package.json`.
- Updated `debug` package to use `supports-color@9.4.0` in `pnpm-lock.yaml` for improved compatibility.
* feat: add tarball_size field to database types for improved package metadata
* feat: add readme fetching for npm registry, readme from github
* fix: remove console.log from NPM API test to clean up output
* style: update extension store details
* style: update README section in StoreExtDetail component for improved styling
* fix: update command input placeholder text in English, Russian, and Chinese translations for clarity
* chore: bump version to 0.1.18 in package.json
* fix: lint
* chore: add @inlang/paraglide-sveltekit to @kksh/ui
* feat: add i18n to desktop
* fix: add shrink-0 class to mode-toggle button for consistent styling
* feat: add i18n to settings, not working yet
* feat: i18 working
* feat: add i18n for about
* feat: migrate all goto to use i18n.resolveRoute
* feat: finish translating settings to chinese
* feat: add Chinese i18n for troubleshooters
* feat: add russian translation (by AI)
* format: run prettier
* format
* chore: update .prettierignore to exclude src/lib/paraglide/**
* feat: npm package registry API
* refactor: move package registry files
* refactor: move jsr and npm api to a new package
* ci: add verify-package-export
* test: implement tests for npm package validation as kunkun extension
* chore: add missing dep for package-registry pkg
* feat: make provenance an optional input for npm validation function
* ci: add verify-package-export as dev dep to 2 packages that uses it
* feat: add rekor log API, and return commit from jsr & npm package in validation function
* feat: return github repo info from validation function of jsr and npm
* feat: extend ExtPublishMetadata to include optional GitHub repository details
* fix: eslint for ui package
* refactor: format desktop
* fix: eslint errors in desktop
* format: all code
* ci: add lint to CI
* feat: add more info to validation function returned from package-registry npm jsr
* pnpm lock
* feat: add 2 more variables to supabase extension metadata model
* format
* feat: add provenance card
* feat: add workflow path to ExtPublishMetadata and jsr/npm validation
* update provenance
* feat: make store extension and provenance more responsive
* chore: add globals to ui package
* fix: remove unnecessary any to fix eslint
* fix: svg sanitize
* chore: add @typescript-eslint/eslint-plugin to ui package to fix eslint
* fix: update eslint dep to fix error
* fix: try fixing eslint
* fix: update eslint configuration for improved compatibility
* chore: add globals package and update README for Discord invite
* fix: update eslint rules and upgrade typescript-eslint dependency
- Disabled additional eslint rules to resolve errors:
- @typescript-eslint/no-unused-expressions
- svelte/no-inner-declarations
- Upgraded typescript-eslint from version 8.19.1 to 8.20.0 for improved compatibility.
* update pnpm lock
---------
Co-authored-by: Huakun Shen <huaukun.shen@huakunshen.com>
* chore: upgrade many dependencies
* fix: @kksh/svelte, migrate 5
* refactor: move dialog plugin code out of ui package
* chore: disable check-types in api build.ts
Causing build error in kunkun-services
* feat: add jsr package
* feat: implement jsr package with API and parsers for jsr
* feat: modify API, add function to extract linked github repo from html
* perf: improve jsr package API with @hk/jsr-client
* feat: add jsr package version table for publishing extension
* fix: dependency and type incompatibility in ui package
* feat: add validateJsrPackageAsKunkunExtension function in jsr package
* feat: improve jsr table
* feat: add a ElementAlert component
* feat: update ElementAlert UI
* chore: update deno.lock
* chore: enable submodule support in jsr-publish workflow
* chore: bump version to 0.0.48 in jsr.json
* feat: regenerate supabase types, add author_id
* Move @kksh/jsr package to @kksh/api
* update deno.lock
* chore: change @tauri-plugin/plugin-upload version from git url to version
* feat: add rounded corner for ElementAlert
* chore: update deno.lock
* chore: bump version to 0.0.51 in jsr.json and update import paths for ExtPackageJson
* feat: add publishExtJSR API to SupabaseAPI
* refactor: replace "@hk/jsr-client" from jsr with @huakunshen/jsr-client from npm
* chore: update deno.lock
* feat: update validateJsrPackageAsKunkunExtension return type
* refactor: improve error message
* feat: add metadata to ext_publish, update database.types.ts
* feat: add models module for Supabase with ExtPublishMetadata and source type enumeration
* feat: support installing JSR package as extension
Since JSR overwrites package.json with its own code to be compatible with npm, causing manifest parsing to be impossible. I add metadata field to ext_publish.
When extension comes from jsr, kunkun app will fetch the original package.json from jsr and overwrite the one modified by jsr.
* fix: add missing dep @tauri-apps/plugin-upload to @kksh/extension
* chore: update version to 0.0.52 in version.ts
* feat: add deno install page
* feat: add deno install onboarding page
* feat: add ffmpeg, deno, brew install help page
* feat: improve on boarding page with deno install, setting, ffmpeg install
* refactor: update app configuration and onboarding flow
- Improved the onboarding page layout by adding a draggable region.
- Introduced a new writable store `appConfigLoaded` to track the loading status of app configuration.
- Updated the main application page to subscribe to `appConfigLoaded` for better handling of onboarding logic.
- Minor formatting changes in the ffmpeg installation help page for consistency.
* feat: implement clipboard history preview
* feat: clipboard history pagination
* refactor: format code
* fix: sql schema
* feat: add json metadata to unit test
* upgrade: js dependencies
* upgrade: desktop rust dependencies
* fix: clipboard history duplicate key bug when searchTerm clears
* upgrade: tauri-plugin-network submodule solve pnpm lock file
* fix: grpc package CI
* chore: update turbo.json outputs to include dist and build directories
* fix: try to fix template-ext-vue tailwind module.export
* ci: prevent error when protoc is not installed in CF pages
* fix: update writeFile function to accept ReadableStream as data type
* refactor: replace comlink with kkrpc
* fix: import path in api pkg and btn styling in ui iframe page
* fix: fixed fetch API from kkRPC migrate
* refactor: replace comlink-stdio with kkrpc
* update deno lock
* bump @kksh/api
* update API version
* publish api pkg again to fix kkrpc version
* update pnpm lock
* dep: fix dependency problems
* dep: update deno.lock
* chore: remove 2 submodules
they were added only for integration development
* update pnpm lock
* fix: test template path
* format: with prettier
* downgrade next version
* ci: try to fix next build on windows
* try to fix CI
* Revert "try to fix CI"
This reverts commit b9c63c392f50f1d2d3ceec406e49b1af2348c740.
* upgrade tauri-api-adapter
* try to fix next
* remove templates from pnpm workspace
* update CI test
* publish @kksh/api with upgraded tauri-api-adapter to fix nextjs template
* perf: reduce desktop frontend bundle from 10 to 2MB
Use shiki fine-grained bundle, avoid bundling all languages and themes
* feat: add cross-page transition for ext store back button with gasp Flip
* refactor: move StoreListing.svelte in @kksh/ui back to desktop
I realized that StoreListing is a pure wrapper, all the interactions are done with props. Even if this component is later used in other projects, it either lacks flexibility or require more changes. So it's moved back to desktop as a regular +page.svelte
* feat: Add a bunch of builtin commands for app internal control
* feat: add system commands
* feat: add extensionsInstallDir var to +layout.ts, exposed to all pages
All pages won't need to get the path asynchronously, it's kind of like a global constant
* [feat] troubleshooters (#15)
* feat: add extension loading troubleshooter
* feat: add extension permission inspector
* feat: add extension window map troubleshooter (WIP)
* fix: unregister extension when window is closed
* Feature: Deep Link + Supabase OAuth + open extension in store with deep link (#16)
* feat(auth): add deep link and supabase auth
* fix(deep-link): fix some routing and reactive page rendering
* feat: implement supabase auth with pkce auth flow
* feat: add createTauriSyncStore factory function for creating sync svelte store
* Feature: Quick Link (#17)
* feat: add page for add quick link (not working yet)
* upgrade @kksh/svelte5
* fix: infinite recursive footer
* dep: add @kksh/svelte5 to ui package
* dep: add supabase-js
* dep: add @iconify/svelte
* style: modify StoreExtDetail width control
* fixed: UI for extension store detail
* feat: add page to create quick link
* feat: display quick links in cmd palette
* snapshot
* show queries in command input
* feat: quick link fully implemented
* refactor: format all with prettier
* feat: add icon picker for quick link adder
* fix: make invert for icon optional, caused many types to crash
* [Feature] Implement UI template worker command (#20)
* feat: add ui worker command loading code (not working yet)
* feat: add unocss
* feat: add-dev-extension page
* feat: implemented list view template
* feat: implement list view detail view width, add demo extension for dev
* fix: resize listview, add metadata component
* fix: metadata tag component background color
* feat: implement boolean (checkbox), date fields for form template
* feat: support default, optional, placeholder for form fields
* feat: implemented form view Select Field
* feat: markdown view
* feat: fixed a markdown schema type error
* fix: markdown styling
* feat: implement action panel for UI worker template list view
* format: format all
* chore: bump desktop version
* fix: fix search term bind in list view
* chore: add vendor submodules
* feat: add packages for db,ci,schema,api,jarvis cmds
* feat: add tauri-jarvis-plugin
* feat: implement extension commands list
* fix(desktop): import path errors after packages refactor
* chore: add self signed cert
* fix: prevent prerender for desktop
* fix(desktop): desktop sveltekit static build, use csr for dynamic route
* feat: add error handling page and components
* refactor: component lib
* refactor: move more types, functions and components out of desktop
* refactor(ui): more refactor
* refactor(ui): move store components to @kksh/ui
* ci: add CI for build & test
* refactor: rename @kksh/extensions to @kksh/extension
* ci: add 2 more ci
* ci: fix
* fix: CI env var
* chore: add changeset
* feat: implement extension store item detail view
* feat: implement extension store install, uninstall, upgrade
* format
* revert: upgradable logic, the new one doesn't work yet
* refactor: make @kksh/ui dependent only on @kksh/api
Reason: @kksh/ui may be published later for building website, all its dependency packages must be also published. To avoid trouble it should be standalone, depend only on packages already published
* refactor: cleanup
* fixed: some typescript error
* chore: got typedoc working on @kksh/api
* ci: disable manifest schema upload CI on push