Compare commits
No commits in common. "6897bfe018d0bea3b9b15f7d404bb738c18e3144" and "6624e4e0ab4778bbf170818a9c1ee3711537ba8f" have entirely different histories.
6897bfe018
...
6624e4e0ab
8
.idea/.gitignore
generated
vendored
8
.idea/.gitignore
generated
vendored
@ -1,8 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
12
.idea/Capital.iml
generated
12
.idea/Capital.iml
generated
@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="WEB_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager">
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
57
.idea/codeStyles/Project.xml
generated
57
.idea/codeStyles/Project.xml
generated
@ -1,57 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<code_scheme name="Project" version="173">
|
|
||||||
<HTMLCodeStyleSettings>
|
|
||||||
<option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
|
|
||||||
</HTMLCodeStyleSettings>
|
|
||||||
<JSCodeStyleSettings version="0">
|
|
||||||
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
||||||
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
|
|
||||||
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
||||||
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
|
|
||||||
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
|
|
||||||
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
||||||
</JSCodeStyleSettings>
|
|
||||||
<TypeScriptCodeStyleSettings version="0">
|
|
||||||
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
||||||
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
|
|
||||||
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
||||||
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
|
|
||||||
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
|
|
||||||
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
||||||
</TypeScriptCodeStyleSettings>
|
|
||||||
<VueCodeStyleSettings>
|
|
||||||
<option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
|
|
||||||
<option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
|
|
||||||
</VueCodeStyleSettings>
|
|
||||||
<codeStyleSettings language="HTML">
|
|
||||||
<option name="SOFT_MARGINS" value="120" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="2" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
<option name="TAB_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="JavaScript">
|
|
||||||
<option name="SOFT_MARGINS" value="120" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="2" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
<option name="TAB_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="TypeScript">
|
|
||||||
<option name="SOFT_MARGINS" value="120" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="2" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
<option name="TAB_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="Vue">
|
|
||||||
<option name="SOFT_MARGINS" value="120" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
</code_scheme>
|
|
||||||
</component>
|
|
5
.idea/codeStyles/codeStyleConfig.xml
generated
5
.idea/codeStyles/codeStyleConfig.xml
generated
@ -1,5 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<state>
|
|
||||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
|
||||||
</state>
|
|
||||||
</component>
|
|
8
.idea/modules.xml
generated
8
.idea/modules.xml
generated
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/Capital.iml" filepath="$PROJECT_DIR$/.idea/Capital.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
6
.idea/vcs.xml
generated
6
.idea/vcs.xml
generated
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"tabWidth": 2,
|
|
||||||
"printWidth": 120,
|
|
||||||
"singleQuote": false
|
|
||||||
}
|
|
@ -4,16 +4,14 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|||||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||||
var __export = (target, all) => {
|
var __export = (target, all) => {
|
||||||
for (var name in all) __defProp(target, name, { get: all[name], enumerable: true });
|
for (var name in all)
|
||||||
|
__defProp(target, name, { get: all[name], enumerable: true });
|
||||||
};
|
};
|
||||||
var __copyProps = (to, from, except, desc) => {
|
var __copyProps = (to, from, except, desc) => {
|
||||||
if ((from && typeof from === "object") || typeof from === "function") {
|
if (from && typeof from === "object" || typeof from === "function") {
|
||||||
for (let key of __getOwnPropNames(from))
|
for (let key of __getOwnPropNames(from))
|
||||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||||
__defProp(to, key, {
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||||
get: () => from[key],
|
|
||||||
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return to;
|
return to;
|
||||||
};
|
};
|
||||||
@ -22,7 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|||||||
// keystone.ts
|
// keystone.ts
|
||||||
var keystone_exports = {};
|
var keystone_exports = {};
|
||||||
__export(keystone_exports, {
|
__export(keystone_exports, {
|
||||||
default: () => keystone_default,
|
default: () => keystone_default
|
||||||
});
|
});
|
||||||
module.exports = __toCommonJS(keystone_exports);
|
module.exports = __toCommonJS(keystone_exports);
|
||||||
var import_core8 = require("@keystone-6/core");
|
var import_core8 = require("@keystone-6/core");
|
||||||
@ -37,24 +35,24 @@ var allowUser = {
|
|||||||
operation: {
|
operation: {
|
||||||
create: isUser,
|
create: isUser,
|
||||||
update: isUser,
|
update: isUser,
|
||||||
delete: isUser,
|
delete: isUser
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
var isEditor = ({ session: session2 }) => session2?.data.isEditor || session2?.data.isAdmin;
|
var isEditor = ({ session: session2 }) => session2?.data.isEditor || session2?.data.isAdmin;
|
||||||
var allowEditor = {
|
var allowEditor = {
|
||||||
operation: {
|
operation: {
|
||||||
create: isEditor,
|
create: isEditor,
|
||||||
update: isEditor,
|
update: isEditor,
|
||||||
delete: isEditor,
|
delete: isEditor
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
var isAdmin = ({ session: session2 }) => session2?.data.isAdmin;
|
var isAdmin = ({ session: session2 }) => session2?.data.isAdmin;
|
||||||
var allowAdmin = {
|
var allowAdmin = {
|
||||||
operation: {
|
operation: {
|
||||||
create: isAdmin,
|
create: isAdmin,
|
||||||
update: isAdmin,
|
update: isAdmin,
|
||||||
delete: isAdmin,
|
delete: isAdmin
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// schema/assets.ts
|
// schema/assets.ts
|
||||||
@ -66,9 +64,9 @@ var Image = (0, import_core.list)({
|
|||||||
caption: (0, import_fields.text)(),
|
caption: (0, import_fields.text)(),
|
||||||
image: (0, import_fields.image)({ storage: "localImages" }),
|
image: (0, import_fields.image)({ storage: "localImages" }),
|
||||||
createdAt: (0, import_fields.timestamp)({
|
createdAt: (0, import_fields.timestamp)({
|
||||||
defaultValue: { kind: "now" },
|
defaultValue: { kind: "now" }
|
||||||
}),
|
})
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
var Asset = (0, import_core.list)({
|
var Asset = (0, import_core.list)({
|
||||||
access: allowEditor,
|
access: allowEditor,
|
||||||
@ -79,17 +77,17 @@ var Asset = (0, import_core.list)({
|
|||||||
type: "enum",
|
type: "enum",
|
||||||
options: [
|
options: [
|
||||||
{ label: "Video", value: "video" },
|
{ label: "Video", value: "video" },
|
||||||
{ label: "Audio", value: "audio" },
|
{ label: "Audio", value: "audio" }
|
||||||
],
|
],
|
||||||
defaultValue: "video",
|
defaultValue: "video",
|
||||||
db: { map: "media_type" },
|
db: { map: "media_type" },
|
||||||
validation: { isRequired: true },
|
validation: { isRequired: true },
|
||||||
ui: { displayMode: "select" },
|
ui: { displayMode: "select" }
|
||||||
}),
|
}),
|
||||||
createdAt: (0, import_fields.timestamp)({
|
createdAt: (0, import_fields.timestamp)({
|
||||||
defaultValue: { kind: "now" },
|
defaultValue: { kind: "now" }
|
||||||
}),
|
})
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// schema/moments.ts
|
// schema/moments.ts
|
||||||
@ -108,10 +106,10 @@ var Moment = (0, import_core2.list)({
|
|||||||
[1, 1, 1],
|
[1, 1, 1],
|
||||||
[2, 1],
|
[2, 1],
|
||||||
[1, 2],
|
[1, 2],
|
||||||
[1, 2, 1],
|
[1, 2, 1]
|
||||||
],
|
],
|
||||||
links: true,
|
links: true,
|
||||||
dividers: true,
|
dividers: true
|
||||||
}),
|
}),
|
||||||
author: (0, import_fields2.relationship)({
|
author: (0, import_fields2.relationship)({
|
||||||
ref: "User.moments",
|
ref: "User.moments",
|
||||||
@ -120,9 +118,9 @@ var Moment = (0, import_core2.list)({
|
|||||||
cardFields: ["name", "email"],
|
cardFields: ["name", "email"],
|
||||||
inlineEdit: { fields: ["name", "email"] },
|
inlineEdit: { fields: ["name", "email"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true
|
||||||
},
|
},
|
||||||
many: false,
|
many: false
|
||||||
}),
|
}),
|
||||||
categories: (0, import_fields2.relationship)({
|
categories: (0, import_fields2.relationship)({
|
||||||
ref: "Category.moments",
|
ref: "Category.moments",
|
||||||
@ -133,8 +131,8 @@ var Moment = (0, import_core2.list)({
|
|||||||
inlineEdit: { fields: ["name"] },
|
inlineEdit: { fields: ["name"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
inlineCreate: { fields: ["name"] },
|
inlineCreate: { fields: ["name"] }
|
||||||
},
|
}
|
||||||
}),
|
}),
|
||||||
tags: (0, import_fields2.relationship)({
|
tags: (0, import_fields2.relationship)({
|
||||||
ref: "Tag.moments",
|
ref: "Tag.moments",
|
||||||
@ -145,13 +143,13 @@ var Moment = (0, import_core2.list)({
|
|||||||
inlineEdit: { fields: ["name"] },
|
inlineEdit: { fields: ["name"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
inlineCreate: { fields: ["name"] },
|
inlineCreate: { fields: ["name"] }
|
||||||
},
|
}
|
||||||
}),
|
}),
|
||||||
createdAt: (0, import_fields2.timestamp)({
|
createdAt: (0, import_fields2.timestamp)({
|
||||||
defaultValue: { kind: "now" },
|
defaultValue: { kind: "now" }
|
||||||
}),
|
})
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// schema/categories.ts
|
// schema/categories.ts
|
||||||
@ -162,30 +160,30 @@ var Category = (0, import_core3.list)({
|
|||||||
fields: {
|
fields: {
|
||||||
slug: (0, import_fields3.text)({
|
slug: (0, import_fields3.text)({
|
||||||
validation: {
|
validation: {
|
||||||
isRequired: true,
|
isRequired: true
|
||||||
},
|
},
|
||||||
isIndexed: "unique",
|
isIndexed: "unique"
|
||||||
}),
|
}),
|
||||||
name: (0, import_fields3.text)(),
|
name: (0, import_fields3.text)(),
|
||||||
posts: (0, import_fields3.relationship)({ ref: "Post.categories", many: true }),
|
posts: (0, import_fields3.relationship)({ ref: "Post.categories", many: true }),
|
||||||
moments: (0, import_fields3.relationship)({ ref: "Moment.categories", many: true }),
|
moments: (0, import_fields3.relationship)({ ref: "Moment.categories", many: true }),
|
||||||
events: (0, import_fields3.relationship)({ ref: "Event.categories", many: true }),
|
events: (0, import_fields3.relationship)({ ref: "Event.categories", many: true })
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
var Tag = (0, import_core3.list)({
|
var Tag = (0, import_core3.list)({
|
||||||
access: allowEditor,
|
access: allowEditor,
|
||||||
fields: {
|
fields: {
|
||||||
slug: (0, import_fields3.text)({
|
slug: (0, import_fields3.text)({
|
||||||
validation: {
|
validation: {
|
||||||
isRequired: true,
|
isRequired: true
|
||||||
},
|
},
|
||||||
isIndexed: "unique",
|
isIndexed: "unique"
|
||||||
}),
|
}),
|
||||||
name: (0, import_fields3.text)(),
|
name: (0, import_fields3.text)(),
|
||||||
posts: (0, import_fields3.relationship)({ ref: "Post.tags", many: true }),
|
posts: (0, import_fields3.relationship)({ ref: "Post.tags", many: true }),
|
||||||
moments: (0, import_fields3.relationship)({ ref: "Moment.tags", many: true }),
|
moments: (0, import_fields3.relationship)({ ref: "Moment.tags", many: true }),
|
||||||
events: (0, import_fields3.relationship)({ ref: "Event.tags", many: true }),
|
events: (0, import_fields3.relationship)({ ref: "Event.tags", many: true })
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// schema/projects.ts
|
// schema/projects.ts
|
||||||
@ -196,10 +194,11 @@ var Project = (0, import_core4.list)({
|
|||||||
...allowAdmin,
|
...allowAdmin,
|
||||||
filter: {
|
filter: {
|
||||||
query: ({ session: session2 }) => {
|
query: ({ session: session2 }) => {
|
||||||
if (session2?.data.isEditor || session2?.data.isAdmin) return true;
|
if (session2?.data.isEditor || session2?.data.isAdmin)
|
||||||
|
return true;
|
||||||
return { isPublished: { equals: true } };
|
return { isPublished: { equals: true } };
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
fields: {
|
fields: {
|
||||||
icon: (0, import_fields4.relationship)({ ref: "Image" }),
|
icon: (0, import_fields4.relationship)({ ref: "Image" }),
|
||||||
@ -213,18 +212,18 @@ var Project = (0, import_core4.list)({
|
|||||||
{ label: "Pending", value: "pending" },
|
{ label: "Pending", value: "pending" },
|
||||||
{ label: "Constructing", value: "constructing" },
|
{ label: "Constructing", value: "constructing" },
|
||||||
{ label: "Published", value: "published" },
|
{ label: "Published", value: "published" },
|
||||||
{ label: "Abandoned", value: "abandoned" },
|
{ label: "Abandoned", value: "abandoned" }
|
||||||
],
|
],
|
||||||
defaultValue: "pending",
|
defaultValue: "pending",
|
||||||
db: { map: "project_status" },
|
db: { map: "project_status" },
|
||||||
validation: { isRequired: true },
|
validation: { isRequired: true },
|
||||||
ui: { displayMode: "select" },
|
ui: { displayMode: "select" }
|
||||||
}),
|
}),
|
||||||
post: (0, import_fields4.relationship)({ ref: "Post" }),
|
post: (0, import_fields4.relationship)({ ref: "Post" }),
|
||||||
createdAt: (0, import_fields4.timestamp)({
|
createdAt: (0, import_fields4.timestamp)({
|
||||||
defaultValue: { kind: "now" },
|
defaultValue: { kind: "now" }
|
||||||
}),
|
})
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// schema/posts.ts
|
// schema/posts.ts
|
||||||
@ -236,17 +235,18 @@ var Post = (0, import_core5.list)({
|
|||||||
...allowEditor,
|
...allowEditor,
|
||||||
filter: {
|
filter: {
|
||||||
query: ({ session: session2 }) => {
|
query: ({ session: session2 }) => {
|
||||||
if (session2?.data.isEditor || session2?.data.isAdmin) return true;
|
if (session2?.data.isEditor || session2?.data.isAdmin)
|
||||||
|
return true;
|
||||||
return { isPublished: { equals: true } };
|
return { isPublished: { equals: true } };
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
fields: {
|
fields: {
|
||||||
slug: (0, import_fields5.text)({
|
slug: (0, import_fields5.text)({
|
||||||
validation: {
|
validation: {
|
||||||
isRequired: true,
|
isRequired: true
|
||||||
},
|
},
|
||||||
isIndexed: "unique",
|
isIndexed: "unique"
|
||||||
}),
|
}),
|
||||||
title: (0, import_fields5.text)({ validation: { isRequired: true } }),
|
title: (0, import_fields5.text)({ validation: { isRequired: true } }),
|
||||||
cover: (0, import_fields5.relationship)({ ref: "Image" }),
|
cover: (0, import_fields5.relationship)({ ref: "Image" }),
|
||||||
@ -260,21 +260,21 @@ var Post = (0, import_core5.list)({
|
|||||||
[1, 1, 1],
|
[1, 1, 1],
|
||||||
[2, 1],
|
[2, 1],
|
||||||
[1, 2],
|
[1, 2],
|
||||||
[1, 2, 1],
|
[1, 2, 1]
|
||||||
],
|
],
|
||||||
links: true,
|
links: true,
|
||||||
dividers: true,
|
dividers: true
|
||||||
}),
|
}),
|
||||||
type: (0, import_fields5.select)({
|
type: (0, import_fields5.select)({
|
||||||
type: "enum",
|
type: "enum",
|
||||||
options: [
|
options: [
|
||||||
{ label: "Article", value: "article" },
|
{ label: "Article", value: "article" },
|
||||||
{ label: "Podcast", value: "podcast" },
|
{ label: "Podcast", value: "podcast" }
|
||||||
],
|
],
|
||||||
defaultValue: "article",
|
defaultValue: "article",
|
||||||
db: { map: "post_type" },
|
db: { map: "post_type" },
|
||||||
validation: { isRequired: true },
|
validation: { isRequired: true },
|
||||||
ui: { displayMode: "select" },
|
ui: { displayMode: "select" }
|
||||||
}),
|
}),
|
||||||
isPublished: (0, import_fields5.checkbox)(),
|
isPublished: (0, import_fields5.checkbox)(),
|
||||||
author: (0, import_fields5.relationship)({
|
author: (0, import_fields5.relationship)({
|
||||||
@ -284,9 +284,9 @@ var Post = (0, import_core5.list)({
|
|||||||
cardFields: ["name", "email"],
|
cardFields: ["name", "email"],
|
||||||
inlineEdit: { fields: ["name", "email"] },
|
inlineEdit: { fields: ["name", "email"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true
|
||||||
},
|
},
|
||||||
many: false,
|
many: false
|
||||||
}),
|
}),
|
||||||
categories: (0, import_fields5.relationship)({
|
categories: (0, import_fields5.relationship)({
|
||||||
ref: "Category.posts",
|
ref: "Category.posts",
|
||||||
@ -297,8 +297,8 @@ var Post = (0, import_core5.list)({
|
|||||||
inlineEdit: { fields: ["name"] },
|
inlineEdit: { fields: ["name"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
inlineCreate: { fields: ["name"] },
|
inlineCreate: { fields: ["name"] }
|
||||||
},
|
}
|
||||||
}),
|
}),
|
||||||
tags: (0, import_fields5.relationship)({
|
tags: (0, import_fields5.relationship)({
|
||||||
ref: "Tag.posts",
|
ref: "Tag.posts",
|
||||||
@ -309,13 +309,13 @@ var Post = (0, import_core5.list)({
|
|||||||
inlineEdit: { fields: ["name"] },
|
inlineEdit: { fields: ["name"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
inlineCreate: { fields: ["name"] },
|
inlineCreate: { fields: ["name"] }
|
||||||
},
|
}
|
||||||
}),
|
}),
|
||||||
createdAt: (0, import_fields5.timestamp)({
|
createdAt: (0, import_fields5.timestamp)({
|
||||||
defaultValue: { kind: "now" },
|
defaultValue: { kind: "now" }
|
||||||
}),
|
})
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// schema/events.ts
|
// schema/events.ts
|
||||||
@ -327,17 +327,18 @@ var Event = (0, import_core6.list)({
|
|||||||
...allowEditor,
|
...allowEditor,
|
||||||
filter: {
|
filter: {
|
||||||
query: ({ session: session2 }) => {
|
query: ({ session: session2 }) => {
|
||||||
if (session2?.data.isEditor || session2?.data.isAdmin) return true;
|
if (session2?.data.isEditor || session2?.data.isAdmin)
|
||||||
|
return true;
|
||||||
return { isPublished: { equals: true } };
|
return { isPublished: { equals: true } };
|
||||||
},
|
}
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
fields: {
|
fields: {
|
||||||
slug: (0, import_fields6.text)({
|
slug: (0, import_fields6.text)({
|
||||||
validation: {
|
validation: {
|
||||||
isRequired: true,
|
isRequired: true
|
||||||
},
|
},
|
||||||
isIndexed: "unique",
|
isIndexed: "unique"
|
||||||
}),
|
}),
|
||||||
title: (0, import_fields6.text)({ validation: { isRequired: true } }),
|
title: (0, import_fields6.text)({ validation: { isRequired: true } }),
|
||||||
description: (0, import_fields6.text)(),
|
description: (0, import_fields6.text)(),
|
||||||
@ -348,10 +349,10 @@ var Event = (0, import_core6.list)({
|
|||||||
[1, 1, 1],
|
[1, 1, 1],
|
||||||
[2, 1],
|
[2, 1],
|
||||||
[1, 2],
|
[1, 2],
|
||||||
[1, 2, 1],
|
[1, 2, 1]
|
||||||
],
|
],
|
||||||
links: true,
|
links: true,
|
||||||
dividers: true,
|
dividers: true
|
||||||
}),
|
}),
|
||||||
isPublished: (0, import_fields6.checkbox)(),
|
isPublished: (0, import_fields6.checkbox)(),
|
||||||
isHistory: (0, import_fields6.checkbox)(),
|
isHistory: (0, import_fields6.checkbox)(),
|
||||||
@ -362,9 +363,9 @@ var Event = (0, import_core6.list)({
|
|||||||
cardFields: ["name", "email"],
|
cardFields: ["name", "email"],
|
||||||
inlineEdit: { fields: ["name", "email"] },
|
inlineEdit: { fields: ["name", "email"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true
|
||||||
},
|
},
|
||||||
many: false,
|
many: false
|
||||||
}),
|
}),
|
||||||
categories: (0, import_fields6.relationship)({
|
categories: (0, import_fields6.relationship)({
|
||||||
ref: "Category.events",
|
ref: "Category.events",
|
||||||
@ -375,8 +376,8 @@ var Event = (0, import_core6.list)({
|
|||||||
inlineEdit: { fields: ["name"] },
|
inlineEdit: { fields: ["name"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
inlineCreate: { fields: ["name"] },
|
inlineCreate: { fields: ["name"] }
|
||||||
},
|
}
|
||||||
}),
|
}),
|
||||||
tags: (0, import_fields6.relationship)({
|
tags: (0, import_fields6.relationship)({
|
||||||
ref: "Tag.events",
|
ref: "Tag.events",
|
||||||
@ -387,13 +388,13 @@ var Event = (0, import_core6.list)({
|
|||||||
inlineEdit: { fields: ["name"] },
|
inlineEdit: { fields: ["name"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
inlineCreate: { fields: ["name"] },
|
inlineCreate: { fields: ["name"] }
|
||||||
},
|
}
|
||||||
}),
|
}),
|
||||||
createdAt: (0, import_fields6.timestamp)({
|
createdAt: (0, import_fields6.timestamp)({
|
||||||
defaultValue: { kind: "now" },
|
defaultValue: { kind: "now" }
|
||||||
}),
|
})
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// schema/index.ts
|
// schema/index.ts
|
||||||
@ -404,7 +405,7 @@ var lists = {
|
|||||||
name: (0, import_fields7.text)({ validation: { isRequired: true } }),
|
name: (0, import_fields7.text)({ validation: { isRequired: true } }),
|
||||||
email: (0, import_fields7.text)({
|
email: (0, import_fields7.text)({
|
||||||
validation: { isRequired: true },
|
validation: { isRequired: true },
|
||||||
isIndexed: "unique",
|
isIndexed: "unique"
|
||||||
}),
|
}),
|
||||||
password: (0, import_fields7.password)({ validation: { isRequired: true } }),
|
password: (0, import_fields7.password)({ validation: { isRequired: true } }),
|
||||||
posts: (0, import_fields7.relationship)({ ref: "Post.author", many: true }),
|
posts: (0, import_fields7.relationship)({ ref: "Post.author", many: true }),
|
||||||
@ -413,9 +414,9 @@ var lists = {
|
|||||||
isAdmin: (0, import_fields7.checkbox)(),
|
isAdmin: (0, import_fields7.checkbox)(),
|
||||||
isEditor: (0, import_fields7.checkbox)(),
|
isEditor: (0, import_fields7.checkbox)(),
|
||||||
createdAt: (0, import_fields7.timestamp)({
|
createdAt: (0, import_fields7.timestamp)({
|
||||||
defaultValue: { kind: "now" },
|
defaultValue: { kind: "now" }
|
||||||
}),
|
})
|
||||||
},
|
}
|
||||||
}),
|
}),
|
||||||
Image,
|
Image,
|
||||||
Asset,
|
Asset,
|
||||||
@ -424,7 +425,7 @@ var lists = {
|
|||||||
Project,
|
Project,
|
||||||
Event,
|
Event,
|
||||||
Category,
|
Category,
|
||||||
Tag,
|
Tag
|
||||||
};
|
};
|
||||||
|
|
||||||
// auth.ts
|
// auth.ts
|
||||||
@ -441,13 +442,13 @@ var { withAuth } = (0, import_auth.createAuth)({
|
|||||||
sessionData: "id name createdAt isAdmin isEditor",
|
sessionData: "id name createdAt isAdmin isEditor",
|
||||||
secretField: "password",
|
secretField: "password",
|
||||||
initFirstItem: {
|
initFirstItem: {
|
||||||
fields: ["name", "email", "password", "isAdmin"],
|
fields: ["name", "email", "password", "isAdmin"]
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
var sessionMaxAge = 60 * 60 * 24 * 30;
|
var sessionMaxAge = 60 * 60 * 24 * 30;
|
||||||
var session = (0, import_session.statelessSessions)({
|
var session = (0, import_session.statelessSessions)({
|
||||||
maxAge: sessionMaxAge,
|
maxAge: sessionMaxAge,
|
||||||
secret: sessionSecret,
|
secret: sessionSecret
|
||||||
});
|
});
|
||||||
|
|
||||||
// keystone.ts
|
// keystone.ts
|
||||||
@ -457,17 +458,17 @@ var databaseProvider = process.env.DATABASE_PROVIDER ?? "postgresql";
|
|||||||
var keystone_default = withAuth(
|
var keystone_default = withAuth(
|
||||||
(0, import_core8.config)({
|
(0, import_core8.config)({
|
||||||
ui: {
|
ui: {
|
||||||
basePath: "/cms",
|
basePath: "/cms"
|
||||||
},
|
},
|
||||||
db: {
|
db: {
|
||||||
provider: databaseProvider,
|
provider: databaseProvider,
|
||||||
url: databaseUrl,
|
url: databaseUrl
|
||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
cors: {
|
cors: {
|
||||||
origin: "*",
|
origin: "*",
|
||||||
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
|
methods: "GET,HEAD,PUT,PATCH,POST,DELETE"
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
storage: {
|
storage: {
|
||||||
localImages: {
|
localImages: {
|
||||||
@ -475,13 +476,13 @@ var keystone_default = withAuth(
|
|||||||
type: "image",
|
type: "image",
|
||||||
generateUrl: (path) => `${baseUrl}/images${path}`,
|
generateUrl: (path) => `${baseUrl}/images${path}`,
|
||||||
serverRoute: {
|
serverRoute: {
|
||||||
path: "/images",
|
path: "/images"
|
||||||
},
|
},
|
||||||
storagePath: "public/images",
|
storagePath: "public/images"
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
lists,
|
lists,
|
||||||
session,
|
session
|
||||||
}),
|
})
|
||||||
);
|
);
|
||||||
//# sourceMappingURL=config.js.map
|
//# sourceMappingURL=config.js.map
|
||||||
|
@ -6,13 +6,15 @@ import { withAuth, session } from "./auth";
|
|||||||
import { DatabaseProvider } from "@keystone-6/core/types";
|
import { DatabaseProvider } from "@keystone-6/core/types";
|
||||||
|
|
||||||
const baseUrl = process.env.BASE_URL ?? "http://localhost:3000";
|
const baseUrl = process.env.BASE_URL ?? "http://localhost:3000";
|
||||||
const databaseUrl = process.env.DATABASE_URL ?? "postgresql://postgres:password@127.0.0.1:5432/capital";
|
const databaseUrl =
|
||||||
|
process.env.DATABASE_URL ??
|
||||||
|
"postgresql://postgres:password@127.0.0.1:5432/capital";
|
||||||
const databaseProvider = process.env.DATABASE_PROVIDER ?? "postgresql";
|
const databaseProvider = process.env.DATABASE_PROVIDER ?? "postgresql";
|
||||||
|
|
||||||
export default withAuth(
|
export default withAuth(
|
||||||
config({
|
config({
|
||||||
ui: {
|
ui: {
|
||||||
basePath: "/cms",
|
basePath: "/cms"
|
||||||
},
|
},
|
||||||
db: {
|
db: {
|
||||||
provider: databaseProvider as DatabaseProvider,
|
provider: databaseProvider as DatabaseProvider,
|
||||||
@ -37,5 +39,5 @@ export default withAuth(
|
|||||||
},
|
},
|
||||||
lists,
|
lists,
|
||||||
session,
|
session,
|
||||||
}),
|
})
|
||||||
);
|
);
|
||||||
|
@ -7,7 +7,8 @@ const allowUser: any = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const isEditor = ({ session }: { session: any }) => session?.data.isEditor || session?.data.isAdmin;
|
const isEditor = ({ session }: { session: any }) =>
|
||||||
|
session?.data.isEditor || session?.data.isAdmin;
|
||||||
const allowEditor: any = {
|
const allowEditor: any = {
|
||||||
operation: {
|
operation: {
|
||||||
create: isEditor,
|
create: isEditor,
|
||||||
|
@ -6,29 +6,11 @@ type User {
|
|||||||
name: String
|
name: String
|
||||||
email: String
|
email: String
|
||||||
password: PasswordState
|
password: PasswordState
|
||||||
posts(
|
posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!]
|
||||||
where: PostWhereInput! = {}
|
|
||||||
orderBy: [PostOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: PostWhereUniqueInput
|
|
||||||
): [Post!]
|
|
||||||
postsCount(where: PostWhereInput! = {}): Int
|
postsCount(where: PostWhereInput! = {}): Int
|
||||||
moments(
|
moments(where: MomentWhereInput! = {}, orderBy: [MomentOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: MomentWhereUniqueInput): [Moment!]
|
||||||
where: MomentWhereInput! = {}
|
|
||||||
orderBy: [MomentOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: MomentWhereUniqueInput
|
|
||||||
): [Moment!]
|
|
||||||
momentsCount(where: MomentWhereInput! = {}): Int
|
momentsCount(where: MomentWhereInput! = {}): Int
|
||||||
events(
|
events(where: EventWhereInput! = {}, orderBy: [EventOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: EventWhereUniqueInput): [Event!]
|
||||||
where: EventWhereInput! = {}
|
|
||||||
orderBy: [EventOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: EventWhereUniqueInput
|
|
||||||
): [Event!]
|
|
||||||
eventsCount(where: EventWhereInput! = {}): Int
|
eventsCount(where: EventWhereInput! = {}): Int
|
||||||
isAdmin: Boolean
|
isAdmin: Boolean
|
||||||
isEditor: Boolean
|
isEditor: Boolean
|
||||||
@ -271,9 +253,7 @@ input ImageFieldInput {
|
|||||||
upload: Upload!
|
upload: Upload!
|
||||||
}
|
}
|
||||||
|
|
||||||
"""
|
"""The `Upload` scalar type represents a file upload."""
|
||||||
The `Upload` scalar type represents a file upload.
|
|
||||||
"""
|
|
||||||
scalar Upload
|
scalar Upload
|
||||||
|
|
||||||
input ImageUpdateArgs {
|
input ImageUpdateArgs {
|
||||||
@ -355,41 +335,17 @@ type Post {
|
|||||||
title: String
|
title: String
|
||||||
cover: Image
|
cover: Image
|
||||||
description: String
|
description: String
|
||||||
assets(
|
assets(where: AssetWhereInput! = {}, orderBy: [AssetOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: AssetWhereUniqueInput): [Asset!]
|
||||||
where: AssetWhereInput! = {}
|
|
||||||
orderBy: [AssetOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: AssetWhereUniqueInput
|
|
||||||
): [Asset!]
|
|
||||||
assetsCount(where: AssetWhereInput! = {}): Int
|
assetsCount(where: AssetWhereInput! = {}): Int
|
||||||
images(
|
images(where: ImageWhereInput! = {}, orderBy: [ImageOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: ImageWhereUniqueInput): [Image!]
|
||||||
where: ImageWhereInput! = {}
|
|
||||||
orderBy: [ImageOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: ImageWhereUniqueInput
|
|
||||||
): [Image!]
|
|
||||||
imagesCount(where: ImageWhereInput! = {}): Int
|
imagesCount(where: ImageWhereInput! = {}): Int
|
||||||
content: Post_content_Document
|
content: Post_content_Document
|
||||||
type: PostTypeType
|
type: PostTypeType
|
||||||
isPublished: Boolean
|
isPublished: Boolean
|
||||||
author: User
|
author: User
|
||||||
categories(
|
categories(where: CategoryWhereInput! = {}, orderBy: [CategoryOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: CategoryWhereUniqueInput): [Category!]
|
||||||
where: CategoryWhereInput! = {}
|
|
||||||
orderBy: [CategoryOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: CategoryWhereUniqueInput
|
|
||||||
): [Category!]
|
|
||||||
categoriesCount(where: CategoryWhereInput! = {}): Int
|
categoriesCount(where: CategoryWhereInput! = {}): Int
|
||||||
tags(
|
tags(where: TagWhereInput! = {}, orderBy: [TagOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: TagWhereUniqueInput): [Tag!]
|
||||||
where: TagWhereInput! = {}
|
|
||||||
orderBy: [TagOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: TagWhereUniqueInput
|
|
||||||
): [Tag!]
|
|
||||||
tagsCount(where: TagWhereInput! = {}): Int
|
tagsCount(where: TagWhereInput! = {}): Int
|
||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
}
|
}
|
||||||
@ -578,31 +534,13 @@ input TagRelateToManyForCreateInput {
|
|||||||
type Moment {
|
type Moment {
|
||||||
id: ID!
|
id: ID!
|
||||||
title: String
|
title: String
|
||||||
images(
|
images(where: ImageWhereInput! = {}, orderBy: [ImageOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: ImageWhereUniqueInput): [Image!]
|
||||||
where: ImageWhereInput! = {}
|
|
||||||
orderBy: [ImageOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: ImageWhereUniqueInput
|
|
||||||
): [Image!]
|
|
||||||
imagesCount(where: ImageWhereInput! = {}): Int
|
imagesCount(where: ImageWhereInput! = {}): Int
|
||||||
content: Moment_content_Document
|
content: Moment_content_Document
|
||||||
author: User
|
author: User
|
||||||
categories(
|
categories(where: CategoryWhereInput! = {}, orderBy: [CategoryOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: CategoryWhereUniqueInput): [Category!]
|
||||||
where: CategoryWhereInput! = {}
|
|
||||||
orderBy: [CategoryOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: CategoryWhereUniqueInput
|
|
||||||
): [Category!]
|
|
||||||
categoriesCount(where: CategoryWhereInput! = {}): Int
|
categoriesCount(where: CategoryWhereInput! = {}): Int
|
||||||
tags(
|
tags(where: TagWhereInput! = {}, orderBy: [TagOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: TagWhereUniqueInput): [Tag!]
|
||||||
where: TagWhereInput! = {}
|
|
||||||
orderBy: [TagOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: TagWhereUniqueInput
|
|
||||||
): [Tag!]
|
|
||||||
tagsCount(where: TagWhereInput! = {}): Int
|
tagsCount(where: TagWhereInput! = {}): Int
|
||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
}
|
}
|
||||||
@ -761,21 +699,9 @@ type Event {
|
|||||||
isPublished: Boolean
|
isPublished: Boolean
|
||||||
isHistory: Boolean
|
isHistory: Boolean
|
||||||
author: User
|
author: User
|
||||||
categories(
|
categories(where: CategoryWhereInput! = {}, orderBy: [CategoryOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: CategoryWhereUniqueInput): [Category!]
|
||||||
where: CategoryWhereInput! = {}
|
|
||||||
orderBy: [CategoryOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: CategoryWhereUniqueInput
|
|
||||||
): [Category!]
|
|
||||||
categoriesCount(where: CategoryWhereInput! = {}): Int
|
categoriesCount(where: CategoryWhereInput! = {}): Int
|
||||||
tags(
|
tags(where: TagWhereInput! = {}, orderBy: [TagOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: TagWhereUniqueInput): [Tag!]
|
||||||
where: TagWhereInput! = {}
|
|
||||||
orderBy: [TagOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: TagWhereUniqueInput
|
|
||||||
): [Tag!]
|
|
||||||
tagsCount(where: TagWhereInput! = {}): Int
|
tagsCount(where: TagWhereInput! = {}): Int
|
||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
}
|
}
|
||||||
@ -850,29 +776,11 @@ type Category {
|
|||||||
id: ID!
|
id: ID!
|
||||||
slug: String
|
slug: String
|
||||||
name: String
|
name: String
|
||||||
posts(
|
posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!]
|
||||||
where: PostWhereInput! = {}
|
|
||||||
orderBy: [PostOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: PostWhereUniqueInput
|
|
||||||
): [Post!]
|
|
||||||
postsCount(where: PostWhereInput! = {}): Int
|
postsCount(where: PostWhereInput! = {}): Int
|
||||||
moments(
|
moments(where: MomentWhereInput! = {}, orderBy: [MomentOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: MomentWhereUniqueInput): [Moment!]
|
||||||
where: MomentWhereInput! = {}
|
|
||||||
orderBy: [MomentOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: MomentWhereUniqueInput
|
|
||||||
): [Moment!]
|
|
||||||
momentsCount(where: MomentWhereInput! = {}): Int
|
momentsCount(where: MomentWhereInput! = {}): Int
|
||||||
events(
|
events(where: EventWhereInput! = {}, orderBy: [EventOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: EventWhereUniqueInput): [Event!]
|
||||||
where: EventWhereInput! = {}
|
|
||||||
orderBy: [EventOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: EventWhereUniqueInput
|
|
||||||
): [Event!]
|
|
||||||
eventsCount(where: EventWhereInput! = {}): Int
|
eventsCount(where: EventWhereInput! = {}): Int
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -924,29 +832,11 @@ type Tag {
|
|||||||
id: ID!
|
id: ID!
|
||||||
slug: String
|
slug: String
|
||||||
name: String
|
name: String
|
||||||
posts(
|
posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!]
|
||||||
where: PostWhereInput! = {}
|
|
||||||
orderBy: [PostOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: PostWhereUniqueInput
|
|
||||||
): [Post!]
|
|
||||||
postsCount(where: PostWhereInput! = {}): Int
|
postsCount(where: PostWhereInput! = {}): Int
|
||||||
moments(
|
moments(where: MomentWhereInput! = {}, orderBy: [MomentOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: MomentWhereUniqueInput): [Moment!]
|
||||||
where: MomentWhereInput! = {}
|
|
||||||
orderBy: [MomentOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: MomentWhereUniqueInput
|
|
||||||
): [Moment!]
|
|
||||||
momentsCount(where: MomentWhereInput! = {}): Int
|
momentsCount(where: MomentWhereInput! = {}): Int
|
||||||
events(
|
events(where: EventWhereInput! = {}, orderBy: [EventOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: EventWhereUniqueInput): [Event!]
|
||||||
where: EventWhereInput! = {}
|
|
||||||
orderBy: [EventOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: EventWhereUniqueInput
|
|
||||||
): [Event!]
|
|
||||||
eventsCount(where: EventWhereInput! = {}): Int
|
eventsCount(where: EventWhereInput! = {}): Int
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1059,9 +949,7 @@ type Mutation {
|
|||||||
createInitialUser(data: CreateInitialUserInput!): UserAuthenticationWithPasswordSuccess!
|
createInitialUser(data: CreateInitialUserInput!): UserAuthenticationWithPasswordSuccess!
|
||||||
}
|
}
|
||||||
|
|
||||||
union UserAuthenticationWithPasswordResult =
|
union UserAuthenticationWithPasswordResult = UserAuthenticationWithPasswordSuccess | UserAuthenticationWithPasswordFailure
|
||||||
| UserAuthenticationWithPasswordSuccess
|
|
||||||
| UserAuthenticationWithPasswordFailure
|
|
||||||
|
|
||||||
type UserAuthenticationWithPasswordSuccess {
|
type UserAuthenticationWithPasswordSuccess {
|
||||||
sessionToken: String!
|
sessionToken: String!
|
||||||
@ -1080,85 +968,31 @@ input CreateInitialUserInput {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Query {
|
type Query {
|
||||||
users(
|
users(where: UserWhereInput! = {}, orderBy: [UserOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: UserWhereUniqueInput): [User!]
|
||||||
where: UserWhereInput! = {}
|
|
||||||
orderBy: [UserOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: UserWhereUniqueInput
|
|
||||||
): [User!]
|
|
||||||
user(where: UserWhereUniqueInput!): User
|
user(where: UserWhereUniqueInput!): User
|
||||||
usersCount(where: UserWhereInput! = {}): Int
|
usersCount(where: UserWhereInput! = {}): Int
|
||||||
images(
|
images(where: ImageWhereInput! = {}, orderBy: [ImageOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: ImageWhereUniqueInput): [Image!]
|
||||||
where: ImageWhereInput! = {}
|
|
||||||
orderBy: [ImageOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: ImageWhereUniqueInput
|
|
||||||
): [Image!]
|
|
||||||
image(where: ImageWhereUniqueInput!): Image
|
image(where: ImageWhereUniqueInput!): Image
|
||||||
imagesCount(where: ImageWhereInput! = {}): Int
|
imagesCount(where: ImageWhereInput! = {}): Int
|
||||||
assets(
|
assets(where: AssetWhereInput! = {}, orderBy: [AssetOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: AssetWhereUniqueInput): [Asset!]
|
||||||
where: AssetWhereInput! = {}
|
|
||||||
orderBy: [AssetOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: AssetWhereUniqueInput
|
|
||||||
): [Asset!]
|
|
||||||
asset(where: AssetWhereUniqueInput!): Asset
|
asset(where: AssetWhereUniqueInput!): Asset
|
||||||
assetsCount(where: AssetWhereInput! = {}): Int
|
assetsCount(where: AssetWhereInput! = {}): Int
|
||||||
posts(
|
posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!]
|
||||||
where: PostWhereInput! = {}
|
|
||||||
orderBy: [PostOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: PostWhereUniqueInput
|
|
||||||
): [Post!]
|
|
||||||
post(where: PostWhereUniqueInput!): Post
|
post(where: PostWhereUniqueInput!): Post
|
||||||
postsCount(where: PostWhereInput! = {}): Int
|
postsCount(where: PostWhereInput! = {}): Int
|
||||||
moments(
|
moments(where: MomentWhereInput! = {}, orderBy: [MomentOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: MomentWhereUniqueInput): [Moment!]
|
||||||
where: MomentWhereInput! = {}
|
|
||||||
orderBy: [MomentOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: MomentWhereUniqueInput
|
|
||||||
): [Moment!]
|
|
||||||
moment(where: MomentWhereUniqueInput!): Moment
|
moment(where: MomentWhereUniqueInput!): Moment
|
||||||
momentsCount(where: MomentWhereInput! = {}): Int
|
momentsCount(where: MomentWhereInput! = {}): Int
|
||||||
projects(
|
projects(where: ProjectWhereInput! = {}, orderBy: [ProjectOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: ProjectWhereUniqueInput): [Project!]
|
||||||
where: ProjectWhereInput! = {}
|
|
||||||
orderBy: [ProjectOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: ProjectWhereUniqueInput
|
|
||||||
): [Project!]
|
|
||||||
project(where: ProjectWhereUniqueInput!): Project
|
project(where: ProjectWhereUniqueInput!): Project
|
||||||
projectsCount(where: ProjectWhereInput! = {}): Int
|
projectsCount(where: ProjectWhereInput! = {}): Int
|
||||||
events(
|
events(where: EventWhereInput! = {}, orderBy: [EventOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: EventWhereUniqueInput): [Event!]
|
||||||
where: EventWhereInput! = {}
|
|
||||||
orderBy: [EventOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: EventWhereUniqueInput
|
|
||||||
): [Event!]
|
|
||||||
event(where: EventWhereUniqueInput!): Event
|
event(where: EventWhereUniqueInput!): Event
|
||||||
eventsCount(where: EventWhereInput! = {}): Int
|
eventsCount(where: EventWhereInput! = {}): Int
|
||||||
categories(
|
categories(where: CategoryWhereInput! = {}, orderBy: [CategoryOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: CategoryWhereUniqueInput): [Category!]
|
||||||
where: CategoryWhereInput! = {}
|
|
||||||
orderBy: [CategoryOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: CategoryWhereUniqueInput
|
|
||||||
): [Category!]
|
|
||||||
category(where: CategoryWhereUniqueInput!): Category
|
category(where: CategoryWhereUniqueInput!): Category
|
||||||
categoriesCount(where: CategoryWhereInput! = {}): Int
|
categoriesCount(where: CategoryWhereInput! = {}): Int
|
||||||
tags(
|
tags(where: TagWhereInput! = {}, orderBy: [TagOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: TagWhereUniqueInput): [Tag!]
|
||||||
where: TagWhereInput! = {}
|
|
||||||
orderBy: [TagOrderByInput!]! = []
|
|
||||||
take: Int
|
|
||||||
skip: Int! = 0
|
|
||||||
cursor: TagWhereUniqueInput
|
|
||||||
): [Tag!]
|
|
||||||
tag(where: TagWhereUniqueInput!): Tag
|
tag(where: TagWhereUniqueInput!): Tag
|
||||||
tagsCount(where: TagWhereInput! = {}): Int
|
tagsCount(where: TagWhereInput! = {}): Int
|
||||||
keystone: KeystoneMeta!
|
keystone: KeystoneMeta!
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
import { checkbox, relationship, text, timestamp } from "@keystone-6/core/fields";
|
import {
|
||||||
|
checkbox,
|
||||||
|
relationship,
|
||||||
|
text,
|
||||||
|
timestamp,
|
||||||
|
} from "@keystone-6/core/fields";
|
||||||
import { document } from "@keystone-6/fields-document";
|
import { document } from "@keystone-6/fields-document";
|
||||||
import { list } from "@keystone-6/core";
|
import { list } from "@keystone-6/core";
|
||||||
import { allowEditor } from "../limit";
|
import { allowEditor } from "../limit";
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
import { list } from "@keystone-6/core";
|
import { list } from "@keystone-6/core";
|
||||||
|
|
||||||
import { text, relationship, password, timestamp, checkbox } from "@keystone-6/core/fields";
|
import {
|
||||||
|
text,
|
||||||
|
relationship,
|
||||||
|
password,
|
||||||
|
timestamp,
|
||||||
|
checkbox,
|
||||||
|
} from "@keystone-6/core/fields";
|
||||||
|
|
||||||
import { allowAdmin } from "../limit";
|
import { allowAdmin } from "../limit";
|
||||||
|
|
||||||
|
@ -4,67 +4,67 @@ import { document } from "@keystone-6/fields-document";
|
|||||||
import { relationship, text, timestamp } from "@keystone-6/core/fields";
|
import { relationship, text, timestamp } from "@keystone-6/core/fields";
|
||||||
|
|
||||||
export const Moment = list({
|
export const Moment = list({
|
||||||
access: allowUser,
|
access: allowUser,
|
||||||
|
|
||||||
fields: {
|
fields: {
|
||||||
title: text({ validation: { isRequired: true } }),
|
title: text({ validation: { isRequired: true } }),
|
||||||
images: relationship({ ref: "Image", many: true }),
|
images: relationship({ ref: "Image", many: true }),
|
||||||
|
|
||||||
content: document({
|
content: document({
|
||||||
formatting: true,
|
formatting: true,
|
||||||
layouts: [
|
layouts: [
|
||||||
[1, 1],
|
[1, 1],
|
||||||
[1, 1, 1],
|
[1, 1, 1],
|
||||||
[2, 1],
|
[2, 1],
|
||||||
[1, 2],
|
[1, 2],
|
||||||
[1, 2, 1],
|
[1, 2, 1],
|
||||||
],
|
],
|
||||||
links: true,
|
links: true,
|
||||||
dividers: true,
|
dividers: true,
|
||||||
}),
|
}),
|
||||||
|
|
||||||
author: relationship({
|
author: relationship({
|
||||||
ref: "User.moments",
|
ref: "User.moments",
|
||||||
|
|
||||||
ui: {
|
ui: {
|
||||||
displayMode: "cards",
|
displayMode: "cards",
|
||||||
cardFields: ["name", "email"],
|
cardFields: ["name", "email"],
|
||||||
inlineEdit: { fields: ["name", "email"] },
|
inlineEdit: { fields: ["name", "email"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
many: false,
|
many: false,
|
||||||
}),
|
}),
|
||||||
|
|
||||||
categories: relationship({
|
categories: relationship({
|
||||||
ref: "Category.moments",
|
ref: "Category.moments",
|
||||||
many: true,
|
many: true,
|
||||||
ui: {
|
ui: {
|
||||||
displayMode: "cards",
|
displayMode: "cards",
|
||||||
cardFields: ["name"],
|
cardFields: ["name"],
|
||||||
inlineEdit: { fields: ["name"] },
|
inlineEdit: { fields: ["name"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
inlineCreate: { fields: ["name"] },
|
inlineCreate: { fields: ["name"] },
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
tags: relationship({
|
tags: relationship({
|
||||||
ref: "Tag.moments",
|
ref: "Tag.moments",
|
||||||
many: true,
|
many: true,
|
||||||
ui: {
|
ui: {
|
||||||
displayMode: "cards",
|
displayMode: "cards",
|
||||||
cardFields: ["name"],
|
cardFields: ["name"],
|
||||||
inlineEdit: { fields: ["name"] },
|
inlineEdit: { fields: ["name"] },
|
||||||
linkToItem: true,
|
linkToItem: true,
|
||||||
inlineConnect: true,
|
inlineConnect: true,
|
||||||
inlineCreate: { fields: ["name"] },
|
inlineCreate: { fields: ["name"] },
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
createdAt: timestamp({
|
createdAt: timestamp({
|
||||||
defaultValue: { kind: "now" },
|
defaultValue: { kind: "now" },
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
});
|
})
|
@ -1,4 +1,10 @@
|
|||||||
import { checkbox, relationship, select, text, timestamp } from "@keystone-6/core/fields";
|
import {
|
||||||
|
checkbox,
|
||||||
|
relationship,
|
||||||
|
select,
|
||||||
|
text,
|
||||||
|
timestamp,
|
||||||
|
} from "@keystone-6/core/fields";
|
||||||
import { document } from "@keystone-6/fields-document";
|
import { document } from "@keystone-6/fields-document";
|
||||||
import { list } from "@keystone-6/core";
|
import { list } from "@keystone-6/core";
|
||||||
import { allowEditor } from "../limit";
|
import { allowEditor } from "../limit";
|
||||||
|
@ -6,5 +6,5 @@
|
|||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,8 +19,6 @@
|
|||||||
"@popperjs/core": "^2.11.8",
|
"@popperjs/core": "^2.11.8",
|
||||||
"@types/react": "^18.2.48",
|
"@types/react": "^18.2.48",
|
||||||
"@types/react-dom": "^18.2.18",
|
"@types/react-dom": "^18.2.18",
|
||||||
"aplayer": "^1.10.1",
|
|
||||||
"artplayer": "^5.1.1",
|
|
||||||
"astro": "^4.2.1",
|
"astro": "^4.2.1",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
|
@ -139,7 +139,8 @@ body {
|
|||||||
font-family: "Noto Serif SC";
|
font-family: "Noto Serif SC";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 200;
|
font-weight: 200;
|
||||||
src: url("./noto-serif-sc-v22-chinese-simplified-200.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
src: url("./noto-serif-sc-v22-chinese-simplified-200.woff2")
|
||||||
|
format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* noto-serif-sc-300 - chinese-simplified */
|
/* noto-serif-sc-300 - chinese-simplified */
|
||||||
@ -148,7 +149,8 @@ body {
|
|||||||
font-family: "Noto Serif SC";
|
font-family: "Noto Serif SC";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
src: url("./noto-serif-sc-v22-chinese-simplified-300.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
src: url("./noto-serif-sc-v22-chinese-simplified-300.woff2")
|
||||||
|
format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* noto-serif-sc-regular - chinese-simplified */
|
/* noto-serif-sc-regular - chinese-simplified */
|
||||||
@ -157,7 +159,8 @@ body {
|
|||||||
font-family: "Noto Serif SC";
|
font-family: "Noto Serif SC";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: url("./noto-serif-sc-v22-chinese-simplified-regular.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
src: url("./noto-serif-sc-v22-chinese-simplified-regular.woff2")
|
||||||
|
format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* noto-serif-sc-500 - chinese-simplified */
|
/* noto-serif-sc-500 - chinese-simplified */
|
||||||
@ -166,7 +169,8 @@ body {
|
|||||||
font-family: "Noto Serif SC";
|
font-family: "Noto Serif SC";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
src: url("./noto-serif-sc-v22-chinese-simplified-500.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
src: url("./noto-serif-sc-v22-chinese-simplified-500.woff2")
|
||||||
|
format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* noto-serif-sc-600 - chinese-simplified */
|
/* noto-serif-sc-600 - chinese-simplified */
|
||||||
@ -175,7 +179,8 @@ body {
|
|||||||
font-family: "Noto Serif SC";
|
font-family: "Noto Serif SC";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
src: url("./noto-serif-sc-v22-chinese-simplified-600.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
src: url("./noto-serif-sc-v22-chinese-simplified-600.woff2")
|
||||||
|
format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* noto-serif-sc-700 - chinese-simplified */
|
/* noto-serif-sc-700 - chinese-simplified */
|
||||||
@ -184,7 +189,8 @@ body {
|
|||||||
font-family: "Noto Serif SC";
|
font-family: "Noto Serif SC";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
src: url("./noto-serif-sc-v22-chinese-simplified-700.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
src: url("./noto-serif-sc-v22-chinese-simplified-700.woff2")
|
||||||
|
format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* noto-serif-sc-900 - chinese-simplified */
|
/* noto-serif-sc-900 - chinese-simplified */
|
||||||
@ -193,5 +199,6 @@ body {
|
|||||||
font-family: "Noto Serif SC";
|
font-family: "Noto Serif SC";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
src: url("./noto-serif-sc-v22-chinese-simplified-900.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
src: url("./noto-serif-sc-v22-chinese-simplified-900.woff2")
|
||||||
|
format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,14 @@
|
|||||||
---
|
---
|
||||||
interface MenuItem {
|
interface MenuItem {
|
||||||
href?: string;
|
href: string;
|
||||||
label: string;
|
label: string;
|
||||||
children?: MenuItem[];
|
children?: MenuItem[];
|
||||||
}
|
}
|
||||||
|
|
||||||
const items: MenuItem[] = [
|
const items: MenuItem[] = [
|
||||||
{
|
{ href: "/posts", label: "记录" },
|
||||||
label: "情报", children: [
|
{ href: "/events", label: "活动" },
|
||||||
{ href: "/posts", label: "记录" },
|
{ href: "/projects", label: "企划" },
|
||||||
{ href: "/events", label: "活动" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -25,13 +22,11 @@ const items: MenuItem[] = [
|
|||||||
fill="none"
|
fill="none"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
stroke="currentColor"
|
stroke="currentColor"
|
||||||
>
|
><path
|
||||||
<path
|
|
||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
stroke-width="2"
|
stroke-width="2"
|
||||||
d="M4 6h16M4 12h8m-8 6h16"></path>
|
d="M4 6h16M4 12h8m-8 6h16"></path></svg
|
||||||
</svg
|
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<ul
|
<ul
|
||||||
@ -46,7 +41,7 @@ const items: MenuItem[] = [
|
|||||||
<ul class="p-2">
|
<ul class="p-2">
|
||||||
{item.children?.map((child) => (
|
{item.children?.map((child) => (
|
||||||
<li>
|
<li>
|
||||||
<a href={child.href}>{child.label}</a>
|
<a href={item.href}>{item.label}</a>
|
||||||
</li>
|
</li>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
@ -67,11 +62,13 @@ const items: MenuItem[] = [
|
|||||||
<details>
|
<details>
|
||||||
<summary>{item.label}</summary>
|
<summary>{item.label}</summary>
|
||||||
<ul class="p-2">
|
<ul class="p-2">
|
||||||
{item.children?.map((child) => (
|
<ul class="p-2">
|
||||||
<li>
|
{item.children?.map((child) => (
|
||||||
<a href={child.href}>{child.label}</a>
|
<li>
|
||||||
</li>
|
<a href={item.href}>{item.label}</a>
|
||||||
))}
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
</details>
|
</details>
|
||||||
) : (
|
) : (
|
||||||
@ -90,22 +87,18 @@ const items: MenuItem[] = [
|
|||||||
class="swap-on fill-current w-8 h-8"
|
class="swap-on fill-current w-8 h-8"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
>
|
><path
|
||||||
<path
|
|
||||||
d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z"
|
d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z"
|
||||||
></path>
|
></path></svg
|
||||||
</svg
|
|
||||||
>
|
>
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
class="swap-off fill-current w-8 h-8"
|
class="swap-off fill-current w-8 h-8"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
>
|
><path
|
||||||
<path
|
|
||||||
d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z"
|
d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z"
|
||||||
></path>
|
></path></svg
|
||||||
</svg
|
|
||||||
>
|
>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,11 +8,11 @@ import { POST_TYPES } from "../scripts/consts";
|
|||||||
const { posts } = Astro.props;
|
const { posts } = Astro.props;
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="grid justify-items-strench shadow-lg">
|
<div class="grid justify-items-strench gap-6">
|
||||||
{
|
{
|
||||||
posts?.map((item) => (
|
posts?.map((item) => (
|
||||||
<a href={`/p/${item.slug}`}>
|
<a href={`/p/${item.slug}`}>
|
||||||
<div class="card sm:card-side hover:bg-base-200 transition-colors sm:max-w-none">
|
<div class="card sm:card-side hover:bg-base-200 transition-colors sm:max-w-none shadow-xl">
|
||||||
{item.cover.image.url && (
|
{item.cover.image.url && (
|
||||||
<figure class="mx-auto w-full object-cover p-6 max-sm:pb-0 sm:max-w-[12rem] sm:pe-0">
|
<figure class="mx-auto w-full object-cover p-6 max-sm:pb-0 sm:max-w-[12rem] sm:pe-0">
|
||||||
<img
|
<img
|
||||||
|
@ -1,63 +1,16 @@
|
|||||||
// @ts-ignore
|
import { useState, Fragment } from "react";
|
||||||
import APlayer from "aplayer";
|
|
||||||
import Artplayer from "artplayer";
|
|
||||||
import { useState, Fragment, useRef, useEffect } from "react";
|
|
||||||
|
|
||||||
import "aplayer/dist/APlayer.min.css";
|
export default function Media({
|
||||||
|
sources,
|
||||||
function Video({ url, ...rest }: { url: string, className?: string }) {
|
}: {
|
||||||
const container = useRef<HTMLDivElement>(null);
|
sources: { caption: string; url: string; type: string }[];
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
new Artplayer({
|
|
||||||
container: container.current as HTMLDivElement,
|
|
||||||
url: url,
|
|
||||||
setting: true,
|
|
||||||
flip: true,
|
|
||||||
playbackRate: true,
|
|
||||||
aspectRatio: true,
|
|
||||||
subtitleOffset: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div ref={container} {...rest}></div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function Audio({ url, artist, caption, ...rest }: {
|
|
||||||
url: string,
|
|
||||||
artist: string,
|
|
||||||
caption: string,
|
|
||||||
className?: string
|
|
||||||
}) {
|
}) {
|
||||||
const container = useRef(null);
|
const [focus, setFocus] = useState<boolean[]>(
|
||||||
|
sources.map((_, idx) => idx === 0)
|
||||||
useEffect(() => {
|
|
||||||
new APlayer({
|
|
||||||
container: container.current,
|
|
||||||
audio: [{
|
|
||||||
name: caption,
|
|
||||||
artist: artist,
|
|
||||||
url: url,
|
|
||||||
theme: "#49509e"
|
|
||||||
}]
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div ref={container} {...rest}></div>
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
export default function Media({ sources, author }: {
|
|
||||||
sources: { caption: string; url: string; type: string }[],
|
|
||||||
author?: { name: string }
|
|
||||||
}) {
|
|
||||||
const [focus, setFocus] = useState<boolean[]>(sources.map((_, idx) => idx === 0));
|
|
||||||
|
|
||||||
function changeFocus(idx: number) {
|
function changeFocus(idx: number) {
|
||||||
setFocus(focus.map((_, i) => i === idx));
|
setFocus(focus.map((_, idx) => idx === idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -73,16 +26,19 @@ export default function Media({ sources, author }: {
|
|||||||
checked={focus[idx]}
|
checked={focus[idx]}
|
||||||
onChange={() => changeFocus(idx)}
|
onChange={() => changeFocus(idx)}
|
||||||
/>
|
/>
|
||||||
<div role="tabpanel" className="tab-content bg-base-100 border-base-300 rounded-box w-full">
|
<div
|
||||||
|
role="tabpanel"
|
||||||
|
className="tab-content bg-base-100 border-base-300 rounded-box"
|
||||||
|
>
|
||||||
{item.type === "video" && (
|
{item.type === "video" && (
|
||||||
<div className="w-full h-[460px]">
|
<video className="mb-0 block w-full h-[360px]" controls>
|
||||||
<Video className="w-full h-full" url={item.url} />
|
<source src={item.url} />
|
||||||
</div>
|
</video>
|
||||||
)}
|
)}
|
||||||
{item.type === "audio" && (
|
{item.type === "audio" && (
|
||||||
<div className="w-full">
|
<audio className="mb-0 block w-full h-[20px]" controls>
|
||||||
<Audio url={item.url} artist={author?.name ?? "佚名"} caption={item.caption} />
|
<source src={item.url} />
|
||||||
</div>
|
</audio>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
|
@ -182,6 +182,38 @@ const { events } = (
|
|||||||
</div>
|
</div>
|
||||||
</RootLayout>
|
</RootLayout>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function debounce(func: any, timeout = 300) {
|
||||||
|
let timer: number;
|
||||||
|
return (...args: any[]) => {
|
||||||
|
clearTimeout(timer);
|
||||||
|
// @ts-ignore
|
||||||
|
timer = setTimeout(() => {
|
||||||
|
// @ts-ignore
|
||||||
|
func.apply(this, args);
|
||||||
|
}, timeout);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Makes scroll means slide to next page
|
||||||
|
const wrapper = document.querySelector<HTMLDivElement>(".wrapper");
|
||||||
|
const template = document.querySelector<HTMLDivElement>("#hello");
|
||||||
|
const scroll = debounce((negative: boolean) => {
|
||||||
|
if (wrapper) {
|
||||||
|
console.log("scrolled");
|
||||||
|
let range = negative
|
||||||
|
? -(template?.clientHeight ?? 0)
|
||||||
|
: template?.clientHeight ?? 0;
|
||||||
|
wrapper.scrollTop += range;
|
||||||
|
}
|
||||||
|
}, 40); // 40ms to prevent touchpad and smooth scroll software
|
||||||
|
wrapper?.addEventListener("wheel", (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
scroll(event.deltaY < 0);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.spinning {
|
.spinning {
|
||||||
animation: 5s ease-in-out infinite running spinning;
|
animation: 5s ease-in-out infinite running spinning;
|
||||||
|
@ -19,9 +19,6 @@ const { post } = (
|
|||||||
type
|
type
|
||||||
title
|
title
|
||||||
description
|
description
|
||||||
author {
|
|
||||||
name
|
|
||||||
}
|
|
||||||
assets {
|
assets {
|
||||||
caption
|
caption
|
||||||
url
|
url
|
||||||
@ -70,8 +67,8 @@ const { post } = (
|
|||||||
|
|
||||||
{
|
{
|
||||||
post.assets?.length > 0 && (
|
post.assets?.length > 0 && (
|
||||||
<div class="mb-5 w-full">
|
<div class="mb-5">
|
||||||
<Media client:only sources={post.assets} author={post.author} />
|
<Media sources={post.assets} />
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
import PageLayout from "../../layouts/PageLayout.astro";
|
import PageLayout from "../../layouts/PageLayout.astro";
|
||||||
import PostList from "../../components/PostList.astro";
|
import PostList from "../../components/PostList.astro";
|
||||||
|
|
||||||
import {graphQuery} from "../../scripts/requests";
|
import { graphQuery } from "../../scripts/requests";
|
||||||
|
|
||||||
export const prerender = false;
|
export const prerender = false;
|
||||||
|
|
||||||
const {posts} = (
|
const { posts } = (
|
||||||
await graphQuery(
|
await graphQuery(
|
||||||
`query Query($where: PostWhereInput!, $orderBy: [PostOrderByInput!]!) {
|
`query Query($where: PostWhereInput!) {
|
||||||
posts(where: $where, orderBy: $orderBy) {
|
posts(where: $where) {
|
||||||
slug
|
slug
|
||||||
type
|
type
|
||||||
title
|
title
|
||||||
@ -31,25 +31,18 @@ const {posts} = (
|
|||||||
createdAt
|
createdAt
|
||||||
}
|
}
|
||||||
}`,
|
}`,
|
||||||
{
|
{ where: {} }
|
||||||
orderBy: [
|
)
|
||||||
{
|
|
||||||
createdAt: "desc",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
where: {}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
).data;
|
).data;
|
||||||
---
|
---
|
||||||
|
|
||||||
<PageLayout title="记录">
|
<PageLayout title="记录">
|
||||||
<div class="max-w-[720px] mx-auto">
|
<div class="max-w-[720px] mx-auto">
|
||||||
<div class="pt-16 pb-6 px-6">
|
<div class="pt-16 pb-6 px-6">
|
||||||
<h1 class="text-4xl font-bold">记录</h1>
|
<h1 class="text-4xl font-bold">记录</h1>
|
||||||
<p class="pt-2">记录生活,记录理想,记录记录……</p>
|
<p class="pt-2">记录生活,记录理想,记录记录……</p>
|
||||||
</div>
|
|
||||||
|
|
||||||
<PostList posts={posts as any[]}/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<PostList posts={posts as any[]} />
|
||||||
|
</div>
|
||||||
</PageLayout>
|
</PageLayout>
|
||||||
|
24
src/pages/projects/index.astro
Normal file
24
src/pages/projects/index.astro
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
import PageLayout from "../../layouts/PageLayout.astro";
|
||||||
|
---
|
||||||
|
|
||||||
|
<PageLayout title="企划">
|
||||||
|
<div role="alert" class="alert alert-info">
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="none"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
class="stroke-current shrink-0 w-6 h-6"
|
||||||
|
><path
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-width="2"
|
||||||
|
d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
|
||||||
|
></path></svg
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<p>暂无可公开企划,若想进一步探索,可以加入我们的 GoatChat!</p>
|
||||||
|
<a class="link" href="https://matrix.to/#/#plaza:matrix.smartsheep.studio">邀请链接 👈</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</PageLayout>
|
@ -1,7 +1,5 @@
|
|||||||
const defaultCms = "https://smartsheep.studio";
|
|
||||||
|
|
||||||
export async function graphQuery(query: string, variables: any) {
|
export async function graphQuery(query: string, variables: any) {
|
||||||
const response = await fetch(`${process.env.PUBLIC_CMS ?? defaultCms}/api/graphql`, {
|
const response = await fetch(`${process.env.PUBLIC_CMS}/api/graphql`, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
"extends": "astro/tsconfigs/strict",
|
"extends": "astro/tsconfigs/strict",
|
||||||
"exclude": ["./content", "./dist"],
|
"exclude": ["./content", "./dist"],
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es5",
|
|
||||||
"lib": ["esnext", "es2021"],
|
|
||||||
"jsx": "react-jsx",
|
"jsx": "react-jsx",
|
||||||
"jsxImportSource": "react"
|
"jsxImportSource": "react",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
40
yarn.lock
40
yarn.lock
@ -916,15 +916,6 @@ anymatch@~3.1.2:
|
|||||||
normalize-path "^3.0.0"
|
normalize-path "^3.0.0"
|
||||||
picomatch "^2.0.4"
|
picomatch "^2.0.4"
|
||||||
|
|
||||||
aplayer@^1.10.1:
|
|
||||||
version "1.10.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/aplayer/-/aplayer-1.10.1.tgz#318289206107452cc39e8f552fa6cc6cb459a90c"
|
|
||||||
integrity sha512-HAfyxgCUTLAqtYlxzzK9Fyqg6y+kZ9CqT1WfeWE8FSzwspT6oBqWOZHANPHF3RGTtC33IsyEgrfthPDzU5r9kQ==
|
|
||||||
dependencies:
|
|
||||||
balloon-css "^0.5.0"
|
|
||||||
promise-polyfill "7.1.0"
|
|
||||||
smoothscroll "0.4.0"
|
|
||||||
|
|
||||||
arg@^5.0.0, arg@^5.0.2:
|
arg@^5.0.0, arg@^5.0.2:
|
||||||
version "5.0.2"
|
version "5.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
|
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
|
||||||
@ -954,13 +945,6 @@ array-iterate@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-2.0.1.tgz#6efd43f8295b3fee06251d3d62ead4bd9805dd24"
|
resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-2.0.1.tgz#6efd43f8295b3fee06251d3d62ead4bd9805dd24"
|
||||||
integrity sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==
|
integrity sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==
|
||||||
|
|
||||||
artplayer@^5.1.1:
|
|
||||||
version "5.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/artplayer/-/artplayer-5.1.1.tgz#a35071036f899aafb3a8f1fa3a9e0755dc6d5b66"
|
|
||||||
integrity sha512-pZ2/lB+Oo3g0CVLqkFuB86bMBPMtZaABaq5e1LPKubYDBW46+mzin2wzdVmk3tvFyfQoVnb+MBFU7nJYvI3qNg==
|
|
||||||
dependencies:
|
|
||||||
option-validator "^2.0.6"
|
|
||||||
|
|
||||||
astro@^4.2.1:
|
astro@^4.2.1:
|
||||||
version "4.2.1"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/astro/-/astro-4.2.1.tgz#c0676bdd63cdd8ac2e46f53b7a72229ad302b24b"
|
resolved "https://registry.yarnpkg.com/astro/-/astro-4.2.1.tgz#c0676bdd63cdd8ac2e46f53b7a72229ad302b24b"
|
||||||
@ -1066,11 +1050,6 @@ balanced-match@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||||
|
|
||||||
balloon-css@^0.5.0:
|
|
||||||
version "0.5.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/balloon-css/-/balloon-css-0.5.2.tgz#9e2163565a136c9d4aa20e8400772ce3b738d3ff"
|
|
||||||
integrity sha512-zheJpzwyNrG4t39vusA67v3BYg1HTVXOF8cErPEHzWK88PEOFwgo6Ea9VHOgOWNMgeuOtFVtB73NE2NWl9uDyQ==
|
|
||||||
|
|
||||||
base-64@^1.0.0:
|
base-64@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/base-64/-/base-64-1.0.0.tgz#09d0f2084e32a3fd08c2475b973788eee6ae8f4a"
|
resolved "https://registry.yarnpkg.com/base-64/-/base-64-1.0.0.tgz#09d0f2084e32a3fd08c2475b973788eee6ae8f4a"
|
||||||
@ -2129,7 +2108,7 @@ jsonc-parser@^2.3.0:
|
|||||||
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342"
|
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342"
|
||||||
integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==
|
integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==
|
||||||
|
|
||||||
kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
|
kind-of@^6.0.0, kind-of@^6.0.2:
|
||||||
version "6.0.3"
|
version "6.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
||||||
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
||||||
@ -2874,13 +2853,6 @@ onetime@^6.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mimic-fn "^4.0.0"
|
mimic-fn "^4.0.0"
|
||||||
|
|
||||||
option-validator@^2.0.6:
|
|
||||||
version "2.0.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/option-validator/-/option-validator-2.0.6.tgz#a314dae65e26db5f948ef0ff96fc88f18bb76ed6"
|
|
||||||
integrity sha512-tmZDan2LRIRQyhUGvkff68/O0R8UmF+Btmiiz0SmSw2ng3CfPZB9wJlIjHpe/MKUZqyIZkVIXCrwr1tIN+0Dzg==
|
|
||||||
dependencies:
|
|
||||||
kind-of "^6.0.3"
|
|
||||||
|
|
||||||
ora@^7.0.1:
|
ora@^7.0.1:
|
||||||
version "7.0.1"
|
version "7.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/ora/-/ora-7.0.1.tgz#cdd530ecd865fe39e451a0e7697865669cb11930"
|
resolved "https://registry.yarnpkg.com/ora/-/ora-7.0.1.tgz#cdd530ecd865fe39e451a0e7697865669cb11930"
|
||||||
@ -3143,11 +3115,6 @@ probe-image-size@^7.2.3:
|
|||||||
needle "^2.5.2"
|
needle "^2.5.2"
|
||||||
stream-parser "~0.3.1"
|
stream-parser "~0.3.1"
|
||||||
|
|
||||||
promise-polyfill@7.1.0:
|
|
||||||
version "7.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-7.1.0.tgz#4d749485b44577c14137591c6f36e5d7e2dd3378"
|
|
||||||
integrity sha512-P6NJ2wU/8fac44ENORsuqT8TiolKGB2u0fEClPtXezn7w5cmLIjM/7mhPlTebke2EPr6tmqZbXvnX0TxwykGrg==
|
|
||||||
|
|
||||||
prompts@^2.4.2:
|
prompts@^2.4.2:
|
||||||
version "2.4.2"
|
version "2.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
|
resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
|
||||||
@ -3589,11 +3556,6 @@ sitemap@^7.1.1:
|
|||||||
arg "^5.0.0"
|
arg "^5.0.0"
|
||||||
sax "^1.2.4"
|
sax "^1.2.4"
|
||||||
|
|
||||||
smoothscroll@0.4.0:
|
|
||||||
version "0.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/smoothscroll/-/smoothscroll-0.4.0.tgz#40e507b46461408ba1b787d0081e1e883c4124a5"
|
|
||||||
integrity sha512-sggQ3U2Un38b3+q/j1P4Y4fCboCtoUIaBYoge+Lb6Xg1H8RTIif/hugVr+ErMtIDpvBbhQfTjtiTeYAfbw1ZGQ==
|
|
||||||
|
|
||||||
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
|
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user