Skip to content

Commit 2b9df31

Browse files
committed
fixed some supabase errors
1 parent 2418cb1 commit 2b9df31

File tree

13 files changed

+197
-134
lines changed

13 files changed

+197
-134
lines changed

apps/desktop/dev.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { getExtensionsLatestPublishByIdentifier } from "@kksh/sdk"
2+
3+
const latestPublish = await getExtensionsLatestPublishByIdentifier({
4+
path: {
5+
identifier: "RAG1"
6+
}
7+
})
8+
console.log(latestPublish)

apps/desktop/src/lib/utils/updater.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { extensions } from "@/stores"
2-
import { supabaseAPI } from "@/supabase"
32
import { isCompatible } from "@kksh/api"
43
import type { ExtPackageJsonExtra } from "@kksh/api/models"
5-
import { greaterThan } from "@std/semver"
4+
import { getExtensionsLatestPublishByIdentifier } from "@kksh/sdk"
65
import { relaunch } from "@tauri-apps/plugin-process"
76
import { check } from "@tauri-apps/plugin-updater"
87
import { gt } from "semver"
@@ -32,11 +31,22 @@ export async function checkSingleExtensionUpdate(
3231
installedExt: ExtPackageJsonExtra,
3332
autoupgrade: boolean
3433
) {
35-
const { data: sbExt, error } = await supabaseAPI.getLatestExtPublish(
36-
installedExt.kunkun.identifier
37-
)
34+
const {
35+
data: sbExt,
36+
error,
37+
response
38+
} = await getExtensionsLatestPublishByIdentifier({
39+
path: {
40+
identifier: "RAG"
41+
}
42+
})
43+
// const { data: sbExt, error } = await supabaseAPI.getLatestExtPublish(
44+
// installedExt.kunkun.identifier
45+
// )
3846
if (error) {
39-
return toast.error(`Failed to check update for ${installedExt.kunkun.identifier}: ${error}`)
47+
return toast.error(
48+
`Failed to check update for ${installedExt.kunkun.identifier}: ${error} (${response.status})`
49+
)
4050
}
4151

4252
if (!sbExt) {
@@ -49,10 +59,7 @@ export async function checkSingleExtensionUpdate(
4959
) {
5060
if (autoupgrade) {
5161
await extensions
52-
.upgradeStoreExtension(
53-
sbExt.identifier,
54-
supabaseAPI.translateExtensionFilePathToUrl(sbExt.tarball_path)
55-
)
62+
.upgradeStoreExtension(sbExt.identifier, sbExt.tarball_path)
5663
.then(() => {
5764
toast.success(`${sbExt.name} upgraded`, {
5865
description: `From ${installedExt.version} to ${sbExt.version}`

apps/desktop/src/routes/app/extension/store/+page.svelte

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
import { getExtensionsFolder } from "@/constants"
33
import { appState, extensions } from "@/stores"
44
import { keys } from "@/stores/keys"
5-
import { supabaseAPI } from "@/supabase"
6-
import { goBackOnEscapeClearSearchTerm, goHomeOnEscapeClearSearchTerm } from "@/utils/key"
75
import { goBack, goHome } from "@/utils/route"
8-
import { Action as ActionSchema } from "@kksh/api/models"
6+
import { Action as ActionSchema, ExtensionStoreListItem, ExtPublish } from "@kksh/api/models"
97
import { Action } from "@kksh/api/ui"
10-
import { SBExt } from "@kksh/supabase/models"
11-
import type { ExtPublishMetadata } from "@kksh/supabase/models"
12-
import { type Tables } from "@kksh/supabase/types"
8+
import {
9+
getExtensionsLatestPublishByIdentifier,
10+
postExtensionsIncrementDownloads
11+
} from "@kksh/sdk"
1312
import { Button, Command } from "@kksh/svelte5"
1413
import { Constants } from "@kksh/ui"
1514
import { ExtListItem } from "@kksh/ui/extension"
@@ -71,51 +70,57 @@
7170
}
7271
})
7372
74-
function onExtItemSelected(ext: SBExt) {
73+
function onExtItemSelected(ext: ExtensionStoreListItem) {
7574
goto(`./store/${ext.identifier}`)
7675
}
7776
78-
async function onExtItemUpgrade(ext: SBExt) {
79-
const res = await supabaseAPI.getLatestExtPublish(ext.identifier)
80-
if (res.error)
77+
async function onExtItemUpgrade(ext: ExtensionStoreListItem) {
78+
const { data, error, response } = await getExtensionsLatestPublishByIdentifier({
79+
path: {
80+
identifier: ext.identifier
81+
}
82+
})
83+
if (error)
8184
return toast.error("Fail to get latest extension", {
82-
description: res.error.message
85+
description: error as string
8386
})
84-
const tarballUrl = res.data.tarball_path.startsWith("http")
85-
? res.data.tarball_path
86-
: supabaseAPI.translateExtensionFilePathToUrl(res.data.tarball_path)
87-
const installExtras = await getInstallExtras(
88-
res.data as Tables<"ext_publish"> & { metadata: ExtPublishMetadata }
89-
)
87+
const installExtras = await getInstallExtras(data?.metadata)
9088
return extensions
91-
.upgradeStoreExtension(ext.identifier, tarballUrl, installExtras)
89+
.upgradeStoreExtension(ext.identifier, data.tarball_path, installExtras)
9290
.then((newExt) => {
9391
toast.success(`${ext.name} Upgraded to ${newExt.version}`)
9492
})
9593
}
9694
97-
async function onExtItemInstall(ext: SBExt) {
98-
const res = await supabaseAPI.getLatestExtPublish(ext.identifier)
99-
if (res.error)
95+
async function onExtItemInstall(ext: ExtensionStoreListItem) {
96+
const { data, error, response } = await getExtensionsLatestPublishByIdentifier({
97+
path: {
98+
identifier: ext.identifier
99+
}
100+
})
101+
if (error)
100102
return toast.error("Fail to get latest extension", {
101-
description: res.error.message
103+
description: error
102104
})
103105
104-
const tarballUrl = res.data.tarball_path.startsWith("http")
105-
? res.data.tarball_path
106-
: supabaseAPI.translateExtensionFilePathToUrl(res.data.tarball_path)
107-
const installExtras = await getInstallExtras(
108-
res.data as Tables<"ext_publish"> & { metadata: ExtPublishMetadata }
109-
)
106+
const installExtras = await getInstallExtras(data?.metadata)
110107
const installDir = await getExtensionsFolder()
111108
return extensions
112-
.installFromTarballUrl(tarballUrl, installDir, installExtras)
109+
.installFromTarballUrl(data.tarball_path, installDir, installExtras)
113110
.then(() => toast.success(`Plugin ${ext.name} Installed`))
114111
.then(() =>
115-
supabaseAPI.incrementDownloads({
116-
identifier: ext.identifier,
117-
version: ext.version
112+
postExtensionsIncrementDownloads({
113+
body: {
114+
identifier: ext.identifier,
115+
version: ext.version
116+
}
118117
})
118+
.then(({ error }) => {
119+
if (error) {
120+
console.error(error)
121+
}
122+
})
123+
.catch(console.error)
119124
)
120125
}
121126

apps/desktop/src/routes/app/extension/store/+page.ts

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,40 @@
11
import { appConfig, appState, extensions, installedStoreExts } from "@/stores"
2-
import { supabaseAPI } from "@/supabase"
3-
import type { ExtPackageJsonExtra } from "@kksh/api/models"
2+
import { goHome } from "@/utils/route"
3+
// import { supabaseAPI } from "@/supabase"
4+
import type { ExtensionStoreListItem, ExtPackageJsonExtra } from "@kksh/api/models"
45
import { isExtPathInDev, isUpgradable } from "@kksh/extension"
5-
import { SBExt } from "@kksh/supabase/models"
6-
import { sleep } from "@kksh/utils"
7-
import { error } from "@sveltejs/kit"
6+
import { getExtensionsStoreList } from "@kksh/sdk"
7+
import { toast } from "svelte-sonner"
88
import { derived, get, type Readable } from "svelte/store"
99
import type { PageLoad } from "./$types"
1010

1111
export const load: PageLoad = (): Promise<{
12-
storeExtList: SBExt[]
12+
storeExtList: ExtensionStoreListItem[]
1313
installedStoreExts: Readable<ExtPackageJsonExtra[]>
1414
installedExtsMap: Readable<Record<string, string>>
1515
upgradableExpsMap: Readable<Record<string, boolean>>
1616
}> => {
1717
appState.setFullScreenLoading(true)
18-
return supabaseAPI
19-
.getExtList()
20-
.then(async (storeExtList) => {
21-
// map identifier to extItem
18+
return getExtensionsStoreList()
19+
.then(({ data: storeExtList, error, response }) => {
20+
storeExtList = storeExtList ?? []
21+
if (error) {
22+
toast.error(`Failed to load extension store: ${error} (${response.status})`)
23+
goHome()
24+
return
25+
}
2226
const storeExtsMap = Object.fromEntries(storeExtList.map((ext) => [ext.identifier, ext]))
23-
// const _appConfig = get(appConfig)
24-
// const installedStoreExts = derived(extensions, ($extensions) => {
25-
// if (!_appConfig.extensionPath) return []
26-
// return $extensions.filter((ext) => !isExtPathInDev(_appConfig.extensionPath!, ext.extPath))
27-
// })
28-
// map installed extension identifier to version
2927
const installedExtsMap = derived(installedStoreExts, ($exts) =>
3028
Object.fromEntries($exts.map((ext) => [ext.kunkun.identifier, ext.version]))
3129
)
3230
const upgradableExpsMap = derived(installedStoreExts, ($exts) =>
3331
Object.fromEntries(
3432
$exts.map((ext) => {
35-
const dbExt: SBExt | undefined = storeExtsMap[ext.kunkun.identifier]
33+
const dbExt: ExtensionStoreListItem | undefined = storeExtsMap[ext.kunkun.identifier]
3634
return [ext.kunkun.identifier, dbExt ? isUpgradable(dbExt, ext.version) : false]
3735
})
3836
)
3937
)
40-
4138
return {
4239
storeExtList,
4340
installedStoreExts,

apps/desktop/src/routes/app/extension/store/[identifier]/+page.svelte

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
22
import { getExtensionsFolder } from "@/constants.js"
33
import { i18n } from "@/i18n.js"
44
import { extensions, installedStoreExts } from "@/stores/extensions.js"
5-
import { supabaseAPI } from "@/supabase"
6-
import { goBack } from "@/utils/route.js"
7-
import { ExtPackageJson } from "@kksh/api/models"
8-
import { ExtPublishMetadata } from "@kksh/supabase/models"
9-
import type { Tables } from "@kksh/supabase/types"
5+
import { ExtensionStoreListItem, ExtPackageJson, ExtPublish } from "@kksh/api/models"
6+
import { postExtensionsIncrementDownloads } from "@kksh/sdk"
107
import { Button } from "@kksh/svelte5"
118
import { cn } from "@kksh/svelte5/utils"
129
import { Constants } from "@kksh/ui"
@@ -22,10 +19,8 @@
2219
import { getInstallExtras } from "./helper"
2320
2421
const { data } = $props()
25-
const extPublish: Tables<"ext_publish"> & { metadata: ExtPublishMetadata } = $derived(
26-
data.extPublish
27-
)
28-
const ext: Tables<"extensions"> = $derived(data.ext)
22+
const extPublish: ExtPublish = $derived(data.extPublish)
23+
const ext: ExtensionStoreListItem = $derived(data.ext)
2924
const manifest = $derived(data.manifest)
3025
const installedExt = storeDerived(installedStoreExts, ($e) => {
3126
return $e.find((e) => e.kunkun.identifier === extPublish.identifier)
@@ -77,28 +72,29 @@
7772
}, 500)
7873
})
7974
80-
const demoImages = $derived(
81-
extPublish.demo_images.map((src) =>
82-
src.startsWith("http") ? src : supabaseAPI.translateExtensionFilePathToUrl(src)
83-
)
84-
)
75+
const demoImages = $derived(extPublish.demo_images)
8576
8677
async function onInstallSelected() {
8778
loading.install = true
88-
const tarballUrl = extPublish.tarball_path.startsWith("http")
89-
? extPublish.tarball_path
90-
: supabaseAPI.translateExtensionFilePathToUrl(extPublish.tarball_path)
91-
const installExtras = await getInstallExtras(extPublish)
79+
const installExtras = await getInstallExtras(extPublish.metadata)
9280
const installDir = await getExtensionsFolder()
9381
return extensions
94-
.installFromTarballUrl(tarballUrl, installDir, installExtras)
82+
.installFromTarballUrl(extPublish.tarball_path, installDir, installExtras)
9583
.then(() => toast.success(`Plugin ${extPublish.name} Installed`))
9684
.then((loadedExt) => {
9785
info(`Successfully installed ${extPublish.name}`)
98-
supabaseAPI.incrementDownloads({
99-
identifier: extPublish.identifier,
100-
version: extPublish.version
86+
postExtensionsIncrementDownloads({
87+
body: {
88+
identifier: extPublish.identifier,
89+
version: extPublish.version
90+
}
10191
})
92+
.then(({ error }) => {
93+
if (error) {
94+
console.error(error)
95+
}
96+
})
97+
.catch(console.error)
10298
showBtn.install = false
10399
showBtn.uninstall = true
104100
})
@@ -113,9 +109,8 @@
113109
114110
function onUpgradeSelected() {
115111
loading.upgrade = true
116-
const tarballUrl = supabaseAPI.translateExtensionFilePathToUrl(extPublish.tarball_path)
117112
return extensions
118-
.upgradeStoreExtension(extPublish.identifier, tarballUrl)
113+
.upgradeStoreExtension(extPublish.identifier, extPublish.tarball_path)
119114
.then((newExt) => {
120115
toast.success(
121116
`${extPublish.name} Upgraded from ${$installedExt?.version} to ${newExt.version}`

apps/desktop/src/routes/app/extension/store/[identifier]/+page.ts

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
import { appState, extensions } from "@/stores"
2-
import { supabaseAPI } from "@/supabase"
3-
import { KunkunExtManifest, type ExtPackageJsonExtra } from "@kksh/api/models"
4-
import { ExtPublishMetadata } from "@kksh/supabase/models"
5-
import type { Tables } from "@kksh/supabase/types"
6-
import { sleep } from "@kksh/utils"
2+
import {
3+
ExtensionStoreListItem,
4+
ExtPublish,
5+
KunkunExtManifest,
6+
type ExtPackageJsonExtra
7+
} from "@kksh/api/models"
8+
import {
9+
getExtensionsByIdentifier,
10+
getExtensionsLatestPublishByIdentifier,
11+
type GetExtensionsByIdentifierResponse,
12+
type GetExtensionsLatestPublishByIdentifierResponse,
13+
type GetExtensionsLatestPublishByIdentifierResponses
14+
} from "@kksh/sdk"
715
import { error } from "@sveltejs/kit"
816
import { toast } from "svelte-sonner"
917
import * as v from "valibot"
@@ -12,43 +20,43 @@ import type { PageLoad } from "./$types"
1220
export const load: PageLoad = ({
1321
params
1422
}): Promise<{
15-
extPublish: Tables<"ext_publish"> & { metadata: ExtPublishMetadata }
16-
ext: Tables<"extensions">
17-
manifest: KunkunExtManifest
23+
// extPublish: GetExtensionsLatestPublishByIdentifierResponses['200']
24+
ext: GetExtensionsByIdentifierResponse
25+
manifest: GetExtensionsLatestPublishByIdentifierResponse["manifest"]
1826
params: {
1927
identifier: string
2028
}
2129
}> => {
2230
appState.setFullScreenLoading(true)
23-
return supabaseAPI
24-
.getLatestExtPublish(params.identifier)
25-
.then(async ({ error: dbError, data: extPublish }) => {
26-
const metadataParse = v.safeParse(ExtPublishMetadata, extPublish?.metadata ?? {})
27-
if (dbError) {
31+
return getExtensionsLatestPublishByIdentifier({
32+
path: {
33+
identifier: params.identifier
34+
}
35+
})
36+
.then(async ({ data: extPublish, error: err, response }) => {
37+
if (err || !extPublish) {
38+
console.error(err)
2839
return error(400, {
29-
message: dbError.message
40+
message: "Failed to get extension publish"
3041
})
3142
}
32-
const metadata = metadataParse.success ? metadataParse.output : {}
33-
const parseManifest = v.safeParse(KunkunExtManifest, extPublish.manifest)
34-
if (!parseManifest.success) {
35-
const errMsg = "Invalid extension manifest, you may need to upgrade your app."
36-
toast.error(errMsg)
37-
throw error(400, errMsg)
38-
}
39-
40-
const { data: ext, error: extError } = await supabaseAPI.getExtension(params.identifier)
43+
const { data: ext, error: extError } = await getExtensionsByIdentifier({
44+
path: {
45+
identifier: params.identifier
46+
}
47+
})
4148
if (extError) {
49+
console.error(extError)
4250
return error(400, {
43-
message: extError.message
51+
message: "Failed to get extension"
4452
})
4553
}
4654

4755
return {
48-
extPublish: { ...extPublish, metadata },
56+
// extPublish,
4957
ext,
50-
params,
51-
manifest: parseManifest.output
58+
manifest: extPublish.manifest,
59+
params
5260
}
5361
})
5462
.finally(() => {

0 commit comments

Comments
 (0)