@better-i18n/admin 0.2.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/dist/analytics/index.d.ts +14 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +45 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/client.d.ts +15 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +35 -0
- package/dist/client.js.map +1 -0
- package/dist/content/index.d.ts +34 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +68 -0
- package/dist/content/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -0
- package/dist/keys/index.d.ts +13 -0
- package/dist/keys/index.d.ts.map +1 -0
- package/dist/keys/index.js +17 -0
- package/dist/keys/index.js.map +1 -0
- package/dist/languages/index.d.ts +12 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +14 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/projects/index.d.ts +8 -0
- package/dist/projects/index.d.ts.map +1 -0
- package/dist/projects/index.js +11 -0
- package/dist/projects/index.js.map +1 -0
- package/dist/sync/index.d.ts +12 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +14 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/translations/index.d.ts +14 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +20 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/types.d.ts +54 -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 +75 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ViewsResponse, SingleViewResponse, StatsResponse, ViewsOptions } from "../types.js";
|
|
2
|
+
import type { ProjectScope } from "../client.js";
|
|
3
|
+
export interface AnalyticsClientConfig {
|
|
4
|
+
apiKey: string;
|
|
5
|
+
contentApiUrl?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function createAnalyticsNamespace(config: AnalyticsClientConfig, scope: ProjectScope): {
|
|
8
|
+
views(modelSlug: string, entryOrOpts?: string | ViewsOptions, opts?: ViewsOptions): Promise<ViewsResponse | SingleViewResponse>;
|
|
9
|
+
stats(modelSlug: string, opts?: ViewsOptions & {
|
|
10
|
+
entrySlug?: string;
|
|
11
|
+
}): Promise<StatsResponse>;
|
|
12
|
+
};
|
|
13
|
+
export type AnalyticsNamespace = ReturnType<typeof createAnalyticsNamespace>;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,YAAY;qBA4BhE,MAAM,gBAAgB,MAAM,GAAG,YAAY,SAAS,YAAY,GAAG,OAAO,CAAC,aAAa,GAAG,kBAAkB,CAAC;qBAS9G,MAAM,SAAS,YAAY,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;EAOvG;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const DEFAULT_CONTENT_API = "https://content.better-i18n.com";
|
|
2
|
+
export function createAnalyticsNamespace(config, scope) {
|
|
3
|
+
const baseUrl = (config.contentApiUrl ?? DEFAULT_CONTENT_API).replace(/\/$/, "");
|
|
4
|
+
const { orgSlug, projectSlug } = scope;
|
|
5
|
+
async function request(path, params) {
|
|
6
|
+
const url = new URL(`${baseUrl}${path}`);
|
|
7
|
+
if (params) {
|
|
8
|
+
for (const [k, v] of Object.entries(params)) {
|
|
9
|
+
if (v)
|
|
10
|
+
url.searchParams.set(k, v);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const res = await fetch(url.toString(), {
|
|
14
|
+
headers: { "x-api-key": config.apiKey },
|
|
15
|
+
});
|
|
16
|
+
if (!res.ok) {
|
|
17
|
+
if (res.status === 401)
|
|
18
|
+
throw new Error("Invalid API key");
|
|
19
|
+
if (res.status === 403)
|
|
20
|
+
throw new Error("Public keys cannot read analytics. Use your project API key.");
|
|
21
|
+
if (res.status === 404)
|
|
22
|
+
throw new Error("Project or model not found");
|
|
23
|
+
const body = await res.text().catch(() => "");
|
|
24
|
+
throw new Error(`Analytics API error ${res.status}: ${body}`);
|
|
25
|
+
}
|
|
26
|
+
return res.json();
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
async views(modelSlug, entryOrOpts, opts) {
|
|
30
|
+
const entrySlug = typeof entryOrOpts === "string" ? entryOrOpts : undefined;
|
|
31
|
+
const options = typeof entryOrOpts === "object" ? entryOrOpts : opts;
|
|
32
|
+
const path = entrySlug
|
|
33
|
+
? `/v1/analytics/views/${orgSlug}/${projectSlug}/${modelSlug}/${entrySlug}`
|
|
34
|
+
: `/v1/analytics/views/${orgSlug}/${projectSlug}/${modelSlug}`;
|
|
35
|
+
return request(path, options?.period ? { period: options.period } : undefined);
|
|
36
|
+
},
|
|
37
|
+
async stats(modelSlug, opts) {
|
|
38
|
+
const path = opts?.entrySlug
|
|
39
|
+
? `/v1/analytics/stats/${orgSlug}/${projectSlug}/${modelSlug}/${opts.entrySlug}`
|
|
40
|
+
: `/v1/analytics/stats/${orgSlug}/${projectSlug}/${modelSlug}`;
|
|
41
|
+
return request(path, opts?.period ? { period: opts.period } : undefined);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { APIClient } from "@better-i18n/mcp-types";
|
|
2
|
+
export interface AdminClientConfig {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
projectId: string;
|
|
5
|
+
apiUrl?: string;
|
|
6
|
+
debug?: boolean;
|
|
7
|
+
fetch?: typeof fetch;
|
|
8
|
+
}
|
|
9
|
+
export interface ProjectScope {
|
|
10
|
+
orgSlug: string;
|
|
11
|
+
projectSlug: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function parseProjectId(projectId: string): ProjectScope | null;
|
|
14
|
+
export declare function createAPIClient(config: AdminClientConfig): APIClient;
|
|
15
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAarE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAoBpE"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createTRPCClient, httpBatchLink } from "@trpc/client";
|
|
2
|
+
const DEFAULT_API_URL = "https://api.better-i18n.com";
|
|
3
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
4
|
+
export function parseProjectId(projectId) {
|
|
5
|
+
if (projectId.includes("/")) {
|
|
6
|
+
const parts = projectId.split("/");
|
|
7
|
+
if (parts.length === 2 && parts[0] && parts[1]) {
|
|
8
|
+
return { orgSlug: parts[0], projectSlug: parts[1] };
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
if (UUID_RE.test(projectId)) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
throw new Error(`Invalid projectId "${projectId}". Use "org/project" slug (e.g. "nomadvibe/packervibe") or a project UUID.`);
|
|
15
|
+
}
|
|
16
|
+
export function createAPIClient(config) {
|
|
17
|
+
const baseUrl = (config.apiUrl ?? DEFAULT_API_URL).replace(/\/$/, "");
|
|
18
|
+
const url = baseUrl.endsWith("/api/trpc")
|
|
19
|
+
? baseUrl
|
|
20
|
+
: `${baseUrl}/api/trpc`;
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
const client = createTRPCClient({
|
|
23
|
+
links: [
|
|
24
|
+
httpBatchLink({
|
|
25
|
+
url,
|
|
26
|
+
headers: () => ({
|
|
27
|
+
"x-api-key": config.apiKey,
|
|
28
|
+
}),
|
|
29
|
+
fetch: config.fetch ?? fetch,
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
return client;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAgB/D,MAAM,eAAe,GAAG,6BAA6B,CAAC;AACtD,MAAM,OAAO,GAAG,iEAAiE,CAAC;AAElF,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,KAAK,CACb,sBAAsB,SAAS,4EAA4E,CAC5G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,OAAO,WAAW,CAAC;IAE1B,8DAA8D;IAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAM;QACnC,KAAK,EAAE;YACL,aAAa,CAAC;gBACZ,GAAG;gBACH,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;oBACd,WAAW,EAAE,MAAM,CAAC,MAAM;iBAC3B,CAAC;gBACF,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;aAC7B,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO,MAA8B,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { APIClient } from "@better-i18n/mcp-types";
|
|
2
|
+
import type { ListContentModelsInput, GetContentModelInput, CreateContentModelInput, UpdateContentModelInput, DeleteContentModelInput, AddFieldInput, UpdateFieldInput, RemoveFieldInput, ReorderFieldsInput, ListContentEntriesInput, GetContentEntryInput, CreateContentEntryInput, UpdateContentEntryInput, PublishContentEntryInput, DeleteContentEntryInput, DuplicateContentEntryInput, BulkCreateEntriesInput, BulkUpdateEntriesInput, BulkPublishEntriesInput } from "@better-i18n/mcp-types";
|
|
3
|
+
import type { ProjectScope } from "../client.js";
|
|
4
|
+
type WithoutScope<T> = Omit<T, "orgSlug" | "projectSlug">;
|
|
5
|
+
export declare function createContentNamespace(client: APIClient, scope: ProjectScope): {
|
|
6
|
+
models: {
|
|
7
|
+
list(input?: WithoutScope<ListContentModelsInput>): Promise<import("@better-i18n/mcp-types").CompactListContentModelsResponse>;
|
|
8
|
+
get(input: WithoutScope<GetContentModelInput>): Promise<import("@better-i18n/mcp-types").CompactGetContentModelResponse>;
|
|
9
|
+
create(input: WithoutScope<CreateContentModelInput>): Promise<import("@better-i18n/mcp-types").CompactGetContentModelResponse>;
|
|
10
|
+
update(input: WithoutScope<UpdateContentModelInput>): Promise<import("@better-i18n/mcp-types").CompactGetContentModelResponse>;
|
|
11
|
+
delete(input: WithoutScope<DeleteContentModelInput>): Promise<import("@better-i18n/mcp-types").CompactDeleteContentModelResponse>;
|
|
12
|
+
};
|
|
13
|
+
fields: {
|
|
14
|
+
add(input: WithoutScope<AddFieldInput>): Promise<import("@better-i18n/mcp-types").CompactContentModelField>;
|
|
15
|
+
update(input: WithoutScope<UpdateFieldInput>): Promise<import("@better-i18n/mcp-types").CompactContentModelField>;
|
|
16
|
+
remove(input: WithoutScope<RemoveFieldInput>): Promise<import("@better-i18n/mcp-types").CompactRemoveFieldResponse>;
|
|
17
|
+
reorder(input: WithoutScope<ReorderFieldsInput>): Promise<import("@better-i18n/mcp-types").CompactReorderFieldsResponse>;
|
|
18
|
+
};
|
|
19
|
+
entries: {
|
|
20
|
+
list(input?: WithoutScope<ListContentEntriesInput>): Promise<import("@better-i18n/mcp-types").CompactListContentEntriesResponse | import("@better-i18n/mcp-types").CompactListContentEntriesCompactResponse>;
|
|
21
|
+
get(input: WithoutScope<GetContentEntryInput>): Promise<import("@better-i18n/mcp-types").CompactContentEntryDetail | import("@better-i18n/mcp-types").CompactContentEntryDetailMin>;
|
|
22
|
+
create(input: WithoutScope<CreateContentEntryInput>): Promise<import("@better-i18n/mcp-types").CompactContentEntryDetailMin>;
|
|
23
|
+
update(input: WithoutScope<UpdateContentEntryInput>): Promise<import("@better-i18n/mcp-types").CompactContentEntryDetailMin>;
|
|
24
|
+
publish(input: WithoutScope<PublishContentEntryInput>): Promise<import("@better-i18n/mcp-types").CompactContentEntryDetailMin>;
|
|
25
|
+
delete(input: WithoutScope<DeleteContentEntryInput>): Promise<import("@better-i18n/mcp-types").CompactDeleteContentEntryResponse>;
|
|
26
|
+
duplicate(input: WithoutScope<DuplicateContentEntryInput>): Promise<import("@better-i18n/mcp-types").CompactContentEntryDetailMin>;
|
|
27
|
+
bulkCreate(input: WithoutScope<BulkCreateEntriesInput>): Promise<import("@better-i18n/mcp-types").CompactBulkCreateEntriesResponse>;
|
|
28
|
+
bulkUpdate(input: WithoutScope<BulkUpdateEntriesInput>): Promise<import("@better-i18n/mcp-types").CompactBulkUpdateEntriesResponse>;
|
|
29
|
+
bulkPublish(input: WithoutScope<BulkPublishEntriesInput>): Promise<import("@better-i18n/mcp-types").CompactBulkPublishEntriesResponse>;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export type ContentNamespace = ReturnType<typeof createContentNamespace>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,KAAK,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;AAE1D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;;qBAGpD,YAAY,CAAC,sBAAsB,CAAC;mBAGtC,YAAY,CAAC,oBAAoB,CAAC;sBAG/B,YAAY,CAAC,uBAAuB,CAAC;sBAGrC,YAAY,CAAC,uBAAuB,CAAC;sBAGrC,YAAY,CAAC,uBAAuB,CAAC;;;mBAMxC,YAAY,CAAC,aAAa,CAAC;sBAGxB,YAAY,CAAC,gBAAgB,CAAC;sBAG9B,YAAY,CAAC,gBAAgB,CAAC;uBAG7B,YAAY,CAAC,kBAAkB,CAAC;;;qBAMlC,YAAY,CAAC,uBAAuB,CAAC;mBAGvC,YAAY,CAAC,oBAAoB,CAAC;sBAG/B,YAAY,CAAC,uBAAuB,CAAC;sBAGrC,YAAY,CAAC,uBAAuB,CAAC;uBAGpC,YAAY,CAAC,wBAAwB,CAAC;sBAGvC,YAAY,CAAC,uBAAuB,CAAC;yBAGlC,YAAY,CAAC,0BAA0B,CAAC;0BAGvC,YAAY,CAAC,sBAAsB,CAAC;0BAGpC,YAAY,CAAC,sBAAsB,CAAC;2BAGnC,YAAY,CAAC,uBAAuB,CAAC;;EAKnE;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export function createContentNamespace(client, scope) {
|
|
2
|
+
return {
|
|
3
|
+
models: {
|
|
4
|
+
async list(input) {
|
|
5
|
+
return client.mcpContent.listContentModels.query({ ...scope, ...input });
|
|
6
|
+
},
|
|
7
|
+
async get(input) {
|
|
8
|
+
return client.mcpContent.getContentModel.query({ ...scope, ...input });
|
|
9
|
+
},
|
|
10
|
+
async create(input) {
|
|
11
|
+
return client.mcpContent.createContentModel.mutate({ ...scope, ...input });
|
|
12
|
+
},
|
|
13
|
+
async update(input) {
|
|
14
|
+
return client.mcpContent.updateContentModel.mutate({ ...scope, ...input });
|
|
15
|
+
},
|
|
16
|
+
async delete(input) {
|
|
17
|
+
return client.mcpContent.deleteContentModel.mutate({ ...scope, ...input });
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
fields: {
|
|
21
|
+
async add(input) {
|
|
22
|
+
return client.mcpContent.addField.mutate({ ...scope, ...input });
|
|
23
|
+
},
|
|
24
|
+
async update(input) {
|
|
25
|
+
return client.mcpContent.updateField.mutate({ ...scope, ...input });
|
|
26
|
+
},
|
|
27
|
+
async remove(input) {
|
|
28
|
+
return client.mcpContent.removeField.mutate({ ...scope, ...input });
|
|
29
|
+
},
|
|
30
|
+
async reorder(input) {
|
|
31
|
+
return client.mcpContent.reorderFields.mutate({ ...scope, ...input });
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
entries: {
|
|
35
|
+
async list(input) {
|
|
36
|
+
return client.mcpContent.listContentEntries.query({ ...scope, ...input });
|
|
37
|
+
},
|
|
38
|
+
async get(input) {
|
|
39
|
+
return client.mcpContent.getContentEntry.query({ ...scope, ...input });
|
|
40
|
+
},
|
|
41
|
+
async create(input) {
|
|
42
|
+
return client.mcpContent.createContentEntry.mutate({ ...scope, ...input });
|
|
43
|
+
},
|
|
44
|
+
async update(input) {
|
|
45
|
+
return client.mcpContent.updateContentEntry.mutate({ ...scope, ...input });
|
|
46
|
+
},
|
|
47
|
+
async publish(input) {
|
|
48
|
+
return client.mcpContent.publishContentEntry.mutate({ ...scope, ...input });
|
|
49
|
+
},
|
|
50
|
+
async delete(input) {
|
|
51
|
+
return client.mcpContent.deleteContentEntry.mutate({ ...scope, ...input });
|
|
52
|
+
},
|
|
53
|
+
async duplicate(input) {
|
|
54
|
+
return client.mcpContent.duplicateContentEntry.mutate({ ...scope, ...input });
|
|
55
|
+
},
|
|
56
|
+
async bulkCreate(input) {
|
|
57
|
+
return client.mcpContent.bulkCreateEntries.mutate({ ...scope, ...input });
|
|
58
|
+
},
|
|
59
|
+
async bulkUpdate(input) {
|
|
60
|
+
return client.mcpContent.bulkUpdateEntries.mutate({ ...scope, ...input });
|
|
61
|
+
},
|
|
62
|
+
async bulkPublish(input) {
|
|
63
|
+
return client.mcpContent.bulkPublishEntries.mutate({ ...scope, ...input });
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type AdminClientConfig } from "./client.js";
|
|
2
|
+
import { createProjectsNamespace } from "./projects/index.js";
|
|
3
|
+
import { createKeysNamespace } from "./keys/index.js";
|
|
4
|
+
import { createTranslationsNamespace } from "./translations/index.js";
|
|
5
|
+
import { createSyncNamespace } from "./sync/index.js";
|
|
6
|
+
import { createLanguagesNamespace } from "./languages/index.js";
|
|
7
|
+
import { createContentNamespace } from "./content/index.js";
|
|
8
|
+
import { createAnalyticsNamespace } from "./analytics/index.js";
|
|
9
|
+
export interface BetterAdminClient {
|
|
10
|
+
projects: ReturnType<typeof createProjectsNamespace>;
|
|
11
|
+
keys: ReturnType<typeof createKeysNamespace>;
|
|
12
|
+
translations: ReturnType<typeof createTranslationsNamespace>;
|
|
13
|
+
sync: ReturnType<typeof createSyncNamespace>;
|
|
14
|
+
languages: ReturnType<typeof createLanguagesNamespace>;
|
|
15
|
+
content: ReturnType<typeof createContentNamespace>;
|
|
16
|
+
analytics: ReturnType<typeof createAnalyticsNamespace>;
|
|
17
|
+
}
|
|
18
|
+
export declare function createAdminClient(config: AdminClientConfig): BetterAdminClient;
|
|
19
|
+
export { type AdminClientConfig, type ProjectScope } from "./client.js";
|
|
20
|
+
export * from "./types.js";
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACrD,IAAI,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC7C,YAAY,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;IAC7D,IAAI,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC7C,SAAS,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;IACvD,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACnD,SAAS,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;CACxD;AAqBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAoB9E;AAgDD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,cAAc,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { createAPIClient, parseProjectId } from "./client.js";
|
|
2
|
+
import { createProjectsNamespace } from "./projects/index.js";
|
|
3
|
+
import { createKeysNamespace } from "./keys/index.js";
|
|
4
|
+
import { createTranslationsNamespace } from "./translations/index.js";
|
|
5
|
+
import { createSyncNamespace } from "./sync/index.js";
|
|
6
|
+
import { createLanguagesNamespace } from "./languages/index.js";
|
|
7
|
+
import { createContentNamespace } from "./content/index.js";
|
|
8
|
+
import { createAnalyticsNamespace } from "./analytics/index.js";
|
|
9
|
+
async function resolveScope(trpcClient, projectId) {
|
|
10
|
+
const parsed = parseProjectId(projectId);
|
|
11
|
+
if (parsed)
|
|
12
|
+
return parsed;
|
|
13
|
+
const result = await trpcClient.mcp.listProjects.query();
|
|
14
|
+
const match = result
|
|
15
|
+
.projects.find((p) => p.id === projectId);
|
|
16
|
+
if (!match) {
|
|
17
|
+
throw new Error(`Project with UUID "${projectId}" not found. Check your projectId.`);
|
|
18
|
+
}
|
|
19
|
+
const parts = match.slug.split("/");
|
|
20
|
+
return { orgSlug: parts[0], projectSlug: parts[1] };
|
|
21
|
+
}
|
|
22
|
+
export function createAdminClient(config) {
|
|
23
|
+
const trpcClient = createAPIClient(config);
|
|
24
|
+
const parsed = parseProjectId(config.projectId);
|
|
25
|
+
if (parsed) {
|
|
26
|
+
return buildClient(trpcClient, parsed, config);
|
|
27
|
+
}
|
|
28
|
+
let resolvedScope = null;
|
|
29
|
+
const scopePromise = resolveScope(trpcClient, config.projectId).then((s) => {
|
|
30
|
+
resolvedScope = s;
|
|
31
|
+
return s;
|
|
32
|
+
});
|
|
33
|
+
async function getScope() {
|
|
34
|
+
if (resolvedScope)
|
|
35
|
+
return resolvedScope;
|
|
36
|
+
return scopePromise;
|
|
37
|
+
}
|
|
38
|
+
return buildLazyClient(trpcClient, getScope, config);
|
|
39
|
+
}
|
|
40
|
+
function buildClient(trpcClient, scope, config) {
|
|
41
|
+
return {
|
|
42
|
+
projects: createProjectsNamespace(trpcClient, scope),
|
|
43
|
+
keys: createKeysNamespace(trpcClient, scope),
|
|
44
|
+
translations: createTranslationsNamespace(trpcClient, scope),
|
|
45
|
+
sync: createSyncNamespace(trpcClient, scope),
|
|
46
|
+
languages: createLanguagesNamespace(trpcClient, scope),
|
|
47
|
+
content: createContentNamespace(trpcClient, scope),
|
|
48
|
+
analytics: createAnalyticsNamespace({ apiKey: config.apiKey }, scope),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function buildLazyClient(trpcClient, getScope, config) {
|
|
52
|
+
function lazy(factory) {
|
|
53
|
+
return new Proxy({}, {
|
|
54
|
+
get(_, prop) {
|
|
55
|
+
return async (...args) => {
|
|
56
|
+
const scope = await getScope();
|
|
57
|
+
const real = factory(scope);
|
|
58
|
+
const fn = real[prop];
|
|
59
|
+
if (typeof fn === "function")
|
|
60
|
+
return fn(...args);
|
|
61
|
+
return fn;
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
projects: lazy((s) => createProjectsNamespace(trpcClient, s)),
|
|
68
|
+
keys: lazy((s) => createKeysNamespace(trpcClient, s)),
|
|
69
|
+
translations: lazy((s) => createTranslationsNamespace(trpcClient, s)),
|
|
70
|
+
sync: lazy((s) => createSyncNamespace(trpcClient, s)),
|
|
71
|
+
languages: lazy((s) => createLanguagesNamespace(trpcClient, s)),
|
|
72
|
+
content: lazy((s) => createContentNamespace(trpcClient, s)),
|
|
73
|
+
analytics: lazy((s) => createAnalyticsNamespace({ apiKey: config.apiKey }, s)),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export * from "./types.js";
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { APIClient } from "@better-i18n/mcp-types";
|
|
2
|
+
import type { ListKeysInput, CreateKeysInput, UpdateKeysInput, DeleteKeysInput } from "@better-i18n/mcp-types";
|
|
3
|
+
import type { ProjectScope } from "../client.js";
|
|
4
|
+
type WithoutScope<T> = Omit<T, "orgSlug" | "projectSlug">;
|
|
5
|
+
export declare function createKeysNamespace(client: APIClient, scope: ProjectScope): {
|
|
6
|
+
list(input?: WithoutScope<ListKeysInput>): Promise<import("@better-i18n/mcp-types").CompactListKeysResponse>;
|
|
7
|
+
create(input: WithoutScope<CreateKeysInput>): Promise<import("@better-i18n/mcp-types").CompactCreateKeysResponse>;
|
|
8
|
+
update(input: WithoutScope<UpdateKeysInput>): Promise<import("@better-i18n/mcp-types").CompactUpdateKeysResponse>;
|
|
9
|
+
delete(input: WithoutScope<DeleteKeysInput>): Promise<import("@better-i18n/mcp-types").CompactDeleteKeysResponse>;
|
|
10
|
+
};
|
|
11
|
+
export type KeysNamespace = ReturnType<typeof createKeysNamespace>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,KAAK,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;iBAEnD,YAAY,CAAC,aAAa,CAAC;kBAI1B,YAAY,CAAC,eAAe,CAAC;kBAI7B,YAAY,CAAC,eAAe,CAAC;kBAI7B,YAAY,CAAC,eAAe,CAAC;EAIpD;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function createKeysNamespace(client, scope) {
|
|
2
|
+
return {
|
|
3
|
+
async list(input) {
|
|
4
|
+
return client.mcp.listKeys.query({ ...scope, ...input });
|
|
5
|
+
},
|
|
6
|
+
async create(input) {
|
|
7
|
+
return client.mcp.createKeys.mutate({ ...scope, ...input });
|
|
8
|
+
},
|
|
9
|
+
async update(input) {
|
|
10
|
+
return client.mcp.updateKeys.mutate({ ...scope, ...input });
|
|
11
|
+
},
|
|
12
|
+
async delete(input) {
|
|
13
|
+
return client.mcp.deleteKeys.mutate({ ...scope, ...input });
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/keys/index.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,KAAmB;IACxE,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,KAAmC;YAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAoC;YAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAoC;YAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAoC;YAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { APIClient } from "@better-i18n/mcp-types";
|
|
2
|
+
import type { AddLanguagesInput, UpdateLanguagesInput, DeleteLanguagesInput } from "@better-i18n/mcp-types";
|
|
3
|
+
import type { ProjectScope } from "../client.js";
|
|
4
|
+
type WithoutScope<T> = Omit<T, "orgSlug" | "projectSlug">;
|
|
5
|
+
export declare function createLanguagesNamespace(client: APIClient, scope: ProjectScope): {
|
|
6
|
+
add(input: WithoutScope<AddLanguagesInput>): Promise<import("@better-i18n/mcp-types").AddLanguagesResponse>;
|
|
7
|
+
update(input: WithoutScope<UpdateLanguagesInput>): Promise<import("@better-i18n/mcp-types").UpdateLanguagesResponse>;
|
|
8
|
+
delete(input: WithoutScope<DeleteLanguagesInput>): Promise<import("@better-i18n/mcp-types").DeleteLanguagesResponse>;
|
|
9
|
+
};
|
|
10
|
+
export type LanguagesNamespace = ReturnType<typeof createLanguagesNamespace>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/languages/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,KAAK,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;AAE1D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;eAE1D,YAAY,CAAC,iBAAiB,CAAC;kBAI5B,YAAY,CAAC,oBAAoB,CAAC;kBAIlC,YAAY,CAAC,oBAAoB,CAAC;EAIzD;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function createLanguagesNamespace(client, scope) {
|
|
2
|
+
return {
|
|
3
|
+
async add(input) {
|
|
4
|
+
return client.mcp.addLanguages.mutate({ ...scope, ...input });
|
|
5
|
+
},
|
|
6
|
+
async update(input) {
|
|
7
|
+
return client.mcp.updateLanguages.mutate({ ...scope, ...input });
|
|
8
|
+
},
|
|
9
|
+
async delete(input) {
|
|
10
|
+
return client.mcp.deleteLanguages.mutate({ ...scope, ...input });
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/languages/index.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,KAAmB;IAC7E,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,KAAsC;YAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAyC;YACpD,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAyC;YACpD,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { APIClient } from "@better-i18n/mcp-types";
|
|
2
|
+
import type { ProjectScope } from "../client.js";
|
|
3
|
+
export declare function createProjectsNamespace(client: APIClient, scope: ProjectScope): {
|
|
4
|
+
get(): Promise<import("@better-i18n/mcp-types").CompactGetProjectResponse>;
|
|
5
|
+
list(): Promise<import("@better-i18n/mcp-types").ListProjectsResponse>;
|
|
6
|
+
};
|
|
7
|
+
export type ProjectsNamespace = ReturnType<typeof createProjectsNamespace>;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/projects/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;;;EAU7E;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/projects/index.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,KAAmB;IAC5E,OAAO;QACL,KAAK,CAAC,GAAG;YACP,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,IAAI;YACR,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { APIClient } from "@better-i18n/mcp-types";
|
|
2
|
+
import type { GetSyncsInput, GetSyncInput, CancelSyncInput } from "@better-i18n/mcp-types";
|
|
3
|
+
import type { ProjectScope } from "../client.js";
|
|
4
|
+
type WithoutScope<T> = Omit<T, "orgSlug" | "projectSlug">;
|
|
5
|
+
export declare function createSyncNamespace(client: APIClient, scope: ProjectScope): {
|
|
6
|
+
list(input?: WithoutScope<GetSyncsInput>): Promise<import("@better-i18n/mcp-types").CompactGetSyncsResponse>;
|
|
7
|
+
get(input: WithoutScope<GetSyncInput>): Promise<import("@better-i18n/mcp-types").CompactGetSyncResponse>;
|
|
8
|
+
cancel(input: WithoutScope<CancelSyncInput>): Promise<import("@better-i18n/mcp-types").CompactCancelSyncResponse>;
|
|
9
|
+
};
|
|
10
|
+
export type SyncNamespace = ReturnType<typeof createSyncNamespace>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,KAAK,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;iBAEnD,YAAY,CAAC,aAAa,CAAC;eAI7B,YAAY,CAAC,YAAY,CAAC;kBAIvB,YAAY,CAAC,eAAe,CAAC;EAIpD;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function createSyncNamespace(client, scope) {
|
|
2
|
+
return {
|
|
3
|
+
async list(input) {
|
|
4
|
+
return client.mcp.getSyncs.query({ ...scope, ...input });
|
|
5
|
+
},
|
|
6
|
+
async get(input) {
|
|
7
|
+
return client.mcp.getSync.query({ ...scope, ...input });
|
|
8
|
+
},
|
|
9
|
+
async cancel(input) {
|
|
10
|
+
return client.mcp.cancelSync.mutate({ ...scope, ...input });
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,KAAmB;IACxE,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,KAAmC;YAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,KAAiC;YACzC,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAoC;YAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { APIClient } from "@better-i18n/mcp-types";
|
|
2
|
+
import type { GetTranslationsInput, SetTranslationsInput, PublishInput, GetTranslationContextInput } from "@better-i18n/mcp-types";
|
|
3
|
+
import type { ProjectScope } from "../client.js";
|
|
4
|
+
type WithoutScope<T> = Omit<T, "orgSlug" | "projectSlug">;
|
|
5
|
+
export declare function createTranslationsNamespace(client: APIClient, scope: ProjectScope): {
|
|
6
|
+
get(input?: WithoutScope<GetTranslationsInput>): Promise<import("@better-i18n/mcp-types").GetTranslationsResponse | import("@better-i18n/mcp-types").CompactGetTranslationsCompactResponse>;
|
|
7
|
+
set(input: WithoutScope<SetTranslationsInput>): Promise<import("@better-i18n/mcp-types").CompactSetTranslationsResponse>;
|
|
8
|
+
publish(input?: WithoutScope<PublishInput>): Promise<import("@better-i18n/mcp-types").PublishResponse>;
|
|
9
|
+
context(input?: WithoutScope<GetTranslationContextInput>): Promise<import("@better-i18n/mcp-types").CompactGetTranslationContextResponse>;
|
|
10
|
+
pendingChanges(): Promise<import("@better-i18n/mcp-types").CompactGetPendingChangesResponse>;
|
|
11
|
+
};
|
|
12
|
+
export type TranslationsNamespace = ReturnType<typeof createTranslationsNamespace>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,0BAA0B,EAE3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,KAAK,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;AAE1D,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;gBAE5D,YAAY,CAAC,oBAAoB,CAAC;eAInC,YAAY,CAAC,oBAAoB,CAAC;oBAI7B,YAAY,CAAC,YAAY,CAAC;oBAI1B,YAAY,CAAC,0BAA0B,CAAC;;EAQjE;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function createTranslationsNamespace(client, scope) {
|
|
2
|
+
return {
|
|
3
|
+
async get(input) {
|
|
4
|
+
return client.mcp.getAllTranslations.query({ ...scope, ...input });
|
|
5
|
+
},
|
|
6
|
+
async set(input) {
|
|
7
|
+
return client.mcp.setTranslations.mutate({ ...scope, ...input });
|
|
8
|
+
},
|
|
9
|
+
async publish(input) {
|
|
10
|
+
return client.mcp.publishTranslations.mutate({ ...scope, ...input });
|
|
11
|
+
},
|
|
12
|
+
async context(input) {
|
|
13
|
+
return client.mcp.getTranslationContext.query({ ...scope, ...input });
|
|
14
|
+
},
|
|
15
|
+
async pendingChanges() {
|
|
16
|
+
return client.mcp.getPendingChanges.query(scope);
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,KAAmB;IAChF,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,KAA0C;YAClD,OAAO,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,KAAyC;YACjD,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAkC;YAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAgD;YAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,KAAK,CAAC,cAAc;YAClB,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export type { AdminClientConfig } from "./client.js";
|
|
2
|
+
export type Period = "24h" | "7d" | "30d" | "90d";
|
|
3
|
+
export interface ViewsResponse {
|
|
4
|
+
views: Record<string, number>;
|
|
5
|
+
period: string;
|
|
6
|
+
cachedAt: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SingleViewResponse {
|
|
9
|
+
views: number;
|
|
10
|
+
period: string;
|
|
11
|
+
cachedAt: string;
|
|
12
|
+
}
|
|
13
|
+
export interface StatsResponse {
|
|
14
|
+
overview: {
|
|
15
|
+
totalViews: number;
|
|
16
|
+
uniqueEntries: number;
|
|
17
|
+
};
|
|
18
|
+
viewsByEntry: Array<{
|
|
19
|
+
slug: string;
|
|
20
|
+
views: number;
|
|
21
|
+
}>;
|
|
22
|
+
viewsByLanguage: Array<{
|
|
23
|
+
language: string;
|
|
24
|
+
views: number;
|
|
25
|
+
}>;
|
|
26
|
+
viewsByCountry: Array<{
|
|
27
|
+
country: string;
|
|
28
|
+
views: number;
|
|
29
|
+
}>;
|
|
30
|
+
viewsOverTime: Array<{
|
|
31
|
+
timestamp: string;
|
|
32
|
+
views: number;
|
|
33
|
+
}>;
|
|
34
|
+
period: string;
|
|
35
|
+
cachedAt: string;
|
|
36
|
+
}
|
|
37
|
+
export interface ViewsOptions {
|
|
38
|
+
period?: Period;
|
|
39
|
+
}
|
|
40
|
+
export interface EventsQueryOptions {
|
|
41
|
+
period?: Period;
|
|
42
|
+
event?: string;
|
|
43
|
+
entrySlug?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface EventsResponse {
|
|
46
|
+
events: Array<{
|
|
47
|
+
event: string;
|
|
48
|
+
count: number;
|
|
49
|
+
slug?: string;
|
|
50
|
+
}>;
|
|
51
|
+
period: string;
|
|
52
|
+
total: number;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,eAAe,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,cAAc,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,aAAa,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@better-i18n/admin",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Server-side admin SDK for Better i18n — manage projects, keys, translations, content, and analytics programmatically",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./projects": {
|
|
14
|
+
"types": "./dist/projects/index.d.ts",
|
|
15
|
+
"default": "./dist/projects/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./keys": {
|
|
18
|
+
"types": "./dist/keys/index.d.ts",
|
|
19
|
+
"default": "./dist/keys/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./translations": {
|
|
22
|
+
"types": "./dist/translations/index.d.ts",
|
|
23
|
+
"default": "./dist/translations/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./content": {
|
|
26
|
+
"types": "./dist/content/index.d.ts",
|
|
27
|
+
"default": "./dist/content/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./analytics": {
|
|
30
|
+
"types": "./dist/analytics/index.d.ts",
|
|
31
|
+
"default": "./dist/analytics/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./sync": {
|
|
34
|
+
"types": "./dist/sync/index.d.ts",
|
|
35
|
+
"default": "./dist/sync/index.js"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"dist",
|
|
40
|
+
"README.md"
|
|
41
|
+
],
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"dev": "tsc --watch",
|
|
45
|
+
"typecheck": "tsc --noEmit",
|
|
46
|
+
"clean": "rm -rf dist"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@trpc/client": "^11.0.0"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@better-i18n/mcp-types": "0.0.2",
|
|
53
|
+
"typescript": "^5.7.0"
|
|
54
|
+
},
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@better-i18n/mcp-types": "0.0.2"
|
|
57
|
+
},
|
|
58
|
+
"keywords": [
|
|
59
|
+
"better-i18n",
|
|
60
|
+
"admin",
|
|
61
|
+
"sdk",
|
|
62
|
+
"i18n",
|
|
63
|
+
"cms",
|
|
64
|
+
"analytics"
|
|
65
|
+
],
|
|
66
|
+
"license": "MIT",
|
|
67
|
+
"repository": {
|
|
68
|
+
"type": "git",
|
|
69
|
+
"url": "https://github.com/better-i18n/oss",
|
|
70
|
+
"directory": "packages/admin"
|
|
71
|
+
},
|
|
72
|
+
"engines": {
|
|
73
|
+
"node": ">=18.0.0"
|
|
74
|
+
}
|
|
75
|
+
}
|