mirror of
https://github.com/kunkunsh/kunkun.git
synced 2025-07-02 22:41:31 +00:00

* 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
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { clean, gte, parse, satisfies, sort } from "semver"
|
|
import * as v from "valibot"
|
|
|
|
export const breakingChangesVersionCheckpoints = [
|
|
{ version: "0.0.1", changelog: "" },
|
|
{ version: "0.0.12-beta.0", changelog: "" },
|
|
{ version: "0.0.12-beta.1", changelog: "" },
|
|
{
|
|
version: "0.0.17",
|
|
changelog: "New Custom UI loading method, remove base url config requirement."
|
|
},
|
|
{
|
|
version: "0.0.34",
|
|
changelog: "Replace comlink with kkrpc, extensions using comlink won't work anymore."
|
|
},
|
|
{
|
|
version: "0.0.45",
|
|
changelog: "Upgrade valibot to 1.0.0-beta.8; incompatible with previous version 0.40.0"
|
|
}
|
|
]
|
|
const checkpointVersions = breakingChangesVersionCheckpoints.map((c) => c.version)
|
|
const sortedCheckpointVersions = sort(checkpointVersions)
|
|
|
|
export const version = "0.0.52"
|
|
|
|
export function isVersionBetween(v: string, start: string, end: string) {
|
|
const vCleaned = clean(v)
|
|
const startCleaned = clean(start)
|
|
const endCleaned = clean(end)
|
|
return satisfies(vCleaned!, `${startCleaned} - ${endCleaned}`)
|
|
}
|
|
|
|
/**
|
|
* Check if a given version is compatible with this API version
|
|
* Basically, this checks if the version is greater than or equal to the last checkpoint version
|
|
* @param version
|
|
*/
|
|
export function isCompatible(version: string) {
|
|
return gte(version, v.parse(v.string(), sortedCheckpointVersions.at(-1)))
|
|
}
|