derived-sdk 0.0.17 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -2
- package/dist/index.cjs +137 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +110 -0
- package/dist/index.js.map +7 -0
- package/dist/main.d.ts.map +1 -1
- package/package.json +20 -5
- package/dist/bundle.js +0 -2
package/README.md
CHANGED
|
@@ -1,3 +1,44 @@
|
|
|
1
|
-
#
|
|
1
|
+
# `derived-sdk`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
TypeScript SDK for the Derived API.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add derived-sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { DerivedSDK } from "derived-sdk";
|
|
15
|
+
|
|
16
|
+
const sdk = new DerivedSDK({
|
|
17
|
+
apiToken: process.env.DERIVED_API_TOKEN,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const block = await sdk.fetchBlock("my-block-code");
|
|
21
|
+
console.log(block.result);
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Available Methods
|
|
25
|
+
|
|
26
|
+
- `fetchBlock(blockCode)`
|
|
27
|
+
- `getBlockInputFromUserQuery(blockInput, query)`
|
|
28
|
+
- `resolveMultipleTemplates(blockCode, schema)`
|
|
29
|
+
- `searchBlocksByName(query, projectId)`
|
|
30
|
+
- `fetchProjectBySlug(slug)`
|
|
31
|
+
- `createMultipleTemplates(templates)`
|
|
32
|
+
- `createTemplateGroup(payload)`
|
|
33
|
+
- `getProjectCategories(projectId, limit?, page?)`
|
|
34
|
+
- `createCategory(payload)`
|
|
35
|
+
- `updateTemplateGroup(id, payload)`
|
|
36
|
+
|
|
37
|
+
## Build
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pnpm --filter derived-sdk build
|
|
41
|
+
pnpm --filter derived-sdk pack:check
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`pack:check` creates the same tarball shape npm will publish so you can verify the package contents before pushing a release.
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
DerivedSDK: () => main_default,
|
|
24
|
+
default: () => main_default
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(src_exports);
|
|
27
|
+
|
|
28
|
+
// src/http.service.ts
|
|
29
|
+
var HttpService = class {
|
|
30
|
+
baseUrl;
|
|
31
|
+
defaultHeaders;
|
|
32
|
+
constructor(baseUrl, defaultHeaders = {}) {
|
|
33
|
+
this.baseUrl = baseUrl;
|
|
34
|
+
this.defaultHeaders = defaultHeaders;
|
|
35
|
+
}
|
|
36
|
+
buildUrl(path) {
|
|
37
|
+
return `${this.baseUrl.replace(/\/$/, "")}/${path.replace(/^\//, "")}`;
|
|
38
|
+
}
|
|
39
|
+
async request(method, path, body, headers = {}) {
|
|
40
|
+
const url = this.buildUrl(path);
|
|
41
|
+
const res = await fetch(url, {
|
|
42
|
+
method,
|
|
43
|
+
headers: {
|
|
44
|
+
"Content-Type": "application/json",
|
|
45
|
+
...this.defaultHeaders,
|
|
46
|
+
...headers
|
|
47
|
+
},
|
|
48
|
+
body: body ? JSON.stringify(body) : void 0
|
|
49
|
+
});
|
|
50
|
+
if (!res.ok) {
|
|
51
|
+
const errorText = await res.text().catch(() => "");
|
|
52
|
+
throw new Error(
|
|
53
|
+
`HTTP ${res.status} ${res.statusText}: ${errorText || "Request failed"}`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
const text = await res.text();
|
|
57
|
+
try {
|
|
58
|
+
return JSON.parse(text);
|
|
59
|
+
} catch {
|
|
60
|
+
return text;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
get(path, headers) {
|
|
64
|
+
return this.request("GET", path, void 0, headers);
|
|
65
|
+
}
|
|
66
|
+
post(path, body, headers) {
|
|
67
|
+
return this.request("POST", path, body, headers);
|
|
68
|
+
}
|
|
69
|
+
put(path, body, headers) {
|
|
70
|
+
return this.request("PUT", path, body, headers);
|
|
71
|
+
}
|
|
72
|
+
delete(path, headers) {
|
|
73
|
+
return this.request("DELETE", path, void 0, headers);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// src/main.ts
|
|
78
|
+
var DerivedSDK = class {
|
|
79
|
+
api;
|
|
80
|
+
apiToken;
|
|
81
|
+
constructor(config) {
|
|
82
|
+
this.apiToken = config?.apiToken;
|
|
83
|
+
this.api = new HttpService("https://api.usederived.com/api", {
|
|
84
|
+
...this.apiToken ? { Authorization: this.apiToken } : {}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
fetchBlock = async (blockCode) => {
|
|
88
|
+
return this.api.get(`/public/v1/template-group/code/${blockCode}`);
|
|
89
|
+
};
|
|
90
|
+
getBlockInputFromUserQuery = (blockInput, query) => {
|
|
91
|
+
return this.api.post(
|
|
92
|
+
`/public/v1/template-group/get-block-input-from-user-query`,
|
|
93
|
+
{ blockInput, query }
|
|
94
|
+
);
|
|
95
|
+
};
|
|
96
|
+
resolveMultipleTemplates = (blockCode, schema) => {
|
|
97
|
+
return this.api.post(
|
|
98
|
+
`/public/v1/template-group/resolve-multiple-templates-by-block-code`,
|
|
99
|
+
{ blockCode, data: schema }
|
|
100
|
+
);
|
|
101
|
+
};
|
|
102
|
+
searchBlocksByName = (query, projectId) => {
|
|
103
|
+
return this.api.get(
|
|
104
|
+
`/public/v1/template-group/semantic-search?q=${query}&limit=5&threshold=0.5&project_id=${projectId}`
|
|
105
|
+
);
|
|
106
|
+
};
|
|
107
|
+
fetchProjectBySlug = async (slug) => {
|
|
108
|
+
return this.api.get(`/public/v1/project/detail-by-slug/${slug}`);
|
|
109
|
+
};
|
|
110
|
+
createMultipleTemplates = async (templates) => {
|
|
111
|
+
return this.api.post(`/v1/template/create-multiple`, templates);
|
|
112
|
+
};
|
|
113
|
+
createTemplateGroup = async (payload) => {
|
|
114
|
+
return this.api.post(`/v1/template-group/create`, payload);
|
|
115
|
+
};
|
|
116
|
+
getProjectCategories = async (projectId, limit = 20, page = 1) => {
|
|
117
|
+
const filters = encodeURIComponent(
|
|
118
|
+
JSON.stringify({ projectID: projectId })
|
|
119
|
+
);
|
|
120
|
+
const sort = encodeURIComponent(JSON.stringify({ Desc: "id" }));
|
|
121
|
+
return this.api.get(
|
|
122
|
+
`/v1/block-category/list?filters=${filters}&sort=${sort}&limit=${limit}&page=${page}`
|
|
123
|
+
);
|
|
124
|
+
};
|
|
125
|
+
createCategory = async (payload) => {
|
|
126
|
+
return this.api.post(`/v1/block-category/create`, payload);
|
|
127
|
+
};
|
|
128
|
+
updateTemplateGroup = async (id, payload) => {
|
|
129
|
+
return this.api.put(`/v1/template-group/update/${id}`, payload);
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
var main_default = DerivedSDK;
|
|
133
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
134
|
+
0 && (module.exports = {
|
|
135
|
+
DerivedSDK
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts", "../src/http.service.ts", "../src/main.ts"],
|
|
4
|
+
"sourcesContent": ["export { default as DerivedSDK } from \"./main\";\nexport { default } from \"./main\";\nexport type {\n Block,\n Category,\n CreateCategoryPayload,\n CreateTemplateGroupPayload,\n CreateTemplatePayload,\n Project,\n TDerivedApiResponse,\n UpdateTemplateGroupPayload,\n} from \"./types\";\n", "import { TDerivedApiResponse } from \"./types\";\n\nexport class HttpService {\n private baseUrl: string;\n private defaultHeaders: Record<string, string>;\n\n constructor(baseUrl: string, defaultHeaders: Record<string, string> = {}) {\n this.baseUrl = baseUrl;\n this.defaultHeaders = defaultHeaders;\n }\n\n private buildUrl(path: string): string {\n return `${this.baseUrl.replace(/\\/$/, \"\")}/${path.replace(/^\\//, \"\")}`;\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: any,\n headers: Record<string, string> = {}\n ): Promise<T> {\n const url = this.buildUrl(path); \n const res = await fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.defaultHeaders,\n ...headers,\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n\n if (!res.ok) {\n const errorText = await res.text().catch(() => \"\");\n throw new Error(\n `HTTP ${res.status} ${res.statusText}: ${errorText || \"Request failed\"}`\n );\n }\n\n // Try parsing as JSON, but return text if cannot parse\n const text = await res.text();\n try {\n return JSON.parse(text);\n } catch {\n return text as T;\n }\n }\n\n get<T>(path: string, headers?: Record<string, string>) {\n return this.request<TDerivedApiResponse<T>>(\"GET\", path, undefined, headers);\n }\n\n post<T>(path: string, body?: any, headers?: Record<string, string>) {\n return this.request<TDerivedApiResponse<T>>(\"POST\", path, body, headers);\n }\n\n put<T>(path: string, body?: any, headers?: Record<string, string>) {\n return this.request<TDerivedApiResponse<T>>(\"PUT\", path, body, headers);\n }\n\n delete<T>(path: string, headers?: Record<string, string>) {\n return this.request<TDerivedApiResponse<T>>(\"DELETE\", path, undefined, headers);\n }\n}\n", "import {\n Block,\n CreateTemplateGroupPayload,\n CreateTemplatePayload,\n Category,\n CreateCategoryPayload,\n UpdateTemplateGroupPayload,\n} from \"./types\";\nimport { HttpService } from \"./http.service\";\n\nclass DerivedSDK {\n private api: HttpService;\n private apiToken?: string;\n\n constructor(config?: { apiToken?: string }) {\n this.apiToken = config?.apiToken;\n this.api = new HttpService(\"https://api.usederived.com/api\", {\n ...(this.apiToken ? { Authorization: this.apiToken } : {}),\n });\n }\n\n fetchBlock = async (blockCode: string) => {\n return this.api.get<Block>(`/public/v1/template-group/code/${blockCode}`);\n };\n\n getBlockInputFromUserQuery = (blockInput: string, query: string) => {\n return this.api.post<{ schema: any }>(\n `/public/v1/template-group/get-block-input-from-user-query`,\n { blockInput, query },\n );\n };\n\n resolveMultipleTemplates = (blockCode: string, schema: any) => {\n return this.api.post<any>(\n `/public/v1/template-group/resolve-multiple-templates-by-block-code`,\n { blockCode, data: schema },\n );\n };\n\n searchBlocksByName = (query: string, projectId: number) => {\n return this.api.get<Block[]>(\n `/public/v1/template-group/semantic-search?q=${query}&limit=5&threshold=0.5&project_id=${projectId}`,\n );\n };\n\n fetchProjectBySlug = async (slug: string) => {\n return this.api.get<any>(`/public/v1/project/detail-by-slug/${slug}`);\n };\n\n createMultipleTemplates = async (templates: CreateTemplatePayload[]) => {\n return this.api.post<any>(`/v1/template/create-multiple`, templates);\n };\n\n createTemplateGroup = async (payload: CreateTemplateGroupPayload) => {\n return this.api.post<any>(`/v1/template-group/create`, payload);\n };\n\n getProjectCategories = async (\n projectId: number,\n limit: number = 20,\n page: number = 1,\n ) => {\n const filters = encodeURIComponent(\n JSON.stringify({ projectID: projectId }),\n );\n const sort = encodeURIComponent(JSON.stringify({ Desc: \"id\" }));\n return this.api.get<Category[]>(\n `/v1/block-category/list?filters=${filters}&sort=${sort}&limit=${limit}&page=${page}`,\n );\n };\n\n createCategory = async (payload: CreateCategoryPayload) => {\n return this.api.post<any>(`/v1/block-category/create`, payload);\n };\n\n updateTemplateGroup = async (\n id: number,\n payload: UpdateTemplateGroupPayload,\n ) => {\n return this.api.put<any>(`/v1/template-group/update/${id}`, payload);\n };\n}\n\nexport default DerivedSDK;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default as DerivedSDK } from "./main";
|
|
2
|
+
export { default } from "./main";
|
|
3
|
+
export type { Block, Category, CreateCategoryPayload, CreateTemplateGroupPayload, CreateTemplatePayload, Project, TDerivedApiResponse, UpdateTemplateGroupPayload, } from "./types";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,YAAY,EACV,KAAK,EACL,QAAQ,EACR,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,OAAO,EACP,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// src/http.service.ts
|
|
2
|
+
var HttpService = class {
|
|
3
|
+
baseUrl;
|
|
4
|
+
defaultHeaders;
|
|
5
|
+
constructor(baseUrl, defaultHeaders = {}) {
|
|
6
|
+
this.baseUrl = baseUrl;
|
|
7
|
+
this.defaultHeaders = defaultHeaders;
|
|
8
|
+
}
|
|
9
|
+
buildUrl(path) {
|
|
10
|
+
return `${this.baseUrl.replace(/\/$/, "")}/${path.replace(/^\//, "")}`;
|
|
11
|
+
}
|
|
12
|
+
async request(method, path, body, headers = {}) {
|
|
13
|
+
const url = this.buildUrl(path);
|
|
14
|
+
const res = await fetch(url, {
|
|
15
|
+
method,
|
|
16
|
+
headers: {
|
|
17
|
+
"Content-Type": "application/json",
|
|
18
|
+
...this.defaultHeaders,
|
|
19
|
+
...headers
|
|
20
|
+
},
|
|
21
|
+
body: body ? JSON.stringify(body) : void 0
|
|
22
|
+
});
|
|
23
|
+
if (!res.ok) {
|
|
24
|
+
const errorText = await res.text().catch(() => "");
|
|
25
|
+
throw new Error(
|
|
26
|
+
`HTTP ${res.status} ${res.statusText}: ${errorText || "Request failed"}`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
const text = await res.text();
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse(text);
|
|
32
|
+
} catch {
|
|
33
|
+
return text;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
get(path, headers) {
|
|
37
|
+
return this.request("GET", path, void 0, headers);
|
|
38
|
+
}
|
|
39
|
+
post(path, body, headers) {
|
|
40
|
+
return this.request("POST", path, body, headers);
|
|
41
|
+
}
|
|
42
|
+
put(path, body, headers) {
|
|
43
|
+
return this.request("PUT", path, body, headers);
|
|
44
|
+
}
|
|
45
|
+
delete(path, headers) {
|
|
46
|
+
return this.request("DELETE", path, void 0, headers);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// src/main.ts
|
|
51
|
+
var DerivedSDK = class {
|
|
52
|
+
api;
|
|
53
|
+
apiToken;
|
|
54
|
+
constructor(config) {
|
|
55
|
+
this.apiToken = config?.apiToken;
|
|
56
|
+
this.api = new HttpService("https://api.usederived.com/api", {
|
|
57
|
+
...this.apiToken ? { Authorization: this.apiToken } : {}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
fetchBlock = async (blockCode) => {
|
|
61
|
+
return this.api.get(`/public/v1/template-group/code/${blockCode}`);
|
|
62
|
+
};
|
|
63
|
+
getBlockInputFromUserQuery = (blockInput, query) => {
|
|
64
|
+
return this.api.post(
|
|
65
|
+
`/public/v1/template-group/get-block-input-from-user-query`,
|
|
66
|
+
{ blockInput, query }
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
resolveMultipleTemplates = (blockCode, schema) => {
|
|
70
|
+
return this.api.post(
|
|
71
|
+
`/public/v1/template-group/resolve-multiple-templates-by-block-code`,
|
|
72
|
+
{ blockCode, data: schema }
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
searchBlocksByName = (query, projectId) => {
|
|
76
|
+
return this.api.get(
|
|
77
|
+
`/public/v1/template-group/semantic-search?q=${query}&limit=5&threshold=0.5&project_id=${projectId}`
|
|
78
|
+
);
|
|
79
|
+
};
|
|
80
|
+
fetchProjectBySlug = async (slug) => {
|
|
81
|
+
return this.api.get(`/public/v1/project/detail-by-slug/${slug}`);
|
|
82
|
+
};
|
|
83
|
+
createMultipleTemplates = async (templates) => {
|
|
84
|
+
return this.api.post(`/v1/template/create-multiple`, templates);
|
|
85
|
+
};
|
|
86
|
+
createTemplateGroup = async (payload) => {
|
|
87
|
+
return this.api.post(`/v1/template-group/create`, payload);
|
|
88
|
+
};
|
|
89
|
+
getProjectCategories = async (projectId, limit = 20, page = 1) => {
|
|
90
|
+
const filters = encodeURIComponent(
|
|
91
|
+
JSON.stringify({ projectID: projectId })
|
|
92
|
+
);
|
|
93
|
+
const sort = encodeURIComponent(JSON.stringify({ Desc: "id" }));
|
|
94
|
+
return this.api.get(
|
|
95
|
+
`/v1/block-category/list?filters=${filters}&sort=${sort}&limit=${limit}&page=${page}`
|
|
96
|
+
);
|
|
97
|
+
};
|
|
98
|
+
createCategory = async (payload) => {
|
|
99
|
+
return this.api.post(`/v1/block-category/create`, payload);
|
|
100
|
+
};
|
|
101
|
+
updateTemplateGroup = async (id, payload) => {
|
|
102
|
+
return this.api.put(`/v1/template-group/update/${id}`, payload);
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
var main_default = DerivedSDK;
|
|
106
|
+
export {
|
|
107
|
+
main_default as DerivedSDK,
|
|
108
|
+
main_default as default
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/http.service.ts", "../src/main.ts"],
|
|
4
|
+
"sourcesContent": ["import { TDerivedApiResponse } from \"./types\";\n\nexport class HttpService {\n private baseUrl: string;\n private defaultHeaders: Record<string, string>;\n\n constructor(baseUrl: string, defaultHeaders: Record<string, string> = {}) {\n this.baseUrl = baseUrl;\n this.defaultHeaders = defaultHeaders;\n }\n\n private buildUrl(path: string): string {\n return `${this.baseUrl.replace(/\\/$/, \"\")}/${path.replace(/^\\//, \"\")}`;\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: any,\n headers: Record<string, string> = {}\n ): Promise<T> {\n const url = this.buildUrl(path); \n const res = await fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.defaultHeaders,\n ...headers,\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n\n if (!res.ok) {\n const errorText = await res.text().catch(() => \"\");\n throw new Error(\n `HTTP ${res.status} ${res.statusText}: ${errorText || \"Request failed\"}`\n );\n }\n\n // Try parsing as JSON, but return text if cannot parse\n const text = await res.text();\n try {\n return JSON.parse(text);\n } catch {\n return text as T;\n }\n }\n\n get<T>(path: string, headers?: Record<string, string>) {\n return this.request<TDerivedApiResponse<T>>(\"GET\", path, undefined, headers);\n }\n\n post<T>(path: string, body?: any, headers?: Record<string, string>) {\n return this.request<TDerivedApiResponse<T>>(\"POST\", path, body, headers);\n }\n\n put<T>(path: string, body?: any, headers?: Record<string, string>) {\n return this.request<TDerivedApiResponse<T>>(\"PUT\", path, body, headers);\n }\n\n delete<T>(path: string, headers?: Record<string, string>) {\n return this.request<TDerivedApiResponse<T>>(\"DELETE\", path, undefined, headers);\n }\n}\n", "import {\n Block,\n CreateTemplateGroupPayload,\n CreateTemplatePayload,\n Category,\n CreateCategoryPayload,\n UpdateTemplateGroupPayload,\n} from \"./types\";\nimport { HttpService } from \"./http.service\";\n\nclass DerivedSDK {\n private api: HttpService;\n private apiToken?: string;\n\n constructor(config?: { apiToken?: string }) {\n this.apiToken = config?.apiToken;\n this.api = new HttpService(\"https://api.usederived.com/api\", {\n ...(this.apiToken ? { Authorization: this.apiToken } : {}),\n });\n }\n\n fetchBlock = async (blockCode: string) => {\n return this.api.get<Block>(`/public/v1/template-group/code/${blockCode}`);\n };\n\n getBlockInputFromUserQuery = (blockInput: string, query: string) => {\n return this.api.post<{ schema: any }>(\n `/public/v1/template-group/get-block-input-from-user-query`,\n { blockInput, query },\n );\n };\n\n resolveMultipleTemplates = (blockCode: string, schema: any) => {\n return this.api.post<any>(\n `/public/v1/template-group/resolve-multiple-templates-by-block-code`,\n { blockCode, data: schema },\n );\n };\n\n searchBlocksByName = (query: string, projectId: number) => {\n return this.api.get<Block[]>(\n `/public/v1/template-group/semantic-search?q=${query}&limit=5&threshold=0.5&project_id=${projectId}`,\n );\n };\n\n fetchProjectBySlug = async (slug: string) => {\n return this.api.get<any>(`/public/v1/project/detail-by-slug/${slug}`);\n };\n\n createMultipleTemplates = async (templates: CreateTemplatePayload[]) => {\n return this.api.post<any>(`/v1/template/create-multiple`, templates);\n };\n\n createTemplateGroup = async (payload: CreateTemplateGroupPayload) => {\n return this.api.post<any>(`/v1/template-group/create`, payload);\n };\n\n getProjectCategories = async (\n projectId: number,\n limit: number = 20,\n page: number = 1,\n ) => {\n const filters = encodeURIComponent(\n JSON.stringify({ projectID: projectId }),\n );\n const sort = encodeURIComponent(JSON.stringify({ Desc: \"id\" }));\n return this.api.get<Category[]>(\n `/v1/block-category/list?filters=${filters}&sort=${sort}&limit=${limit}&page=${page}`,\n );\n };\n\n createCategory = async (payload: CreateCategoryPayload) => {\n return this.api.post<any>(`/v1/block-category/create`, payload);\n };\n\n updateTemplateGroup = async (\n id: number,\n payload: UpdateTemplateGroupPayload,\n ) => {\n return this.api.put<any>(`/v1/template-group/update/${id}`, payload);\n };\n}\n\nexport default DerivedSDK;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,QAAQ,EACR,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAGjB,cAAM,UAAU;IACd,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAO1C,UAAU,GAAU,WAAW,MAAM,2DAEnC;IAEF,0BAA0B,GAAI,YAAY,MAAM,EAAE,OAAO,MAAM;gBAC9B,GAAG;QAIlC;IAEF,wBAAwB,GAAI,WAAW,MAAM,EAAE,QAAQ,GAAG,yDAKxD;IAEF,kBAAkB,GAAI,OAAO,MAAM,EAAE,WAAW,MAAM,6DAIpD;IAEF,kBAAkB,GAAU,MAAM,MAAM,yDAEtC;IAEF,uBAAuB,GAAU,WAAW,qBAAqB,EAAE,yDAEjE;IAEF,mBAAmB,GAAU,SAAS,0BAA0B,yDAE9D;IAEF,oBAAoB,GAClB,WAAW,MAAM,EACjB,QAAO,MAAW,EAClB,OAAM,MAAU,gEAShB;IAEF,cAAc,GAAU,SAAS,qBAAqB,yDAEpD;IAEF,mBAAmB,GACjB,IAAI,MAAM,EACV,SAAS,0BAA0B,yDAGnC;CACH;AAED,eAAe,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,23 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "derived-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "SDK for Derived",
|
|
5
5
|
"author": "Derived",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
7
10
|
"files": [
|
|
8
11
|
"dist"
|
|
9
12
|
],
|
|
10
|
-
"main": "./dist/
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
+
"main": "./dist/index.cjs",
|
|
14
|
+
"module": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"import": "./dist/index.js",
|
|
20
|
+
"require": "./dist/index.cjs",
|
|
21
|
+
"default": "./dist/index.js"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"sideEffects": false,
|
|
13
25
|
"scripts": {
|
|
14
26
|
"build": "node build.js",
|
|
15
27
|
"clean": "rm -rf dist",
|
|
16
28
|
"dev": "nodemon --exec \"node -r esbuild-register ./src/main.ts\" -e .ts",
|
|
17
|
-
"
|
|
29
|
+
"check-types": "tsc --project tsconfig.json --noEmit",
|
|
30
|
+
"lint": "pnpm run check-types && eslint \"src/**/*.ts\" --max-warnings 0",
|
|
18
31
|
"start": "node -r esbuild-register ./src/main.ts",
|
|
19
32
|
"test:watch": "vitest watch",
|
|
20
33
|
"format:biome": "npx @biomejs/biome format --write ./src",
|
|
34
|
+
"pack:check": "node ../../scripts/pack-package.mjs apps/sdk-derived",
|
|
35
|
+
"prepack": "node build.js",
|
|
21
36
|
"pub": "npm run build && npm version patch --no-git-tag-version && npm publish --no-git-checks"
|
|
22
37
|
},
|
|
23
38
|
"dependencies": {},
|
package/dist/bundle.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";var p=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var m=(a,e)=>{for(var t in e)p(a,t,{get:e[t],enumerable:!0})},T=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of d(e))!y.call(a,i)&&i!==t&&p(a,i,{get:()=>e[i],enumerable:!(r=g(e,i))||r.enumerable});return a};var h=a=>T(p({},"__esModule",{value:!0}),a);var b={};m(b,{default:()=>v});module.exports=h(b);var n=class{baseUrl;defaultHeaders;constructor(e,t={}){this.baseUrl=e,this.defaultHeaders=t}buildUrl(e){return`${this.baseUrl.replace(/\/$/,"")}/${e.replace(/^\//,"")}`}async request(e,t,r,i={}){let o=this.buildUrl(t),s=await fetch(o,{method:e,headers:{"Content-Type":"application/json",...this.defaultHeaders,...i},body:r?JSON.stringify(r):void 0});if(!s.ok){let u=await s.text().catch(()=>"");throw new Error(`HTTP ${s.status} ${s.statusText}: ${u||"Request failed"}`)}let c=await s.text();try{return JSON.parse(c)}catch{return c}}get(e,t){return this.request("GET",e,void 0,t)}post(e,t,r){return this.request("POST",e,t,r)}put(e,t,r){return this.request("PUT",e,t,r)}delete(e,t){return this.request("DELETE",e,void 0,t)}};var l=class{api;apiToken;constructor(e){this.apiToken=e?.apiToken,this.api=new n("https://api.derived.dev/api",{...this.apiToken?{Authorization:this.apiToken}:{}})}fetchBlock=async e=>this.api.get(`/public/v1/template-group/code/${e}`);getBlockInputFromUserQuery=(e,t)=>this.api.post("/public/v1/template-group/get-block-input-from-user-query",{blockInput:e,query:t});resolveMultipleTemplates=(e,t)=>this.api.post("/public/v1/template-group/resolve-multiple-templates-by-block-code",{blockCode:e,data:t});searchBlocksByName=(e,t)=>this.api.get(`/public/v1/template-group/semantic-search?q=${e}&limit=5&threshold=0.5&project_id=${t}`);fetchProjectBySlug=async e=>this.api.get(`/public/v1/project/detail-by-slug/${e}`);createMultipleTemplates=async e=>this.api.post("/v1/template/create-multiple",e);createTemplateGroup=async e=>this.api.post("/v1/template-group/create",e);getProjectCategories=async(e,t=20,r=1)=>{let i=encodeURIComponent(JSON.stringify({projectID:e})),o=encodeURIComponent(JSON.stringify({Desc:"id"}));return this.api.get(`/v1/block-category/list?filters=${i}&sort=${o}&limit=${t}&page=${r}`)};createCategory=async e=>this.api.post("/v1/block-category/create",e);updateTemplateGroup=async(e,t)=>this.api.put(`/v1/template-group/update/${e}`,t)},v=l;
|