@knapsack/app-client-api 4.71.17--canary.5283.771301f.0 → 4.71.17--canary.5307.7b88780.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var utils=require('@knapsack/utils');var p=Object.defineProperty;var n=(e,t)=>p(e,"name",{value:t,configurable:!0});async function g({appClientUrl:e,query:t}){return utils.fetcher({url:new URL("/api/v1/template-suggestions",e).toString(),query:t})}n(g,"getTemplateSuggestions");async function y(e){try{let t=new URL("/api/v1",e);return await utils.fetcher({url:t.toString()})}catch(t){return {ok:!1,message:t instanceof Error?t.message:"Unknown error"}}}n(y,"checkAppClientUrl");async function d({appClientUrl:e}){try{return {ok:!0,data:await utils.fetcher({url:new URL("/api/v1/data-store",e).toString()})}}catch(t){return {ok:!1,message:t instanceof Error?t.message:"Unknown error"}}}n(d,"getDataStore");async function R({appClientUrl:e}){let t=await d({appClientUrl:e});if(!t.ok||!t.data){let a=`Could not load data from custom url "${e}" ${t.message}`;throw new Error(a)}return t.data}n(R,"getAppClientData");function i(e){let{metaState:t,...a}=e;return a}n(i,"prepAppClientData");async function P({urlBase:e,state:t}){try{let a={state:i(t)};return await utils.fetcher({url:new URL("/api/v1/data-store-prep",e).toString(),body:a})}catch(a){return {ok:!1,message:a instanceof Error?a.message:"Unknown error"}}}n(P,"prepareDataForFileSave");async function D({urlBase:e,state:t}){let r={state:i(t)},o=await utils.fetcher({url:new URL("/api/v1/data-store",e).toString(),body:r});if(!o.ok)throw new Error(`Could not save data to localhost files: ${o.message}`)}n(D,"submitDataForFileSave");async function S({pluginId:e,appClientUrl:t}){return utils.fetcher({url:new URL("/api/v1/plugins",t).toString(),body:{pluginId:e,type:"getContent"}})}n(S,"getPluginContent");async function C({options:e,appClientUrl:t}){return await utils.fetcher({url:new URL("/api/v1/render",t).toString(),body:e})}n(C,"renderTemplate");async function x({appClientUrl:e,payload:t}){return (await utils.fetcher({url:new URL("/api/v1/files",e).toString(),body:{type:"verify",payload:t}})).payload}n(x,"verifyFile");exports.checkAppClientUrl=y;exports.getAppClientData=R;exports.getDataStore=d;exports.getPluginContent=S;exports.getTemplateSuggestions=g;exports.prepAppClientData=i;exports.prepareDataForFileSave=P;exports.renderTemplate=C;exports.submitDataForFileSave=D;exports.verifyFile=x;//# sourceMappingURL=index.js.map
1
+ 'use strict';var utils=require('@knapsack/utils');var p=Object.defineProperty;var n=(e,t)=>p(e,"name",{value:t,configurable:!0});async function g({appClientUrl:e,query:t}){return utils.fetcher({url:new URL("/api/v1/template-suggestions",e).toString(),query:t})}n(g,"getTemplateSuggestions");async function y(e){try{let t=new URL("/api/v1",e);return await utils.fetcher({url:t.toString()})}catch(t){return {ok:!1,message:t instanceof Error?t.message:"Unknown error"}}}n(y,"checkAppClientUrl");async function d({appClientUrl:e}){try{return {ok:!0,data:await utils.fetcher({url:new URL("/api/v1/data-store",e).toString()})}}catch(t){return {ok:!1,message:t instanceof Error?t.message:"Unknown error"}}}n(d,"getDataStore");async function R({appClientUrl:e}){let t=await d({appClientUrl:e});if(!t.ok||!t.data){let a=`We're having trouble accessing your server at ${e}.`;throw new Error(a)}return t.data}n(R,"getAppClientData");function o(e){let{metaState:t,...a}=e;return a}n(o,"prepAppClientData");async function P({urlBase:e,state:t}){try{let a={state:o(t)};return await utils.fetcher({url:new URL("/api/v1/data-store-prep",e).toString(),body:a})}catch(a){return {ok:!1,message:a instanceof Error?a.message:"Unknown error"}}}n(P,"prepareDataForFileSave");async function D({urlBase:e,state:t}){let r={state:o(t)},i=await utils.fetcher({url:new URL("/api/v1/data-store",e).toString(),body:r});if(!i.ok)throw new Error(`Could not save data to localhost files: ${i.message}`)}n(D,"submitDataForFileSave");async function S({pluginId:e,appClientUrl:t}){return utils.fetcher({url:new URL("/api/v1/plugins",t).toString(),body:{pluginId:e,type:"getContent"}})}n(S,"getPluginContent");async function C({options:e,appClientUrl:t}){return await utils.fetcher({url:new URL("/api/v1/render",t).toString(),body:e})}n(C,"renderTemplate");async function v({appClientUrl:e,payload:t}){return (await utils.fetcher({url:new URL("/api/v1/files",e).toString(),body:{type:"verify",payload:t}})).payload}n(v,"verifyFile");exports.checkAppClientUrl=y;exports.getAppClientData=R;exports.getDataStore=d;exports.getPluginContent=S;exports.getTemplateSuggestions=g;exports.prepAppClientData=o;exports.prepareDataForFileSave=P;exports.renderTemplate=C;exports.submitDataForFileSave=D;exports.verifyFile=v;//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/get-template-suggestions.ts","../src/app-client-api.ts"],"names":["getTemplateSuggestions","appClientUrl","query","fetcher","__name","checkAppClientUrl","url","theUrl","err","getDataStore","getAppClientData","serverDataRes","message","prepAppClientData","state","metaState","appClientDataNoMeta","prepareDataForFileSave","urlBase","body","submitDataForFileSave","data","getPluginContent","pluginId","renderTemplate","options","verifyFile","payload"],"mappings":"iIAOA,eAAsBA,EAAuB,CAC3C,YAAA,CAAAC,EACA,KAAAC,CAAAA,CACF,EAGwC,CACtC,OAAOC,cAAoC,CACzC,GAAA,CAAK,IAAI,GACP,CAAA,8BAAA,CACAF,CACF,CAAE,CAAA,QAAA,GACF,KAAAC,CAAAA,CACF,CAAC,CACH,CAdsBE,EAAAJ,CAAA,CAAA,wBAAA,CAAA,CCctB,eAAsBK,CAAAA,CAAkBC,EAAuC,CAC7E,GAAI,CACF,IAAMC,CAAAA,CAAS,IAAI,GAAI,CAAA,SAAA,CAAmCD,CAAG,CAI7D,CAAA,OAHY,MAAMH,aAAyB,CAAA,CACzC,IAAKI,CAAO,CAAA,QAAA,EACd,CAAC,CAEH,OAASC,CAAK,CAAA,CACZ,OAAO,CACL,EAAA,CAAI,GACJ,OAASA,CAAAA,CAAAA,YAAe,MAAQA,CAAI,CAAA,OAAA,CAAU,eAChD,CACF,CACF,CAbsBJ,CAAAC,CAAAA,CAAAA,CAAA,qBAetB,eAAsBI,CAAAA,CAAa,CACjC,YAAAR,CAAAA,CACF,EAEqD,CACnD,GAAI,CAQF,OAAO,CACL,GAAI,CACJ,CAAA,CAAA,IAAA,CATW,MAAME,aAAAA,CAAgC,CACjD,GAAA,CAAK,IAAI,GACP,CAAA,oBAAA,CACAF,CACF,CAAE,CAAA,QAAA,EACJ,CAAC,CAKD,CACF,CAASO,MAAAA,CAAAA,CAAK,CACZ,OAAO,CACL,GAAI,CACJ,CAAA,CAAA,OAAA,CAASA,aAAe,KAAQA,CAAAA,CAAAA,CAAI,QAAU,eAChD,CACF,CACF,CAvBsBJ,CAAAA,CAAAK,EAAA,cA0BtB,CAAA,CAAA,eAAsBC,EAAiB,CACrC,YAAA,CAAAT,CACF,CAEoC,CAAA,CAClC,IAAMU,CAAgB,CAAA,MAAMF,EAAa,CAAE,YAAA,CAAAR,CAAa,CAAC,CAAA,CACzD,GAAI,CAACU,CAAAA,CAAc,IAAM,CAACA,CAAAA,CAAc,KAAM,CAC5C,IAAMC,EAAU,CAAwCX,qCAAAA,EAAAA,CAAY,KAAKU,CAAc,CAAA,OAAO,GAC9F,MAAM,IAAI,MAAMC,CAAO,CACzB,CACA,OAAOD,CAAAA,CAAc,IACvB,CAXsBP,CAAAA,CAAAM,EAAA,kBAcf,CAAA,CAAA,SAASG,EACdC,CACuB,CAAA,CACvB,GAAM,CAAE,SAAA,CAAAC,EAAW,GAAGC,CAAoB,EAAIF,CAC9C,CAAA,OAAOE,CACT,CALgBZ,CAAAA,CAAAS,EAAA,mBAOhB,CAAA,CAAA,eAAsBI,CAAuB,CAAA,CAC3C,OAAAC,CAAAA,CAAAA,CACA,MAAAJ,CACF,CAAA,CAGgD,CAC9C,GAAI,CACF,IAAMK,CAAkC,CAAA,CACtC,MAAON,CAAkBC,CAAAA,CAAK,CAChC,CASA,CAAA,OARa,MAAMX,aAA4C,CAAA,CAC7D,IAAK,IAAI,GAAA,CACP,0BACAe,CACF,CAAA,CAAE,UACF,CAAA,IAAA,CAAAC,CACF,CAAC,CAGH,OAASX,CAAK,CAAA,CACZ,OAAO,CACL,EAAA,CAAI,GACJ,OAASA,CAAAA,CAAAA,YAAe,MAAQA,CAAI,CAAA,OAAA,CAAU,eAChD,CACF,CACF,CA1BsBJ,CAAAa,CAAAA,CAAAA,CAAA,0BA4BtB,eAAsBG,CAAAA,CAAsB,CAC1C,OAAAF,CAAAA,CAAAA,CACA,MAAAJ,CACF,CAAA,CAGkB,CAEhB,IAAMK,CAAAA,CAAkC,CACtC,KAFoBN,CAAAA,CAAAA,CAAkBC,CAAK,CAG7C,CAAA,CACMO,EAAO,MAAMlB,aAAAA,CAAyB,CAC1C,GAAK,CAAA,IAAI,IACP,oBACAe,CAAAA,CACF,EAAE,QAAS,EAAA,CACX,KAAAC,CACF,CAAC,EAED,GAAI,CAACE,EAAK,EACR,CAAA,MAAM,IAAI,KAAM,CAAA,CAAA,wCAAA,EAA2CA,EAAK,OAAO,CAAA,CAAE,CAE7E,CAtBsBjB,CAAAgB,CAAAA,CAAAA,CAAA,yBAwBtB,eAAsBE,CAAAA,CAAiB,CACrC,QAAAC,CAAAA,CAAAA,CACA,aAAAtB,CACF,CAAA,CAIE,CACA,OAAOE,aAAAA,CAAQ,CACb,GAAK,CAAA,IAAI,IACP,iBACAF,CAAAA,CACF,EAAE,QAAS,EAAA,CACX,KAAM,CACJ,QAAA,CAAAsB,EACA,IAAM,CAAA,YACR,CACF,CAAC,CACH,CAlBsBnB,CAAAkB,CAAAA,CAAAA,CAAA,oBAoBtB,eAAsBE,CAAAA,CAAe,CACnC,OAAAC,CAAAA,CAAAA,CACA,aAAAxB,CACF,CAAA,CAG6B,CAQ3B,OAPa,MAAME,aAAyB,CAAA,CAC1C,GAAK,CAAA,IAAI,IACP,gBACAF,CAAAA,CACF,EAAE,QAAS,EAAA,CACX,KAAMwB,CACR,CAAC,CAEH,CAfsBrB,CAAAA,CAAAoB,EAAA,gBAiBtB,CAAA,CAAA,eAAsBE,EAAW,CAC/B,YAAA,CAAAzB,EACA,OAAA0B,CAAAA,CACF,EAGG,CAWD,OAAA,CAVa,MAAMxB,aAA+C,CAAA,CAChE,IAAK,IAAI,GAAA,CACP,gBACAF,CACF,CAAA,CAAE,UACF,CAAA,IAAA,CAAM,CACJ,IAAM,CAAA,QAAA,CACN,QAAA0B,CACF,CACF,CAAC,CACW,EAAA,OACd,CAlBsBvB,CAAAA,CAAAsB,CAAA,CAAA,YAAA,CAAA","file":"index.js","sourcesContent":["import type {\n EndpointPaths,\n TemplateSuggestionsReqParams,\n TemplateSuggestionsResBody,\n} from '@knapsack/app/api-info';\nimport { fetcher } from '@knapsack/utils';\n\nexport async function getTemplateSuggestions({\n appClientUrl,\n query,\n}: {\n appClientUrl: string;\n query: TemplateSuggestionsReqParams;\n}): Promise<TemplateSuggestionsResBody> {\n return fetcher<TemplateSuggestionsResBody>({\n url: new URL(\n '/api/v1/template-suggestions' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n query,\n });\n}\n","import { KsAppClientData, KsRenderResults } from '@knapsack/types';\nimport type {\n Except,\n GenericResponse,\n KsAppClientDataAndMeta,\n KsAppClientDataNoMeta,\n KsFileSaverParams,\n} from '@knapsack/types';\nimport { fetcher } from '@knapsack/utils';\nimport type {\n PatternRenderData,\n KnapsackDataStoreSaveBody,\n EndpointPaths,\n EndpointFiles,\n ExtractEndpointData,\n ExtractEndpointResBody,\n EndpointPlugins,\n} from '@knapsack/app/api-info';\n\nexport type { PatternRenderData, EndpointPaths };\n\nexport async function checkAppClientUrl(url: string): Promise<GenericResponse> {\n try {\n const theUrl = new URL('/api/v1' satisfies EndpointPaths, url); // will throw if url not formatted correctly\n const res = await fetcher<GenericResponse>({\n url: theUrl.toString(),\n });\n return res;\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\nexport async function getDataStore({\n appClientUrl,\n}: {\n appClientUrl: string;\n}): Promise<GenericResponse<KsAppClientDataAndMeta>> {\n try {\n const data = await fetcher<KsAppClientDataAndMeta>({\n url: new URL(\n '/api/v1/data-store' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n });\n\n return {\n ok: true,\n data,\n };\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\n// just need a function that can throw an error\nexport async function getAppClientData({\n appClientUrl,\n}: {\n appClientUrl: string;\n}): Promise<KsAppClientDataAndMeta> {\n const serverDataRes = await getDataStore({ appClientUrl });\n if (!serverDataRes.ok || !serverDataRes.data) {\n const message = `Could not load data from custom url \"${appClientUrl}\" ${serverDataRes.message}`;\n throw new Error(message);\n }\n return serverDataRes.data;\n}\n\n/** Sole job is to strip `metaState` if it's there */\nexport function prepAppClientData(\n state: KsAppClientData,\n): KsAppClientDataNoMeta {\n const { metaState, ...appClientDataNoMeta } = state;\n return appClientDataNoMeta;\n}\n\nexport async function prepareDataForFileSave({\n urlBase,\n state,\n}: {\n urlBase: string;\n state: KsAppClientDataNoMeta;\n}): Promise<GenericResponse<KsFileSaverParams>> {\n try {\n const body: KnapsackDataStoreSaveBody = {\n state: prepAppClientData(state),\n };\n const data = await fetcher<GenericResponse<KsFileSaverParams>>({\n url: new URL(\n '/api/v1/data-store-prep' satisfies EndpointPaths,\n urlBase,\n ).toString(),\n body,\n });\n\n return data;\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\nexport async function submitDataForFileSave({\n urlBase,\n state,\n}: {\n urlBase: string;\n state: KsAppClientDataNoMeta;\n}): Promise<void> {\n const appClientData = prepAppClientData(state);\n const body: KnapsackDataStoreSaveBody = {\n state: appClientData,\n };\n const data = await fetcher<GenericResponse>({\n url: new URL(\n '/api/v1/data-store' satisfies EndpointPaths,\n urlBase,\n ).toString(),\n body,\n });\n\n if (!data.ok) {\n throw new Error(`Could not save data to localhost files: ${data.message}`);\n }\n}\n\nexport async function getPluginContent({\n pluginId,\n appClientUrl,\n}: {\n appClientUrl: string;\n} & Except<ExtractEndpointData<EndpointPlugins>, 'type'>): Promise<\n ExtractEndpointResBody<EndpointPlugins>\n> {\n return fetcher({\n url: new URL(\n '/api/v1/plugins' satisfies EndpointPlugins['path'],\n appClientUrl,\n ).toString(),\n body: {\n pluginId,\n type: 'getContent',\n } satisfies ExtractEndpointData<EndpointPlugins>,\n });\n}\n\nexport async function renderTemplate({\n options,\n appClientUrl,\n}: {\n options: PatternRenderData;\n appClientUrl: string;\n}): Promise<KsRenderResults> {\n const data = await fetcher<KsRenderResults>({\n url: new URL(\n '/api/v1/render' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n body: options,\n });\n return data;\n}\n\nexport async function verifyFile({\n appClientUrl,\n payload,\n}: {\n appClientUrl: string;\n payload: ExtractEndpointData<EndpointFiles>['payload'];\n}) {\n const data = await fetcher<ExtractEndpointResBody<EndpointFiles>>({\n url: new URL(\n '/api/v1/files' satisfies EndpointFiles['path'],\n appClientUrl,\n ).toString(),\n body: {\n type: 'verify',\n payload,\n } satisfies ExtractEndpointData<EndpointFiles>,\n });\n return data.payload;\n}\n"]}
1
+ {"version":3,"sources":["../src/get-template-suggestions.ts","../src/app-client-api.ts"],"names":["getTemplateSuggestions","appClientUrl","query","fetcher","__name","checkAppClientUrl","url","theUrl","err","getDataStore","getAppClientData","serverDataRes","message","prepAppClientData","state","metaState","appClientDataNoMeta","prepareDataForFileSave","urlBase","body","submitDataForFileSave","data","getPluginContent","pluginId","renderTemplate","options","verifyFile","payload"],"mappings":"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","file":"index.js","sourcesContent":["import type {\n EndpointPaths,\n TemplateSuggestionsReqParams,\n TemplateSuggestionsResBody,\n} from '@knapsack/app/api-info';\nimport { fetcher } from '@knapsack/utils';\n\nexport async function getTemplateSuggestions({\n appClientUrl,\n query,\n}: {\n appClientUrl: string;\n query: TemplateSuggestionsReqParams;\n}): Promise<TemplateSuggestionsResBody> {\n return fetcher<TemplateSuggestionsResBody>({\n url: new URL(\n '/api/v1/template-suggestions' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n query,\n });\n}\n","import { KsAppClientData, KsRenderResults } from '@knapsack/types';\nimport type {\n Except,\n GenericResponse,\n KsAppClientDataAndMeta,\n KsAppClientDataNoMeta,\n KsFileSaverParams,\n} from '@knapsack/types';\nimport { fetcher } from '@knapsack/utils';\nimport type {\n PatternRenderData,\n KnapsackDataStoreSaveBody,\n EndpointPaths,\n EndpointFiles,\n ExtractEndpointData,\n ExtractEndpointResBody,\n EndpointPlugins,\n} from '@knapsack/app/api-info';\n\nexport type { PatternRenderData, EndpointPaths };\n\nexport async function checkAppClientUrl(url: string): Promise<GenericResponse> {\n try {\n const theUrl = new URL('/api/v1' satisfies EndpointPaths, url); // will throw if url not formatted correctly\n const res = await fetcher<GenericResponse>({\n url: theUrl.toString(),\n });\n return res;\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\nexport async function getDataStore({\n appClientUrl,\n}: {\n appClientUrl: string;\n}): Promise<GenericResponse<KsAppClientDataAndMeta>> {\n try {\n const data = await fetcher<KsAppClientDataAndMeta>({\n url: new URL(\n '/api/v1/data-store' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n });\n\n return {\n ok: true,\n data,\n };\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\n// just need a function that can throw an error\nexport async function getAppClientData({\n appClientUrl,\n}: {\n appClientUrl: string;\n}): Promise<KsAppClientDataAndMeta> {\n const serverDataRes = await getDataStore({ appClientUrl });\n if (!serverDataRes.ok || !serverDataRes.data) {\n const message = `We're having trouble accessing your server at ${appClientUrl}.`;\n throw new Error(message);\n }\n return serverDataRes.data;\n}\n\n/** Sole job is to strip `metaState` if it's there */\nexport function prepAppClientData(\n state: KsAppClientData,\n): KsAppClientDataNoMeta {\n const { metaState, ...appClientDataNoMeta } = state;\n return appClientDataNoMeta;\n}\n\nexport async function prepareDataForFileSave({\n urlBase,\n state,\n}: {\n urlBase: string;\n state: KsAppClientDataNoMeta;\n}): Promise<GenericResponse<KsFileSaverParams>> {\n try {\n const body: KnapsackDataStoreSaveBody = {\n state: prepAppClientData(state),\n };\n const data = await fetcher<GenericResponse<KsFileSaverParams>>({\n url: new URL(\n '/api/v1/data-store-prep' satisfies EndpointPaths,\n urlBase,\n ).toString(),\n body,\n });\n\n return data;\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\nexport async function submitDataForFileSave({\n urlBase,\n state,\n}: {\n urlBase: string;\n state: KsAppClientDataNoMeta;\n}): Promise<void> {\n const appClientData = prepAppClientData(state);\n const body: KnapsackDataStoreSaveBody = {\n state: appClientData,\n };\n const data = await fetcher<GenericResponse>({\n url: new URL(\n '/api/v1/data-store' satisfies EndpointPaths,\n urlBase,\n ).toString(),\n body,\n });\n\n if (!data.ok) {\n throw new Error(`Could not save data to localhost files: ${data.message}`);\n }\n}\n\nexport async function getPluginContent({\n pluginId,\n appClientUrl,\n}: {\n appClientUrl: string;\n} & Except<ExtractEndpointData<EndpointPlugins>, 'type'>): Promise<\n ExtractEndpointResBody<EndpointPlugins>\n> {\n return fetcher({\n url: new URL(\n '/api/v1/plugins' satisfies EndpointPlugins['path'],\n appClientUrl,\n ).toString(),\n body: {\n pluginId,\n type: 'getContent',\n } satisfies ExtractEndpointData<EndpointPlugins>,\n });\n}\n\nexport async function renderTemplate({\n options,\n appClientUrl,\n}: {\n options: PatternRenderData;\n appClientUrl: string;\n}): Promise<KsRenderResults> {\n const data = await fetcher<KsRenderResults>({\n url: new URL(\n '/api/v1/render' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n body: options,\n });\n return data;\n}\n\nexport async function verifyFile({\n appClientUrl,\n payload,\n}: {\n appClientUrl: string;\n payload: ExtractEndpointData<EndpointFiles>['payload'];\n}) {\n const data = await fetcher<ExtractEndpointResBody<EndpointFiles>>({\n url: new URL(\n '/api/v1/files' satisfies EndpointFiles['path'],\n appClientUrl,\n ).toString(),\n body: {\n type: 'verify',\n payload,\n } satisfies ExtractEndpointData<EndpointFiles>,\n });\n return data.payload;\n}\n"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import {fetcher}from'@knapsack/utils';var p=Object.defineProperty;var n=(e,t)=>p(e,"name",{value:t,configurable:!0});async function g({appClientUrl:e,query:t}){return fetcher({url:new URL("/api/v1/template-suggestions",e).toString(),query:t})}n(g,"getTemplateSuggestions");async function y(e){try{let t=new URL("/api/v1",e);return await fetcher({url:t.toString()})}catch(t){return {ok:!1,message:t instanceof Error?t.message:"Unknown error"}}}n(y,"checkAppClientUrl");async function d({appClientUrl:e}){try{return {ok:!0,data:await fetcher({url:new URL("/api/v1/data-store",e).toString()})}}catch(t){return {ok:!1,message:t instanceof Error?t.message:"Unknown error"}}}n(d,"getDataStore");async function R({appClientUrl:e}){let t=await d({appClientUrl:e});if(!t.ok||!t.data){let a=`Could not load data from custom url "${e}" ${t.message}`;throw new Error(a)}return t.data}n(R,"getAppClientData");function i(e){let{metaState:t,...a}=e;return a}n(i,"prepAppClientData");async function P({urlBase:e,state:t}){try{let a={state:i(t)};return await fetcher({url:new URL("/api/v1/data-store-prep",e).toString(),body:a})}catch(a){return {ok:!1,message:a instanceof Error?a.message:"Unknown error"}}}n(P,"prepareDataForFileSave");async function D({urlBase:e,state:t}){let r={state:i(t)},o=await fetcher({url:new URL("/api/v1/data-store",e).toString(),body:r});if(!o.ok)throw new Error(`Could not save data to localhost files: ${o.message}`)}n(D,"submitDataForFileSave");async function S({pluginId:e,appClientUrl:t}){return fetcher({url:new URL("/api/v1/plugins",t).toString(),body:{pluginId:e,type:"getContent"}})}n(S,"getPluginContent");async function C({options:e,appClientUrl:t}){return await fetcher({url:new URL("/api/v1/render",t).toString(),body:e})}n(C,"renderTemplate");async function x({appClientUrl:e,payload:t}){return (await fetcher({url:new URL("/api/v1/files",e).toString(),body:{type:"verify",payload:t}})).payload}n(x,"verifyFile");export{y as checkAppClientUrl,R as getAppClientData,d as getDataStore,S as getPluginContent,g as getTemplateSuggestions,i as prepAppClientData,P as prepareDataForFileSave,C as renderTemplate,D as submitDataForFileSave,x as verifyFile};//# sourceMappingURL=index.mjs.map
1
+ import {fetcher}from'@knapsack/utils';var p=Object.defineProperty;var n=(e,t)=>p(e,"name",{value:t,configurable:!0});async function g({appClientUrl:e,query:t}){return fetcher({url:new URL("/api/v1/template-suggestions",e).toString(),query:t})}n(g,"getTemplateSuggestions");async function y(e){try{let t=new URL("/api/v1",e);return await fetcher({url:t.toString()})}catch(t){return {ok:!1,message:t instanceof Error?t.message:"Unknown error"}}}n(y,"checkAppClientUrl");async function d({appClientUrl:e}){try{return {ok:!0,data:await fetcher({url:new URL("/api/v1/data-store",e).toString()})}}catch(t){return {ok:!1,message:t instanceof Error?t.message:"Unknown error"}}}n(d,"getDataStore");async function R({appClientUrl:e}){let t=await d({appClientUrl:e});if(!t.ok||!t.data){let a=`We're having trouble accessing your server at ${e}.`;throw new Error(a)}return t.data}n(R,"getAppClientData");function o(e){let{metaState:t,...a}=e;return a}n(o,"prepAppClientData");async function P({urlBase:e,state:t}){try{let a={state:o(t)};return await fetcher({url:new URL("/api/v1/data-store-prep",e).toString(),body:a})}catch(a){return {ok:!1,message:a instanceof Error?a.message:"Unknown error"}}}n(P,"prepareDataForFileSave");async function D({urlBase:e,state:t}){let r={state:o(t)},i=await fetcher({url:new URL("/api/v1/data-store",e).toString(),body:r});if(!i.ok)throw new Error(`Could not save data to localhost files: ${i.message}`)}n(D,"submitDataForFileSave");async function S({pluginId:e,appClientUrl:t}){return fetcher({url:new URL("/api/v1/plugins",t).toString(),body:{pluginId:e,type:"getContent"}})}n(S,"getPluginContent");async function C({options:e,appClientUrl:t}){return await fetcher({url:new URL("/api/v1/render",t).toString(),body:e})}n(C,"renderTemplate");async function v({appClientUrl:e,payload:t}){return (await fetcher({url:new URL("/api/v1/files",e).toString(),body:{type:"verify",payload:t}})).payload}n(v,"verifyFile");export{y as checkAppClientUrl,R as getAppClientData,d as getDataStore,S as getPluginContent,g as getTemplateSuggestions,o as prepAppClientData,P as prepareDataForFileSave,C as renderTemplate,D as submitDataForFileSave,v as verifyFile};//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/get-template-suggestions.ts","../src/app-client-api.ts"],"names":["getTemplateSuggestions","appClientUrl","query","fetcher","__name","checkAppClientUrl","url","theUrl","err","getDataStore","getAppClientData","serverDataRes","message","prepAppClientData","state","metaState","appClientDataNoMeta","prepareDataForFileSave","urlBase","body","submitDataForFileSave","data","getPluginContent","pluginId","renderTemplate","options","verifyFile","payload"],"mappings":"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","file":"index.mjs","sourcesContent":["import type {\n EndpointPaths,\n TemplateSuggestionsReqParams,\n TemplateSuggestionsResBody,\n} from '@knapsack/app/api-info';\nimport { fetcher } from '@knapsack/utils';\n\nexport async function getTemplateSuggestions({\n appClientUrl,\n query,\n}: {\n appClientUrl: string;\n query: TemplateSuggestionsReqParams;\n}): Promise<TemplateSuggestionsResBody> {\n return fetcher<TemplateSuggestionsResBody>({\n url: new URL(\n '/api/v1/template-suggestions' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n query,\n });\n}\n","import { KsAppClientData, KsRenderResults } from '@knapsack/types';\nimport type {\n Except,\n GenericResponse,\n KsAppClientDataAndMeta,\n KsAppClientDataNoMeta,\n KsFileSaverParams,\n} from '@knapsack/types';\nimport { fetcher } from '@knapsack/utils';\nimport type {\n PatternRenderData,\n KnapsackDataStoreSaveBody,\n EndpointPaths,\n EndpointFiles,\n ExtractEndpointData,\n ExtractEndpointResBody,\n EndpointPlugins,\n} from '@knapsack/app/api-info';\n\nexport type { PatternRenderData, EndpointPaths };\n\nexport async function checkAppClientUrl(url: string): Promise<GenericResponse> {\n try {\n const theUrl = new URL('/api/v1' satisfies EndpointPaths, url); // will throw if url not formatted correctly\n const res = await fetcher<GenericResponse>({\n url: theUrl.toString(),\n });\n return res;\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\nexport async function getDataStore({\n appClientUrl,\n}: {\n appClientUrl: string;\n}): Promise<GenericResponse<KsAppClientDataAndMeta>> {\n try {\n const data = await fetcher<KsAppClientDataAndMeta>({\n url: new URL(\n '/api/v1/data-store' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n });\n\n return {\n ok: true,\n data,\n };\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\n// just need a function that can throw an error\nexport async function getAppClientData({\n appClientUrl,\n}: {\n appClientUrl: string;\n}): Promise<KsAppClientDataAndMeta> {\n const serverDataRes = await getDataStore({ appClientUrl });\n if (!serverDataRes.ok || !serverDataRes.data) {\n const message = `Could not load data from custom url \"${appClientUrl}\" ${serverDataRes.message}`;\n throw new Error(message);\n }\n return serverDataRes.data;\n}\n\n/** Sole job is to strip `metaState` if it's there */\nexport function prepAppClientData(\n state: KsAppClientData,\n): KsAppClientDataNoMeta {\n const { metaState, ...appClientDataNoMeta } = state;\n return appClientDataNoMeta;\n}\n\nexport async function prepareDataForFileSave({\n urlBase,\n state,\n}: {\n urlBase: string;\n state: KsAppClientDataNoMeta;\n}): Promise<GenericResponse<KsFileSaverParams>> {\n try {\n const body: KnapsackDataStoreSaveBody = {\n state: prepAppClientData(state),\n };\n const data = await fetcher<GenericResponse<KsFileSaverParams>>({\n url: new URL(\n '/api/v1/data-store-prep' satisfies EndpointPaths,\n urlBase,\n ).toString(),\n body,\n });\n\n return data;\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\nexport async function submitDataForFileSave({\n urlBase,\n state,\n}: {\n urlBase: string;\n state: KsAppClientDataNoMeta;\n}): Promise<void> {\n const appClientData = prepAppClientData(state);\n const body: KnapsackDataStoreSaveBody = {\n state: appClientData,\n };\n const data = await fetcher<GenericResponse>({\n url: new URL(\n '/api/v1/data-store' satisfies EndpointPaths,\n urlBase,\n ).toString(),\n body,\n });\n\n if (!data.ok) {\n throw new Error(`Could not save data to localhost files: ${data.message}`);\n }\n}\n\nexport async function getPluginContent({\n pluginId,\n appClientUrl,\n}: {\n appClientUrl: string;\n} & Except<ExtractEndpointData<EndpointPlugins>, 'type'>): Promise<\n ExtractEndpointResBody<EndpointPlugins>\n> {\n return fetcher({\n url: new URL(\n '/api/v1/plugins' satisfies EndpointPlugins['path'],\n appClientUrl,\n ).toString(),\n body: {\n pluginId,\n type: 'getContent',\n } satisfies ExtractEndpointData<EndpointPlugins>,\n });\n}\n\nexport async function renderTemplate({\n options,\n appClientUrl,\n}: {\n options: PatternRenderData;\n appClientUrl: string;\n}): Promise<KsRenderResults> {\n const data = await fetcher<KsRenderResults>({\n url: new URL(\n '/api/v1/render' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n body: options,\n });\n return data;\n}\n\nexport async function verifyFile({\n appClientUrl,\n payload,\n}: {\n appClientUrl: string;\n payload: ExtractEndpointData<EndpointFiles>['payload'];\n}) {\n const data = await fetcher<ExtractEndpointResBody<EndpointFiles>>({\n url: new URL(\n '/api/v1/files' satisfies EndpointFiles['path'],\n appClientUrl,\n ).toString(),\n body: {\n type: 'verify',\n payload,\n } satisfies ExtractEndpointData<EndpointFiles>,\n });\n return data.payload;\n}\n"]}
1
+ {"version":3,"sources":["../src/get-template-suggestions.ts","../src/app-client-api.ts"],"names":["getTemplateSuggestions","appClientUrl","query","fetcher","__name","checkAppClientUrl","url","theUrl","err","getDataStore","getAppClientData","serverDataRes","message","prepAppClientData","state","metaState","appClientDataNoMeta","prepareDataForFileSave","urlBase","body","submitDataForFileSave","data","getPluginContent","pluginId","renderTemplate","options","verifyFile","payload"],"mappings":"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","file":"index.mjs","sourcesContent":["import type {\n EndpointPaths,\n TemplateSuggestionsReqParams,\n TemplateSuggestionsResBody,\n} from '@knapsack/app/api-info';\nimport { fetcher } from '@knapsack/utils';\n\nexport async function getTemplateSuggestions({\n appClientUrl,\n query,\n}: {\n appClientUrl: string;\n query: TemplateSuggestionsReqParams;\n}): Promise<TemplateSuggestionsResBody> {\n return fetcher<TemplateSuggestionsResBody>({\n url: new URL(\n '/api/v1/template-suggestions' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n query,\n });\n}\n","import { KsAppClientData, KsRenderResults } from '@knapsack/types';\nimport type {\n Except,\n GenericResponse,\n KsAppClientDataAndMeta,\n KsAppClientDataNoMeta,\n KsFileSaverParams,\n} from '@knapsack/types';\nimport { fetcher } from '@knapsack/utils';\nimport type {\n PatternRenderData,\n KnapsackDataStoreSaveBody,\n EndpointPaths,\n EndpointFiles,\n ExtractEndpointData,\n ExtractEndpointResBody,\n EndpointPlugins,\n} from '@knapsack/app/api-info';\n\nexport type { PatternRenderData, EndpointPaths };\n\nexport async function checkAppClientUrl(url: string): Promise<GenericResponse> {\n try {\n const theUrl = new URL('/api/v1' satisfies EndpointPaths, url); // will throw if url not formatted correctly\n const res = await fetcher<GenericResponse>({\n url: theUrl.toString(),\n });\n return res;\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\nexport async function getDataStore({\n appClientUrl,\n}: {\n appClientUrl: string;\n}): Promise<GenericResponse<KsAppClientDataAndMeta>> {\n try {\n const data = await fetcher<KsAppClientDataAndMeta>({\n url: new URL(\n '/api/v1/data-store' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n });\n\n return {\n ok: true,\n data,\n };\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\n// just need a function that can throw an error\nexport async function getAppClientData({\n appClientUrl,\n}: {\n appClientUrl: string;\n}): Promise<KsAppClientDataAndMeta> {\n const serverDataRes = await getDataStore({ appClientUrl });\n if (!serverDataRes.ok || !serverDataRes.data) {\n const message = `We're having trouble accessing your server at ${appClientUrl}.`;\n throw new Error(message);\n }\n return serverDataRes.data;\n}\n\n/** Sole job is to strip `metaState` if it's there */\nexport function prepAppClientData(\n state: KsAppClientData,\n): KsAppClientDataNoMeta {\n const { metaState, ...appClientDataNoMeta } = state;\n return appClientDataNoMeta;\n}\n\nexport async function prepareDataForFileSave({\n urlBase,\n state,\n}: {\n urlBase: string;\n state: KsAppClientDataNoMeta;\n}): Promise<GenericResponse<KsFileSaverParams>> {\n try {\n const body: KnapsackDataStoreSaveBody = {\n state: prepAppClientData(state),\n };\n const data = await fetcher<GenericResponse<KsFileSaverParams>>({\n url: new URL(\n '/api/v1/data-store-prep' satisfies EndpointPaths,\n urlBase,\n ).toString(),\n body,\n });\n\n return data;\n } catch (err) {\n return {\n ok: false,\n message: err instanceof Error ? err.message : 'Unknown error',\n };\n }\n}\n\nexport async function submitDataForFileSave({\n urlBase,\n state,\n}: {\n urlBase: string;\n state: KsAppClientDataNoMeta;\n}): Promise<void> {\n const appClientData = prepAppClientData(state);\n const body: KnapsackDataStoreSaveBody = {\n state: appClientData,\n };\n const data = await fetcher<GenericResponse>({\n url: new URL(\n '/api/v1/data-store' satisfies EndpointPaths,\n urlBase,\n ).toString(),\n body,\n });\n\n if (!data.ok) {\n throw new Error(`Could not save data to localhost files: ${data.message}`);\n }\n}\n\nexport async function getPluginContent({\n pluginId,\n appClientUrl,\n}: {\n appClientUrl: string;\n} & Except<ExtractEndpointData<EndpointPlugins>, 'type'>): Promise<\n ExtractEndpointResBody<EndpointPlugins>\n> {\n return fetcher({\n url: new URL(\n '/api/v1/plugins' satisfies EndpointPlugins['path'],\n appClientUrl,\n ).toString(),\n body: {\n pluginId,\n type: 'getContent',\n } satisfies ExtractEndpointData<EndpointPlugins>,\n });\n}\n\nexport async function renderTemplate({\n options,\n appClientUrl,\n}: {\n options: PatternRenderData;\n appClientUrl: string;\n}): Promise<KsRenderResults> {\n const data = await fetcher<KsRenderResults>({\n url: new URL(\n '/api/v1/render' satisfies EndpointPaths,\n appClientUrl,\n ).toString(),\n body: options,\n });\n return data;\n}\n\nexport async function verifyFile({\n appClientUrl,\n payload,\n}: {\n appClientUrl: string;\n payload: ExtractEndpointData<EndpointFiles>['payload'];\n}) {\n const data = await fetcher<ExtractEndpointResBody<EndpointFiles>>({\n url: new URL(\n '/api/v1/files' satisfies EndpointFiles['path'],\n appClientUrl,\n ).toString(),\n body: {\n type: 'verify',\n payload,\n } satisfies ExtractEndpointData<EndpointFiles>,\n });\n return data.payload;\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@knapsack/app-client-api",
3
3
  "description": "",
4
- "version": "4.71.17--canary.5283.771301f.0",
4
+ "version": "4.71.17--canary.5307.7b88780.0",
5
5
  "exports": {
6
6
  ".": {
7
7
  "types": "./dist/index.d.ts",
@@ -21,15 +21,15 @@
21
21
  "lint": "eslint ./"
22
22
  },
23
23
  "dependencies": {
24
- "@knapsack/app": "4.71.17--canary.5283.771301f.0",
25
- "@knapsack/types": "4.71.17--canary.5283.771301f.0",
26
- "@knapsack/utils": "4.71.17--canary.5283.771301f.0",
24
+ "@knapsack/app": "4.71.17--canary.5307.7b88780.0",
25
+ "@knapsack/types": "4.71.17--canary.5307.7b88780.0",
26
+ "@knapsack/utils": "4.71.17--canary.5307.7b88780.0",
27
27
  "cross-fetch": "^4.0.0"
28
28
  },
29
29
  "devDependencies": {
30
- "@knapsack/eslint-config-starter": "4.71.17--canary.5283.771301f.0",
31
- "@knapsack/prettier-config": "4.71.17--canary.5283.771301f.0",
32
- "@knapsack/typescript-config-starter": "4.71.17--canary.5283.771301f.0",
30
+ "@knapsack/eslint-config-starter": "4.71.17--canary.5307.7b88780.0",
31
+ "@knapsack/prettier-config": "4.71.17--canary.5307.7b88780.0",
32
+ "@knapsack/typescript-config-starter": "4.71.17--canary.5307.7b88780.0",
33
33
  "@types/node": "^20.17.8",
34
34
  "eslint": "^8.57.0",
35
35
  "tsup": "^8.3.5",
@@ -44,5 +44,5 @@
44
44
  "directory": "libs/app-client-api",
45
45
  "type": "git"
46
46
  },
47
- "gitHead": "771301fdafc5873b8fd65198af15f7507f6c5d37"
47
+ "gitHead": "7b88780406e9a58db500b1d70e2a6edd9b91c9c8"
48
48
  }