@voilabs/plugins 0.0.1-beta.0
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 +634 -0
- package/dist/adapters/elysia.d.ts +31 -0
- package/dist/adapters/elysia.d.ts.map +1 -0
- package/dist/adapters/elysia.js +28 -0
- package/dist/adapters/elysia.js.map +1 -0
- package/dist/adapters/next.d.ts +25 -0
- package/dist/adapters/next.d.ts.map +1 -0
- package/dist/adapters/next.js +51 -0
- package/dist/adapters/next.js.map +1 -0
- package/dist/client.d.ts +33 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +123 -0
- package/dist/client.js.map +1 -0
- package/dist/examples/lumina.d.ts +9 -0
- package/dist/examples/lumina.d.ts.map +1 -0
- package/dist/examples/lumina.js +197 -0
- package/dist/examples/lumina.js.map +1 -0
- package/dist/http.d.ts +19 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +523 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/injection.d.ts +10 -0
- package/dist/injection.d.ts.map +1 -0
- package/dist/injection.js +174 -0
- package/dist/injection.js.map +1 -0
- package/dist/manager.d.ts +121 -0
- package/dist/manager.d.ts.map +1 -0
- package/dist/manager.js +1006 -0
- package/dist/manager.js.map +1 -0
- package/dist/plugin.d.ts +25 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +209 -0
- package/dist/plugin.js.map +1 -0
- package/dist/react.d.ts +34 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +88 -0
- package/dist/react.js.map +1 -0
- package/dist/types.d.ts +416 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elysia.js","sourceRoot":"","sources":["../../src/adapters/elysia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAerD,MAAM,UAAU,uBAAuB,CACrC,GAAS,EACT,OAAsB,EACtB,UAAoC,EAAE;IAEtC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,EAAE;QAC/C,GAAG,OAAO;QACV,MAAM;KACP,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,EAAE,OAAO,EAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;IACtF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAsB,EACtB,UAAoC,EAAE;IAEtC,OAAO,CAA0B,GAAS,EAAQ,EAAE,CAClD,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;IAClE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { PluginHttpHandlerOptions } from "../http.js";
|
|
2
|
+
import type { PluginManager } from "../manager.js";
|
|
3
|
+
export interface NextPluginRouteOptions extends PluginHttpHandlerOptions {
|
|
4
|
+
prefix?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function createNextPluginRouteHandlers(manager: PluginManager, options?: NextPluginRouteOptions): {
|
|
7
|
+
GET: (request: Request) => Promise<Response>;
|
|
8
|
+
POST: (request: Request) => Promise<Response>;
|
|
9
|
+
PUT: (request: Request) => Promise<Response>;
|
|
10
|
+
PATCH: (request: Request) => Promise<Response>;
|
|
11
|
+
DELETE: (request: Request) => Promise<Response>;
|
|
12
|
+
OPTIONS: (request: Request) => Promise<Response>;
|
|
13
|
+
HEAD: (request: Request) => Promise<Response>;
|
|
14
|
+
};
|
|
15
|
+
export declare function createNextPagesPluginHandler(manager: PluginManager, options?: NextPluginRouteOptions): (request: {
|
|
16
|
+
method?: string;
|
|
17
|
+
url?: string;
|
|
18
|
+
headers: Record<string, string | string[] | undefined>;
|
|
19
|
+
body?: unknown;
|
|
20
|
+
}, response: {
|
|
21
|
+
status: (code: number) => typeof response;
|
|
22
|
+
setHeader: (key: string, value: string | string[]) => void;
|
|
23
|
+
send: (body: unknown) => void;
|
|
24
|
+
}) => Promise<void>;
|
|
25
|
+
//# sourceMappingURL=next.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../src/adapters/next.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,sBAA2B;mBAMZ,OAAO;oBAAP,OAAO;mBAAP,OAAO;qBAAP,OAAO;sBAAP,OAAO;uBAAP,OAAO;oBAAP,OAAO;EAWhC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,sBAA2B,IAOtB,SAAS;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,EAAE,UAAU;IACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,QAAQ,CAAC;IAC1C,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IAC3D,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/B,mBAoBF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { createPluginHttpHandler } from "../http.js";
|
|
2
|
+
export function createNextPluginRouteHandlers(manager, options = {}) {
|
|
3
|
+
const handler = createPluginHttpHandler(manager, {
|
|
4
|
+
...options,
|
|
5
|
+
prefix: options.prefix ?? "/api/plugins",
|
|
6
|
+
});
|
|
7
|
+
const route = (request) => handler(request);
|
|
8
|
+
return {
|
|
9
|
+
GET: route,
|
|
10
|
+
POST: route,
|
|
11
|
+
PUT: route,
|
|
12
|
+
PATCH: route,
|
|
13
|
+
DELETE: route,
|
|
14
|
+
OPTIONS: route,
|
|
15
|
+
HEAD: route,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function createNextPagesPluginHandler(manager, options = {}) {
|
|
19
|
+
const handler = createPluginHttpHandler(manager, {
|
|
20
|
+
...options,
|
|
21
|
+
prefix: options.prefix ?? "/api/plugins",
|
|
22
|
+
});
|
|
23
|
+
return async (request, response) => {
|
|
24
|
+
const incoming = new Request(new URL(request.url ?? "/api/plugins", "http://voilabs.local"), {
|
|
25
|
+
method: request.method ?? "GET",
|
|
26
|
+
headers: normalizeHeaders(request.headers),
|
|
27
|
+
body: request.body === undefined ||
|
|
28
|
+
request.method === "GET" ||
|
|
29
|
+
request.method === "HEAD"
|
|
30
|
+
? undefined
|
|
31
|
+
: JSON.stringify(request.body),
|
|
32
|
+
});
|
|
33
|
+
const result = await handler(incoming);
|
|
34
|
+
response.status(result.status);
|
|
35
|
+
result.headers.forEach((value, key) => response.setHeader(key, value));
|
|
36
|
+
response.send(await result.text());
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function normalizeHeaders(headers) {
|
|
40
|
+
const normalized = new Headers();
|
|
41
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
42
|
+
if (Array.isArray(value)) {
|
|
43
|
+
normalized.set(key, value.join(", "));
|
|
44
|
+
}
|
|
45
|
+
else if (value !== undefined) {
|
|
46
|
+
normalized.set(key, value);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return normalized;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=next.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../src/adapters/next.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAQrD,MAAM,UAAU,6BAA6B,CAC3C,OAAsB,EACtB,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,EAAE;QAC/C,GAAG,OAAO;QACV,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,cAAc;KACzC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAsB,EACtB,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,EAAE;QAC/C,GAAG,OAAO;QACV,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,cAAc;KACzC,CAAC,CAAC;IAEH,OAAO,KAAK,EAAE,OAKb,EAAE,QAIF,EAAE,EAAE;QACH,MAAM,QAAQ,GAAG,IAAI,OAAO,CAC1B,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,cAAc,EAAE,sBAAsB,CAAC,EAC9D;YACE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;YAC1C,IAAI,EACF,OAAO,CAAC,IAAI,KAAK,SAAS;gBAC1B,OAAO,CAAC,MAAM,KAAK,KAAK;gBACxB,OAAO,CAAC,MAAM,KAAK,MAAM;gBACvB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;SACnC,CACF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvE,QAAQ,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAsD;IAEtD,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PaginatedResult, PluginConfig, PluginInstallOptions, PluginListItem, PluginListOptions } from "./types.js";
|
|
2
|
+
export interface PluginApiClientOptions {
|
|
3
|
+
baseUrl?: string;
|
|
4
|
+
fetcher?: typeof fetch;
|
|
5
|
+
headers?: HeadersInit | (() => HeadersInit);
|
|
6
|
+
}
|
|
7
|
+
export declare class PluginApiClient {
|
|
8
|
+
private readonly baseUrl;
|
|
9
|
+
private readonly fetcher;
|
|
10
|
+
private readonly headers?;
|
|
11
|
+
constructor(options?: PluginApiClientOptions);
|
|
12
|
+
list(options?: PluginListOptions): Promise<PaginatedResult<PluginListItem>>;
|
|
13
|
+
get(pluginId: string): Promise<PluginListItem>;
|
|
14
|
+
install<TConfig extends PluginConfig = PluginConfig>(pluginId: string, config: Partial<TConfig>, options?: PluginInstallOptions): Promise<unknown>;
|
|
15
|
+
updateConfig<TConfig extends PluginConfig = PluginConfig>(pluginId: string, config: Partial<TConfig>, options?: {
|
|
16
|
+
tenantId?: string;
|
|
17
|
+
merge?: boolean;
|
|
18
|
+
meta?: Record<string, unknown>;
|
|
19
|
+
}): Promise<unknown>;
|
|
20
|
+
enable(pluginId: string): Promise<unknown>;
|
|
21
|
+
disable(pluginId: string): Promise<unknown>;
|
|
22
|
+
uninstall(pluginId: string): Promise<unknown>;
|
|
23
|
+
call<TResponse = unknown>(pluginId: string, path: string, init?: Omit<RequestInit, "body"> & {
|
|
24
|
+
body?: unknown;
|
|
25
|
+
}): Promise<TResponse>;
|
|
26
|
+
private request;
|
|
27
|
+
}
|
|
28
|
+
export declare class PluginApiClientError extends Error {
|
|
29
|
+
readonly status: number;
|
|
30
|
+
readonly payload: unknown;
|
|
31
|
+
constructor(status: number, payload: unknown);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC;CAC7C;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAoC;gBAEjD,OAAO,GAAE,sBAA2B;IAUhD,IAAI,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAe/E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI9C,OAAO,CAAC,OAAO,SAAS,YAAY,GAAG,YAAY,EACjD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EACxB,OAAO,GAAE,oBAAyB;IAapC,YAAY,CAAC,OAAO,SAAS,YAAY,GAAG,YAAY,EACtD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EACxB,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAO;IAatF,MAAM,CAAC,QAAQ,EAAE,MAAM;IAMvB,OAAO,CAAC,QAAQ,EAAE,MAAM;IAMxB,SAAS,CAAC,QAAQ,EAAE,MAAM;IAM1B,IAAI,CAAC,SAAS,GAAG,OAAO,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAO,GACxD,OAAO,CAAC,SAAS,CAAC;YAOP,OAAO;CAkCtB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CAM7C"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
export class PluginApiClient {
|
|
2
|
+
baseUrl;
|
|
3
|
+
fetcher;
|
|
4
|
+
headers;
|
|
5
|
+
constructor(options = {}) {
|
|
6
|
+
if (!options.fetcher && !globalThis.fetch) {
|
|
7
|
+
throw new Error("No fetch implementation is available.");
|
|
8
|
+
}
|
|
9
|
+
this.baseUrl = normalizeBaseUrl(options.baseUrl ?? "/plugins");
|
|
10
|
+
this.fetcher = options.fetcher ?? globalThis.fetch.bind(globalThis);
|
|
11
|
+
this.headers = options.headers;
|
|
12
|
+
}
|
|
13
|
+
list(options = {}) {
|
|
14
|
+
return this.request("", {
|
|
15
|
+
query: {
|
|
16
|
+
page: options.page,
|
|
17
|
+
limit: options.limit,
|
|
18
|
+
q: options.query,
|
|
19
|
+
category: options.category,
|
|
20
|
+
provider: options.provider,
|
|
21
|
+
installed: options.installed,
|
|
22
|
+
enabled: options.enabled,
|
|
23
|
+
tenantId: options.tenantId,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
get(pluginId) {
|
|
28
|
+
return this.request(`/${encodeURIComponent(pluginId)}`);
|
|
29
|
+
}
|
|
30
|
+
install(pluginId, config, options = {}) {
|
|
31
|
+
return this.request(`/${encodeURIComponent(pluginId)}/install`, {
|
|
32
|
+
method: "POST",
|
|
33
|
+
body: {
|
|
34
|
+
config,
|
|
35
|
+
enabled: options.enabled,
|
|
36
|
+
tenantId: options.tenantId,
|
|
37
|
+
meta: options.meta,
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
updateConfig(pluginId, config, options = {}) {
|
|
42
|
+
return this.request(`/${encodeURIComponent(pluginId)}/config`, {
|
|
43
|
+
method: "PATCH",
|
|
44
|
+
body: {
|
|
45
|
+
config,
|
|
46
|
+
merge: options.merge,
|
|
47
|
+
tenantId: options.tenantId,
|
|
48
|
+
meta: options.meta,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
enable(pluginId) {
|
|
53
|
+
return this.request(`/${encodeURIComponent(pluginId)}/enable`, {
|
|
54
|
+
method: "POST",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
disable(pluginId) {
|
|
58
|
+
return this.request(`/${encodeURIComponent(pluginId)}/disable`, {
|
|
59
|
+
method: "POST",
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
uninstall(pluginId) {
|
|
63
|
+
return this.request(`/${encodeURIComponent(pluginId)}`, {
|
|
64
|
+
method: "DELETE",
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
call(pluginId, path, init = {}) {
|
|
68
|
+
return this.request(`/${encodeURIComponent(pluginId)}/${path.replace(/^\/+/, "")}`, init);
|
|
69
|
+
}
|
|
70
|
+
async request(path, init = {}) {
|
|
71
|
+
const headers = new Headers(resolveHeaders(this.headers));
|
|
72
|
+
const url = new URL(`${this.baseUrl}${path}`, "http://voilabs.local");
|
|
73
|
+
for (const [key, value] of Object.entries(init.query ?? {})) {
|
|
74
|
+
if (value !== undefined && value !== null) {
|
|
75
|
+
url.searchParams.set(key, String(value));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
let body;
|
|
79
|
+
if (init.body !== undefined) {
|
|
80
|
+
headers.set("content-type", "application/json");
|
|
81
|
+
body = JSON.stringify(init.body);
|
|
82
|
+
}
|
|
83
|
+
const response = await this.fetcher(`${url.pathname}${url.search}`, {
|
|
84
|
+
...init,
|
|
85
|
+
headers,
|
|
86
|
+
body,
|
|
87
|
+
});
|
|
88
|
+
if (!response.ok) {
|
|
89
|
+
throw new PluginApiClientError(response.status, await safeJson(response));
|
|
90
|
+
}
|
|
91
|
+
return safeJson(response);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export class PluginApiClientError extends Error {
|
|
95
|
+
status;
|
|
96
|
+
payload;
|
|
97
|
+
constructor(status, payload) {
|
|
98
|
+
super(`Plugin API request failed with status ${status}.`);
|
|
99
|
+
this.name = "PluginApiClientError";
|
|
100
|
+
this.status = status;
|
|
101
|
+
this.payload = payload;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function normalizeBaseUrl(baseUrl) {
|
|
105
|
+
const normalized = baseUrl.startsWith("/") ? baseUrl : `/${baseUrl}`;
|
|
106
|
+
return normalized.replace(/\/+$/, "");
|
|
107
|
+
}
|
|
108
|
+
function resolveHeaders(headers) {
|
|
109
|
+
return typeof headers === "function" ? headers() : headers;
|
|
110
|
+
}
|
|
111
|
+
async function safeJson(response) {
|
|
112
|
+
const text = await response.text();
|
|
113
|
+
if (!text) {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
return JSON.parse(text);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return text;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Plugin } from "../plugin.js";
|
|
2
|
+
import type { PluginConfig } from "../types.js";
|
|
3
|
+
export interface LuminaConfig extends PluginConfig {
|
|
4
|
+
apiKey: string;
|
|
5
|
+
email: string;
|
|
6
|
+
defaultLanguage?: "tr" | "en";
|
|
7
|
+
}
|
|
8
|
+
export declare const luminaAIPlugin: Plugin<LuminaConfig>;
|
|
9
|
+
//# sourceMappingURL=lumina.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lumina.d.ts","sourceRoot":"","sources":["../../src/examples/lumina.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,cAAc,sBAoMzB,CAAC"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { Plugin } from "../plugin.js";
|
|
2
|
+
const LUMINA_API_KEY_ID = "^voi_([a-fA-F0-9]{8})(-([a-fA-F0-9]{4})){3}-([a-fA-F0-9]{12})$";
|
|
3
|
+
const LUMINA_EMAIL = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
|
|
4
|
+
export const luminaAIPlugin = new Plugin({
|
|
5
|
+
id: "voidigital-lumina",
|
|
6
|
+
name: "Lumina",
|
|
7
|
+
summary: "Lumina AI ile makaleler uretin.",
|
|
8
|
+
description: "Lumina AI, yapay zeka destekli bir icerik uretim aracidir. Makaleler olusturmak icin kullanilir.",
|
|
9
|
+
version: "1.0.0",
|
|
10
|
+
category: "content",
|
|
11
|
+
badge: "Lumina",
|
|
12
|
+
provider: "voidigital",
|
|
13
|
+
iconUrl: "https://www.google.com/s2/favicons?domain=voidigital.com&sz=128",
|
|
14
|
+
docsUrl: "https://voidigital.com",
|
|
15
|
+
sidebarHref: "/admin/lumina",
|
|
16
|
+
tags: ["ai", "content", "article"],
|
|
17
|
+
scopes: ["article:write", "article:read"],
|
|
18
|
+
needEncryption: true,
|
|
19
|
+
compatibility: {
|
|
20
|
+
node: ">=18",
|
|
21
|
+
next: ">=13",
|
|
22
|
+
react: ">=18",
|
|
23
|
+
elysia: ">=1",
|
|
24
|
+
},
|
|
25
|
+
fields: [
|
|
26
|
+
{
|
|
27
|
+
key: "apiKey",
|
|
28
|
+
label: "API Anahtari",
|
|
29
|
+
description: "Lumina AI icin erisim anahtariniz.",
|
|
30
|
+
type: "secret",
|
|
31
|
+
placeholder: "voi_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
|
|
32
|
+
required: true,
|
|
33
|
+
pattern: LUMINA_API_KEY_ID,
|
|
34
|
+
encrypt: true,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
key: "email",
|
|
38
|
+
label: "Mail Adresi",
|
|
39
|
+
description: "Lumina AI tarafindan olusturulan makale icin bilgilendirme adresi.",
|
|
40
|
+
type: "email",
|
|
41
|
+
required: true,
|
|
42
|
+
placeholder: "[EMAIL_ADDRESS]",
|
|
43
|
+
pattern: LUMINA_EMAIL,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
key: "defaultLanguage",
|
|
47
|
+
label: "Varsayilan Dil",
|
|
48
|
+
type: "select",
|
|
49
|
+
defaultValue: "tr",
|
|
50
|
+
options: [
|
|
51
|
+
{ label: "Turkce", value: "tr" },
|
|
52
|
+
{ label: "English", value: "en" },
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
routes: [
|
|
57
|
+
{
|
|
58
|
+
id: "status",
|
|
59
|
+
method: "GET",
|
|
60
|
+
path: "/status",
|
|
61
|
+
summary: "Lumina baglanti durumunu dondurur.",
|
|
62
|
+
handler: async ({ installation }) => ({
|
|
63
|
+
body: {
|
|
64
|
+
ok: Boolean(installation?.enabled),
|
|
65
|
+
enabled: installation?.enabled ?? false,
|
|
66
|
+
},
|
|
67
|
+
}),
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: "create-article",
|
|
71
|
+
method: "POST",
|
|
72
|
+
path: "/articles",
|
|
73
|
+
summary: "Lumina ile makale uretim istegi olusturur.",
|
|
74
|
+
input: {
|
|
75
|
+
title: "string",
|
|
76
|
+
brief: "string",
|
|
77
|
+
},
|
|
78
|
+
handler: async ({ body, config }) => ({
|
|
79
|
+
status: 202,
|
|
80
|
+
body: {
|
|
81
|
+
queued: true,
|
|
82
|
+
email: config.email,
|
|
83
|
+
request: body,
|
|
84
|
+
},
|
|
85
|
+
}),
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "manifest-status",
|
|
89
|
+
method: "GET",
|
|
90
|
+
path: "/manifest-status",
|
|
91
|
+
summary: "Deklaratif route aksiyon ornegi.",
|
|
92
|
+
response: {
|
|
93
|
+
status: 200,
|
|
94
|
+
body: {
|
|
95
|
+
ok: true,
|
|
96
|
+
plugin: "voidigital-lumina",
|
|
97
|
+
email: "{{config.email}}",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
frontend: {
|
|
103
|
+
navigation: [
|
|
104
|
+
{
|
|
105
|
+
key: "lumina-admin",
|
|
106
|
+
label: "Lumina",
|
|
107
|
+
href: "/admin/lumina",
|
|
108
|
+
icon: "sparkles",
|
|
109
|
+
order: 20,
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
components: [
|
|
113
|
+
{
|
|
114
|
+
key: "lumina-settings-row",
|
|
115
|
+
slot: "settings-row",
|
|
116
|
+
label: "Lumina ayarlari",
|
|
117
|
+
component: {
|
|
118
|
+
type: "registry",
|
|
119
|
+
name: "LuminaSettingsRow",
|
|
120
|
+
},
|
|
121
|
+
props: {
|
|
122
|
+
compact: true,
|
|
123
|
+
},
|
|
124
|
+
order: 10,
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
key: "lumina-dashboard-card",
|
|
128
|
+
slot: "dashboard-card",
|
|
129
|
+
label: "Lumina uretim ozeti",
|
|
130
|
+
component: {
|
|
131
|
+
type: "registry",
|
|
132
|
+
name: "LuminaDashboardCard",
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
additionalMetaTags: [
|
|
138
|
+
{
|
|
139
|
+
key: "lumina-generator",
|
|
140
|
+
name: "generator",
|
|
141
|
+
content: "Lumina AI",
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
injections: [
|
|
145
|
+
{
|
|
146
|
+
key: "lumina-public-meta",
|
|
147
|
+
type: "meta",
|
|
148
|
+
placement: "head",
|
|
149
|
+
attributes: {
|
|
150
|
+
name: "lumina:enabled",
|
|
151
|
+
content: "true",
|
|
152
|
+
},
|
|
153
|
+
condition: {
|
|
154
|
+
area: "public",
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
key: "lumina-widget-style",
|
|
159
|
+
type: "style",
|
|
160
|
+
placement: "head",
|
|
161
|
+
content: ".lumina-badge{font:500 12px system-ui;padding:6px 8px;border-radius:6px;background:#111;color:#fff}",
|
|
162
|
+
condition: {
|
|
163
|
+
area: "public",
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
key: "lumina-body-badge",
|
|
168
|
+
type: "html",
|
|
169
|
+
placement: "body:end",
|
|
170
|
+
order: 20,
|
|
171
|
+
content: '<div class="lumina-badge" data-lumina-widget>Lumina active</div>',
|
|
172
|
+
condition: {
|
|
173
|
+
area: "public",
|
|
174
|
+
excludePaths: ["/admin/*"],
|
|
175
|
+
},
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
key: "lumina-admin-script",
|
|
179
|
+
type: "script",
|
|
180
|
+
placement: "admin:footer",
|
|
181
|
+
defer: true,
|
|
182
|
+
content: "window.__LUMINA_PLUGIN__={enabled:true,source:'@voilabs/plugins'};",
|
|
183
|
+
condition: {
|
|
184
|
+
area: "admin",
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
events: {
|
|
189
|
+
emits: [
|
|
190
|
+
{
|
|
191
|
+
key: "lumina.article.created",
|
|
192
|
+
description: "Lumina makale uretimini tamamladiginda yayinlanir.",
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=lumina.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lumina.js","sourceRoot":"","sources":["../../src/examples/lumina.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PluginManager } from "./manager.js";
|
|
2
|
+
import type { Awaitable } from "./types.js";
|
|
3
|
+
export interface PluginCorsOptions {
|
|
4
|
+
origin?: string | string[] | ((request: Request) => string | null | undefined);
|
|
5
|
+
methods?: string[];
|
|
6
|
+
headers?: string[];
|
|
7
|
+
credentials?: boolean;
|
|
8
|
+
maxAge?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface PluginHttpHandlerOptions {
|
|
11
|
+
prefix?: string;
|
|
12
|
+
cors?: boolean | PluginCorsOptions;
|
|
13
|
+
exposeErrors?: boolean;
|
|
14
|
+
tenantIdResolver?: (request: Request) => Awaitable<string | undefined>;
|
|
15
|
+
locals?: (request: Request) => Awaitable<Record<string, unknown>>;
|
|
16
|
+
}
|
|
17
|
+
export type PluginHttpHandler = (request: Request) => Promise<Response>;
|
|
18
|
+
export declare function createPluginHttpHandler(manager: PluginManager, options?: PluginHttpHandlerOptions): PluginHttpHandler;
|
|
19
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EAId,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,SAAS,EAQV,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnE;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAExE,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,wBAA6B,GACrC,iBAAiB,CAgBnB"}
|