@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.
Files changed (46) hide show
  1. package/README.md +634 -0
  2. package/dist/adapters/elysia.d.ts +31 -0
  3. package/dist/adapters/elysia.d.ts.map +1 -0
  4. package/dist/adapters/elysia.js +28 -0
  5. package/dist/adapters/elysia.js.map +1 -0
  6. package/dist/adapters/next.d.ts +25 -0
  7. package/dist/adapters/next.d.ts.map +1 -0
  8. package/dist/adapters/next.js +51 -0
  9. package/dist/adapters/next.js.map +1 -0
  10. package/dist/client.d.ts +33 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +123 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/examples/lumina.d.ts +9 -0
  15. package/dist/examples/lumina.d.ts.map +1 -0
  16. package/dist/examples/lumina.js +197 -0
  17. package/dist/examples/lumina.js.map +1 -0
  18. package/dist/http.d.ts +19 -0
  19. package/dist/http.d.ts.map +1 -0
  20. package/dist/http.js +523 -0
  21. package/dist/http.js.map +1 -0
  22. package/dist/index.d.ts +7 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +7 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/injection.d.ts +10 -0
  27. package/dist/injection.d.ts.map +1 -0
  28. package/dist/injection.js +174 -0
  29. package/dist/injection.js.map +1 -0
  30. package/dist/manager.d.ts +121 -0
  31. package/dist/manager.d.ts.map +1 -0
  32. package/dist/manager.js +1006 -0
  33. package/dist/manager.js.map +1 -0
  34. package/dist/plugin.d.ts +25 -0
  35. package/dist/plugin.d.ts.map +1 -0
  36. package/dist/plugin.js +209 -0
  37. package/dist/plugin.js.map +1 -0
  38. package/dist/react.d.ts +34 -0
  39. package/dist/react.d.ts.map +1 -0
  40. package/dist/react.js +88 -0
  41. package/dist/react.js.map +1 -0
  42. package/dist/types.d.ts +416 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +2 -0
  45. package/dist/types.js.map +1 -0
  46. 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"}
@@ -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"}