blodemd 0.0.11 → 0.0.13
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 +11 -47
- package/dev-server/app/layout.tsx +1 -1
- package/dev-server/next.config.js +19 -9
- package/dev-server/tsconfig.json +0 -3
- package/dist/cli.mjs +732 -123
- package/dist/cli.mjs.map +1 -1
- package/docs/app/globals.css +15 -1
- package/docs/components/api/api-playground.tsx +2 -2
- package/docs/components/docs/copy-page-menu.tsx +55 -27
- package/docs/components/docs/doc-header.tsx +1 -1
- package/docs/components/docs/doc-shell.tsx +89 -88
- package/docs/components/docs/doc-sidebar.tsx +6 -3
- package/docs/components/docs/doc-toc.tsx +1 -1
- package/docs/components/docs/mobile-nav.tsx +8 -16
- package/docs/components/docs/sidebar-scroll-area.tsx +58 -0
- package/docs/components/git/repo-picker.tsx +526 -0
- package/docs/components/mdx/agent-instructions.tsx +17 -0
- package/docs/components/mdx/code-block.tsx +6 -1
- package/docs/components/mdx/code-group.tsx +1 -1
- package/docs/components/mdx/iframe.tsx +62 -0
- package/docs/components/mdx/index.tsx +4 -0
- package/docs/components/mdx/tabs.tsx +5 -5
- package/docs/components/mdx/video.tsx +45 -12
- package/docs/components/third-parties.tsx +29 -0
- package/docs/components/ui/badge.tsx +61 -0
- package/docs/components/ui/breadcrumb.tsx +61 -41
- package/docs/components/ui/button-group.tsx +83 -0
- package/docs/components/ui/button.tsx +30 -55
- package/docs/components/ui/command.tsx +32 -4
- package/docs/components/ui/copy-button.tsx +12 -19
- package/docs/components/ui/dialog.tsx +50 -1
- package/docs/components/ui/input.tsx +16 -97
- package/docs/components/ui/kbd.tsx +98 -0
- package/docs/components/ui/morph-icon.tsx +79 -0
- package/docs/components/ui/popover.tsx +225 -30
- package/docs/components/ui/search.tsx +0 -9
- package/docs/components/ui/sheet.tsx +30 -1
- package/docs/components/ui/sidebar.tsx +332 -7
- package/docs/components/ui/site-footer.tsx +6 -4
- package/docs/components/ui/skeleton.tsx +11 -0
- package/docs/components/ui/switch.tsx +32 -0
- package/docs/components/ui/tabs.tsx +138 -0
- package/docs/lib/api-client.ts +72 -0
- package/docs/lib/contextual-options.ts +9 -0
- package/docs/lib/dashboard-session.ts +167 -0
- package/docs/lib/db.ts +13 -0
- package/docs/lib/env.ts +4 -3
- package/docs/lib/etag.ts +22 -0
- package/docs/lib/github-install.ts +33 -0
- package/docs/lib/project-authz.ts +46 -0
- package/docs/lib/routes.ts +5 -1
- package/docs/lib/supabase.ts +30 -6
- package/docs/lib/tenancy.ts +1 -0
- package/docs/lib/tenant-static.ts +206 -4
- package/docs/lib/tenants.ts +5 -1
- package/docs/lib/time-ago.ts +24 -0
- package/docs/lib/use-tab-observer.ts +71 -0
- package/package.json +3 -1
- package/packages/@repo/common/package.json +2 -2
- package/packages/@repo/contracts/dist/git.d.ts +28 -0
- package/packages/@repo/contracts/dist/git.d.ts.map +1 -0
- package/packages/@repo/contracts/dist/git.js +24 -0
- package/packages/@repo/contracts/dist/index.d.ts +1 -1
- package/packages/@repo/contracts/dist/index.d.ts.map +1 -1
- package/packages/@repo/contracts/dist/index.js +1 -1
- package/packages/@repo/contracts/package.json +2 -2
- package/packages/@repo/contracts/src/git.ts +31 -0
- package/packages/@repo/contracts/src/index.ts +1 -1
- package/packages/@repo/models/dist/docs-config.d.ts +6 -0
- package/packages/@repo/models/dist/docs-config.d.ts.map +1 -1
- package/packages/@repo/models/dist/docs-config.js +1 -0
- package/packages/@repo/models/package.json +2 -2
- package/packages/@repo/models/src/docs-config.ts +1 -0
- package/packages/@repo/prebuild/package.json +2 -2
- package/packages/@repo/previewing/dist/index.d.ts +3 -0
- package/packages/@repo/previewing/dist/index.d.ts.map +1 -1
- package/packages/@repo/previewing/dist/index.js +48 -0
- package/packages/@repo/previewing/package.json +2 -2
- package/packages/@repo/previewing/src/index.ts +56 -0
- package/packages/@repo/validation/package.json +2 -2
- package/packages/@repo/validation/src/blodemd-docs-schema.json +1 -0
- package/scripts/prepare-package.mjs +14 -0
- package/packages/@repo/contracts/dist/api-key.d.ts +0 -30
- package/packages/@repo/contracts/dist/api-key.d.ts.map +0 -1
- package/packages/@repo/contracts/dist/api-key.js +0 -20
- package/packages/@repo/contracts/src/api-key.ts +0 -27
|
@@ -12,6 +12,8 @@ export declare const PREBUILT_UTILITY_INDEX_PATH = "_utility-index.json";
|
|
|
12
12
|
export declare const PREBUILT_UTILITY_SITEMAP_PATH = "_utility/sitemap.xml";
|
|
13
13
|
export declare const PREBUILT_UTILITY_LLMS_PATH = "_utility/llms.txt";
|
|
14
14
|
export declare const PREBUILT_UTILITY_LLMS_FULL_PATH = "_utility/llms-full.txt";
|
|
15
|
+
export declare const PREBUILT_UTILITY_SKILLS_INDEX_PATH = "_utility/skills-index.json";
|
|
16
|
+
export declare const PREBUILT_UTILITY_SKILLS_MD_PREFIX = "_utility/skills/";
|
|
15
17
|
export declare const UTILITY_DOCS_ROOT_TOKEN = "__BLODEMD_DOCS_ROOT__";
|
|
16
18
|
export declare const LEGACY_PROJECT_NAME_FALLBACK_WARNING = "docs.json.slug is recommended. Falling back to docs.json.name as the deployment slug is deprecated.";
|
|
17
19
|
export type SiteConfigResult = {
|
|
@@ -82,6 +84,7 @@ export interface UtilityIndex {
|
|
|
82
84
|
description?: string;
|
|
83
85
|
name: string;
|
|
84
86
|
pages: UtilityPage[];
|
|
87
|
+
slug?: string;
|
|
85
88
|
}
|
|
86
89
|
export interface UtilityArtifact {
|
|
87
90
|
content: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ export const PREBUILT_UTILITY_INDEX_PATH = "_utility-index.json";
|
|
|
14
14
|
export const PREBUILT_UTILITY_SITEMAP_PATH = "_utility/sitemap.xml";
|
|
15
15
|
export const PREBUILT_UTILITY_LLMS_PATH = "_utility/llms.txt";
|
|
16
16
|
export const PREBUILT_UTILITY_LLMS_FULL_PATH = "_utility/llms-full.txt";
|
|
17
|
+
export const PREBUILT_UTILITY_SKILLS_INDEX_PATH = "_utility/skills-index.json";
|
|
18
|
+
export const PREBUILT_UTILITY_SKILLS_MD_PREFIX = "_utility/skills/";
|
|
17
19
|
export const UTILITY_DOCS_ROOT_TOKEN = "__BLODEMD_DOCS_ROOT__";
|
|
18
20
|
export const LEGACY_PROJECT_NAME_FALLBACK_WARNING = "docs.json.slug is recommended. Falling back to docs.json.name as the deployment slug is deprecated.";
|
|
19
21
|
const validModes = new Set(PageModeSchema.options);
|
|
@@ -780,6 +782,7 @@ export const buildUtilityIndex = async (index, source, config) => {
|
|
|
780
782
|
description: config.description,
|
|
781
783
|
name: config.name,
|
|
782
784
|
pages: sortedPages,
|
|
785
|
+
slug: config.slug,
|
|
783
786
|
};
|
|
784
787
|
};
|
|
785
788
|
const toUtilityDocPath = (value) => {
|
|
@@ -800,6 +803,7 @@ export const buildUtilityArtifacts = (index) => {
|
|
|
800
803
|
index.description ? `> ${index.description}` : null,
|
|
801
804
|
"",
|
|
802
805
|
`Sitemap: ${toUtilityTemplatedDocUrl("sitemap.xml")}`,
|
|
806
|
+
`Skills: ${UTILITY_DOCS_ROOT_TOKEN}/.well-known/skills/index.json`,
|
|
803
807
|
"",
|
|
804
808
|
"## Docs",
|
|
805
809
|
...index.pages.map((page) => {
|
|
@@ -816,6 +820,40 @@ ${index.pages
|
|
|
816
820
|
const llmsFull = index.pages
|
|
817
821
|
.map((page) => formatMarkdownPageSection(page.title, toUtilityTemplatedDocUrl(page.slug), page.content))
|
|
818
822
|
.join("\n\n");
|
|
823
|
+
const skillSlug = index.slug ?? slugify(index.name);
|
|
824
|
+
const skillDescription = `${index.name} documentation. ${index.description ?? ""}`.trim();
|
|
825
|
+
const skillsIndex = JSON.stringify({
|
|
826
|
+
skills: [
|
|
827
|
+
{
|
|
828
|
+
description: skillDescription,
|
|
829
|
+
files: ["SKILL.md"],
|
|
830
|
+
name: skillSlug,
|
|
831
|
+
},
|
|
832
|
+
],
|
|
833
|
+
}, null, 2);
|
|
834
|
+
const topPages = index.pages.slice(0, 20);
|
|
835
|
+
const skillMdLines = [
|
|
836
|
+
"---",
|
|
837
|
+
`name: ${skillSlug}`,
|
|
838
|
+
`description: ${skillDescription} Use when working with ${index.name}, answering questions about its features, or helping users follow its guides.`,
|
|
839
|
+
"---",
|
|
840
|
+
"",
|
|
841
|
+
`# ${index.name}`,
|
|
842
|
+
"",
|
|
843
|
+
index.description ? `${index.description}\n` : "",
|
|
844
|
+
"## Documentation",
|
|
845
|
+
"",
|
|
846
|
+
`- Full docs index: ${UTILITY_DOCS_ROOT_TOKEN}/llms.txt`,
|
|
847
|
+
`- Complete docs content: ${UTILITY_DOCS_ROOT_TOKEN}/llms-full.txt`,
|
|
848
|
+
"- Append `.md` to any page URL for raw markdown",
|
|
849
|
+
"",
|
|
850
|
+
"## Key Pages",
|
|
851
|
+
"",
|
|
852
|
+
...topPages.map((page) => {
|
|
853
|
+
const desc = page.description ? ` - ${page.description}` : "";
|
|
854
|
+
return `- [${page.title}](${toUtilityTemplatedDocUrl(page.slug)})${desc}`;
|
|
855
|
+
}),
|
|
856
|
+
];
|
|
819
857
|
return [
|
|
820
858
|
{
|
|
821
859
|
content: sitemap,
|
|
@@ -832,6 +870,16 @@ ${index.pages
|
|
|
832
870
|
contentType: "text/plain; charset=utf-8",
|
|
833
871
|
path: PREBUILT_UTILITY_LLMS_FULL_PATH,
|
|
834
872
|
},
|
|
873
|
+
{
|
|
874
|
+
content: skillsIndex,
|
|
875
|
+
contentType: "application/json; charset=utf-8",
|
|
876
|
+
path: PREBUILT_UTILITY_SKILLS_INDEX_PATH,
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
content: skillMdLines.filter((line) => line !== null).join("\n"),
|
|
880
|
+
contentType: "text/markdown; charset=utf-8",
|
|
881
|
+
path: `${PREBUILT_UTILITY_SKILLS_MD_PREFIX}${skillSlug}/SKILL.md`,
|
|
882
|
+
},
|
|
835
883
|
...index.pages.map((page) => ({
|
|
836
884
|
content: formatMarkdownPage(page.title, page.content),
|
|
837
885
|
contentType: "text/markdown; charset=utf-8",
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
|
-
"types": "./
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
9
|
"import": "./dist/index.js",
|
|
10
10
|
"default": "./dist/index.js"
|
|
11
11
|
},
|
|
12
12
|
"./*": {
|
|
13
|
-
"types": "./
|
|
13
|
+
"types": "./dist/*.d.ts",
|
|
14
14
|
"import": "./dist/*.js",
|
|
15
15
|
"default": "./dist/*.js"
|
|
16
16
|
}
|
|
@@ -39,6 +39,8 @@ export const PREBUILT_UTILITY_INDEX_PATH = "_utility-index.json";
|
|
|
39
39
|
export const PREBUILT_UTILITY_SITEMAP_PATH = "_utility/sitemap.xml";
|
|
40
40
|
export const PREBUILT_UTILITY_LLMS_PATH = "_utility/llms.txt";
|
|
41
41
|
export const PREBUILT_UTILITY_LLMS_FULL_PATH = "_utility/llms-full.txt";
|
|
42
|
+
export const PREBUILT_UTILITY_SKILLS_INDEX_PATH = "_utility/skills-index.json";
|
|
43
|
+
export const PREBUILT_UTILITY_SKILLS_MD_PREFIX = "_utility/skills/";
|
|
42
44
|
export const UTILITY_DOCS_ROOT_TOKEN = "__BLODEMD_DOCS_ROOT__";
|
|
43
45
|
export const LEGACY_PROJECT_NAME_FALLBACK_WARNING =
|
|
44
46
|
"docs.json.slug is recommended. Falling back to docs.json.name as the deployment slug is deprecated.";
|
|
@@ -115,6 +117,7 @@ export interface UtilityIndex {
|
|
|
115
117
|
description?: string;
|
|
116
118
|
name: string;
|
|
117
119
|
pages: UtilityPage[];
|
|
120
|
+
slug?: string;
|
|
118
121
|
}
|
|
119
122
|
|
|
120
123
|
export interface UtilityArtifact {
|
|
@@ -1223,6 +1226,7 @@ export const buildUtilityIndex = async (
|
|
|
1223
1226
|
description: config.description,
|
|
1224
1227
|
name: config.name,
|
|
1225
1228
|
pages: sortedPages,
|
|
1229
|
+
slug: config.slug,
|
|
1226
1230
|
};
|
|
1227
1231
|
};
|
|
1228
1232
|
|
|
@@ -1250,6 +1254,7 @@ export const buildUtilityArtifacts = (
|
|
|
1250
1254
|
index.description ? `> ${index.description}` : null,
|
|
1251
1255
|
"",
|
|
1252
1256
|
`Sitemap: ${toUtilityTemplatedDocUrl("sitemap.xml")}`,
|
|
1257
|
+
`Skills: ${UTILITY_DOCS_ROOT_TOKEN}/.well-known/skills/index.json`,
|
|
1253
1258
|
"",
|
|
1254
1259
|
"## Docs",
|
|
1255
1260
|
...index.pages.map((page) => {
|
|
@@ -1277,6 +1282,47 @@ ${index.pages
|
|
|
1277
1282
|
)
|
|
1278
1283
|
.join("\n\n");
|
|
1279
1284
|
|
|
1285
|
+
const skillSlug = index.slug ?? slugify(index.name);
|
|
1286
|
+
const skillDescription =
|
|
1287
|
+
`${index.name} documentation. ${index.description ?? ""}`.trim();
|
|
1288
|
+
const skillsIndex = JSON.stringify(
|
|
1289
|
+
{
|
|
1290
|
+
skills: [
|
|
1291
|
+
{
|
|
1292
|
+
description: skillDescription,
|
|
1293
|
+
files: ["SKILL.md"],
|
|
1294
|
+
name: skillSlug,
|
|
1295
|
+
},
|
|
1296
|
+
],
|
|
1297
|
+
},
|
|
1298
|
+
null,
|
|
1299
|
+
2
|
|
1300
|
+
);
|
|
1301
|
+
|
|
1302
|
+
const topPages = index.pages.slice(0, 20);
|
|
1303
|
+
const skillMdLines = [
|
|
1304
|
+
"---",
|
|
1305
|
+
`name: ${skillSlug}`,
|
|
1306
|
+
`description: ${skillDescription} Use when working with ${index.name}, answering questions about its features, or helping users follow its guides.`,
|
|
1307
|
+
"---",
|
|
1308
|
+
"",
|
|
1309
|
+
`# ${index.name}`,
|
|
1310
|
+
"",
|
|
1311
|
+
index.description ? `${index.description}\n` : "",
|
|
1312
|
+
"## Documentation",
|
|
1313
|
+
"",
|
|
1314
|
+
`- Full docs index: ${UTILITY_DOCS_ROOT_TOKEN}/llms.txt`,
|
|
1315
|
+
`- Complete docs content: ${UTILITY_DOCS_ROOT_TOKEN}/llms-full.txt`,
|
|
1316
|
+
"- Append `.md` to any page URL for raw markdown",
|
|
1317
|
+
"",
|
|
1318
|
+
"## Key Pages",
|
|
1319
|
+
"",
|
|
1320
|
+
...topPages.map((page) => {
|
|
1321
|
+
const desc = page.description ? ` - ${page.description}` : "";
|
|
1322
|
+
return `- [${page.title}](${toUtilityTemplatedDocUrl(page.slug)})${desc}`;
|
|
1323
|
+
}),
|
|
1324
|
+
];
|
|
1325
|
+
|
|
1280
1326
|
return [
|
|
1281
1327
|
{
|
|
1282
1328
|
content: sitemap,
|
|
@@ -1293,6 +1339,16 @@ ${index.pages
|
|
|
1293
1339
|
contentType: "text/plain; charset=utf-8",
|
|
1294
1340
|
path: PREBUILT_UTILITY_LLMS_FULL_PATH,
|
|
1295
1341
|
},
|
|
1342
|
+
{
|
|
1343
|
+
content: skillsIndex,
|
|
1344
|
+
contentType: "application/json; charset=utf-8",
|
|
1345
|
+
path: PREBUILT_UTILITY_SKILLS_INDEX_PATH,
|
|
1346
|
+
},
|
|
1347
|
+
{
|
|
1348
|
+
content: skillMdLines.filter((line) => line !== null).join("\n"),
|
|
1349
|
+
contentType: "text/markdown; charset=utf-8",
|
|
1350
|
+
path: `${PREBUILT_UTILITY_SKILLS_MD_PREFIX}${skillSlug}/SKILL.md`,
|
|
1351
|
+
},
|
|
1296
1352
|
...index.pages.map((page) => ({
|
|
1297
1353
|
content: formatMarkdownPage(page.title, page.content),
|
|
1298
1354
|
contentType: "text/markdown; charset=utf-8",
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
|
-
"types": "./
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
9
|
"import": "./dist/index.js",
|
|
10
10
|
"default": "./dist/index.js"
|
|
11
11
|
},
|
|
12
12
|
"./*": {
|
|
13
|
-
"types": "./
|
|
13
|
+
"types": "./dist/*.d.ts",
|
|
14
14
|
"import": "./dist/*.js",
|
|
15
15
|
"default": "./dist/*.js"
|
|
16
16
|
}
|
|
@@ -5,6 +5,8 @@ import { existsSync } from "node:fs";
|
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
|
|
8
|
+
import { REPO_PACKAGES } from "./repo-packages.mjs";
|
|
9
|
+
|
|
8
10
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
11
|
const cliRoot = path.resolve(__dirname, "..");
|
|
10
12
|
const repoRoot = path.resolve(cliRoot, "../..");
|
|
@@ -28,6 +30,18 @@ if (!shouldPackage && !isGlobalInstall) {
|
|
|
28
30
|
|
|
29
31
|
console.log("Preparing blodemd standalone package...");
|
|
30
32
|
|
|
33
|
+
// Build @repo/* workspace packages first so tsdown can inline their dist/
|
|
34
|
+
// output into the CLI bundle. Without this, tsdown falls back to treating
|
|
35
|
+
// `@repo/common` etc. as external imports and the published tarball ships
|
|
36
|
+
// unresolved imports that break `npx blodemd`.
|
|
37
|
+
console.log("Building @repo packages...");
|
|
38
|
+
for (const pkg of REPO_PACKAGES) {
|
|
39
|
+
execSync("npm run build", {
|
|
40
|
+
cwd: path.join(repoRoot, `packages/${pkg}`),
|
|
41
|
+
stdio: "inherit",
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
31
45
|
execSync("npm run build", {
|
|
32
46
|
cwd: cliRoot,
|
|
33
47
|
stdio: "inherit",
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const ApiKeySchema: z.ZodObject<{
|
|
3
|
-
createdAt: z.ZodString;
|
|
4
|
-
id: z.ZodString;
|
|
5
|
-
lastUsedAt: z.ZodOptional<z.ZodString>;
|
|
6
|
-
name: z.ZodString;
|
|
7
|
-
prefix: z.ZodString;
|
|
8
|
-
projectId: z.ZodString;
|
|
9
|
-
revokedAt: z.ZodOptional<z.ZodString>;
|
|
10
|
-
}, z.core.$strip>;
|
|
11
|
-
export type ApiKey = z.infer<typeof ApiKeySchema>;
|
|
12
|
-
export declare const ApiKeyCreateSchema: z.ZodObject<{
|
|
13
|
-
name: z.ZodString;
|
|
14
|
-
projectId: z.ZodString;
|
|
15
|
-
}, z.core.$strip>;
|
|
16
|
-
export type ApiKeyCreateInput = z.infer<typeof ApiKeyCreateSchema>;
|
|
17
|
-
export declare const ApiKeyCreateResponseSchema: z.ZodObject<{
|
|
18
|
-
apiKey: z.ZodObject<{
|
|
19
|
-
createdAt: z.ZodString;
|
|
20
|
-
id: z.ZodString;
|
|
21
|
-
lastUsedAt: z.ZodOptional<z.ZodString>;
|
|
22
|
-
name: z.ZodString;
|
|
23
|
-
prefix: z.ZodString;
|
|
24
|
-
projectId: z.ZodString;
|
|
25
|
-
revokedAt: z.ZodOptional<z.ZodString>;
|
|
26
|
-
}, z.core.$strip>;
|
|
27
|
-
token: z.ZodString;
|
|
28
|
-
}, z.core.$strip>;
|
|
29
|
-
export type ApiKeyCreateResponse = z.infer<typeof ApiKeyCreateResponseSchema>;
|
|
30
|
-
//# sourceMappingURL=api-key.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-key.d.ts","sourceRoot":"","sources":["../src/api-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;;;iBAQvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAGrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { IsoDateSchema } from "./dates.js";
|
|
3
|
-
import { IdSchema } from "./ids.js";
|
|
4
|
-
export const ApiKeySchema = z.object({
|
|
5
|
-
createdAt: IsoDateSchema,
|
|
6
|
-
id: IdSchema,
|
|
7
|
-
lastUsedAt: IsoDateSchema.optional(),
|
|
8
|
-
name: z.string().min(1),
|
|
9
|
-
prefix: z.string().min(1),
|
|
10
|
-
projectId: IdSchema,
|
|
11
|
-
revokedAt: IsoDateSchema.optional(),
|
|
12
|
-
});
|
|
13
|
-
export const ApiKeyCreateSchema = z.object({
|
|
14
|
-
name: z.string().min(1),
|
|
15
|
-
projectId: IdSchema,
|
|
16
|
-
});
|
|
17
|
-
export const ApiKeyCreateResponseSchema = z.object({
|
|
18
|
-
apiKey: ApiKeySchema,
|
|
19
|
-
token: z.string().min(1),
|
|
20
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
import { IsoDateSchema } from "./dates.js";
|
|
4
|
-
import { IdSchema } from "./ids.js";
|
|
5
|
-
|
|
6
|
-
export const ApiKeySchema = z.object({
|
|
7
|
-
createdAt: IsoDateSchema,
|
|
8
|
-
id: IdSchema,
|
|
9
|
-
lastUsedAt: IsoDateSchema.optional(),
|
|
10
|
-
name: z.string().min(1),
|
|
11
|
-
prefix: z.string().min(1),
|
|
12
|
-
projectId: IdSchema,
|
|
13
|
-
revokedAt: IsoDateSchema.optional(),
|
|
14
|
-
});
|
|
15
|
-
export type ApiKey = z.infer<typeof ApiKeySchema>;
|
|
16
|
-
|
|
17
|
-
export const ApiKeyCreateSchema = z.object({
|
|
18
|
-
name: z.string().min(1),
|
|
19
|
-
projectId: IdSchema,
|
|
20
|
-
});
|
|
21
|
-
export type ApiKeyCreateInput = z.infer<typeof ApiKeyCreateSchema>;
|
|
22
|
-
|
|
23
|
-
export const ApiKeyCreateResponseSchema = z.object({
|
|
24
|
-
apiKey: ApiKeySchema,
|
|
25
|
-
token: z.string().min(1),
|
|
26
|
-
});
|
|
27
|
-
export type ApiKeyCreateResponse = z.infer<typeof ApiKeyCreateResponseSchema>;
|