chore: import upstream snapshot with attribution
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,577 @@
|
||||
### Type definitions saved at 2026-03-10T08:56:46.271Z ###
|
||||
|
||||
enum RemoteFileFit {
|
||||
COVER
|
||||
FILL
|
||||
OUTSIDE
|
||||
CONTAIN
|
||||
}
|
||||
|
||||
enum RemoteFileFormat {
|
||||
AUTO
|
||||
JPG
|
||||
PNG
|
||||
WEBP
|
||||
AVIF
|
||||
}
|
||||
|
||||
enum RemoteFileLayout {
|
||||
FIXED
|
||||
FULL_WIDTH
|
||||
CONSTRAINED
|
||||
}
|
||||
|
||||
enum RemoteFilePlaceholder {
|
||||
DOMINANT_COLOR
|
||||
BLURRED
|
||||
TRACED_SVG
|
||||
NONE
|
||||
}
|
||||
|
||||
enum RemoteFileCropFocus {
|
||||
CENTER
|
||||
TOP
|
||||
RIGHT
|
||||
BOTTOM
|
||||
LEFT
|
||||
ENTROPY
|
||||
EDGES
|
||||
FACES
|
||||
}
|
||||
|
||||
type RemoteFileResize {
|
||||
width: Int
|
||||
height: Int
|
||||
src: String
|
||||
}
|
||||
|
||||
"""
|
||||
Remote Interface
|
||||
"""
|
||||
interface RemoteFile {
|
||||
id: ID!
|
||||
mimeType: String!
|
||||
filename: String!
|
||||
filesize: Int
|
||||
width: Int
|
||||
height: Int
|
||||
publicUrl: String!
|
||||
resize(
|
||||
width: Int
|
||||
height: Int
|
||||
aspectRatio: Float
|
||||
fit: RemoteFileFit = COVER
|
||||
|
||||
"""
|
||||
The image formats to generate. Valid values are AUTO (meaning the same
|
||||
format as the source image), JPG, PNG, WEBP and AVIF.
|
||||
The default value is [AUTO, WEBP, AVIF], and you should rarely need to
|
||||
change this. Take care if you specify JPG or PNG when you do
|
||||
not know the formats of the source images, as this could lead to unwanted
|
||||
results such as converting JPEGs to PNGs. Specifying
|
||||
both PNG and JPG is not supported and will be ignored.
|
||||
"""
|
||||
format: RemoteFileFormat = AUTO
|
||||
cropFocus: [RemoteFileCropFocus]
|
||||
quality: Int = 75
|
||||
): RemoteFileResize
|
||||
|
||||
"""
|
||||
Data used in the <GatsbyImage /> component. See https://gatsby.dev/img for more info.
|
||||
"""
|
||||
gatsbyImage(
|
||||
"""
|
||||
The layout for the image.
|
||||
FIXED: A static image sized, that does not resize according to the screen width
|
||||
FULL_WIDTH: The image resizes to fit its container. Pass a "sizes" option if
|
||||
it isn't going to be the full width of the screen.
|
||||
CONSTRAINED: Resizes to fit its container, up to a maximum width, at which point it will remain fixed in size.
|
||||
"""
|
||||
layout: RemoteFileLayout = CONSTRAINED
|
||||
|
||||
"""
|
||||
The display width of the generated image for layout = FIXED, and the display
|
||||
width of the largest image for layout = CONSTRAINED.
|
||||
The actual largest image resolution will be this value multiplied by the largest value in outputPixelDensities
|
||||
Ignored if layout = FLUID.
|
||||
"""
|
||||
width: Int
|
||||
|
||||
"""
|
||||
If set, the height of the generated image. If omitted, it is calculated from
|
||||
the supplied width, matching the aspect ratio of the source image.
|
||||
"""
|
||||
height: Int
|
||||
|
||||
"""
|
||||
Format of generated placeholder image, displayed while the main image loads.
|
||||
BLURRED: a blurred, low resolution image, encoded as a base64 data URI
|
||||
DOMINANT_COLOR: a solid color, calculated from the dominant color of the image (default).
|
||||
TRACED_SVG: deprecated. Will use DOMINANT_COLOR.
|
||||
NONE: no placeholder. Set the argument "backgroundColor" to use a fixed background color.
|
||||
"""
|
||||
placeholder: RemoteFilePlaceholder = DOMINANT_COLOR
|
||||
|
||||
"""
|
||||
If set along with width or height, this will set the value of the other
|
||||
dimension to match the provided aspect ratio, cropping the image if needed.
|
||||
If neither width or height is provided, height will be set based on the intrinsic width of the source image.
|
||||
"""
|
||||
aspectRatio: Float
|
||||
|
||||
"""
|
||||
The image formats to generate. Valid values are AUTO (meaning the same
|
||||
format as the source image), JPG, PNG, WEBP and AVIF.
|
||||
The default value is [AUTO, WEBP, AVIF], and you should rarely need to
|
||||
change this. Take care if you specify JPG or PNG when you do
|
||||
not know the formats of the source images, as this could lead to unwanted
|
||||
results such as converting JPEGs to PNGs. Specifying
|
||||
both PNG and JPG is not supported and will be ignored.
|
||||
"""
|
||||
formats: [RemoteFileFormat!] = [AUTO, WEBP, AVIF]
|
||||
|
||||
"""
|
||||
A list of image pixel densities to generate for FIXED and CONSTRAINED
|
||||
images. You should rarely need to change this. It will never generate images
|
||||
larger than the source, and will always include a 1x image.
|
||||
Default is [ 1, 2 ] for fixed images, meaning 1x, 2x, and [0.25, 0.5, 1, 2]
|
||||
for fluid. In this case, an image with a fluid layout and width = 400 would
|
||||
generate images at 100, 200, 400 and 800px wide.
|
||||
"""
|
||||
outputPixelDensities: [Float] = [0.25, 0.5, 1, 2]
|
||||
|
||||
"""
|
||||
Specifies the image widths to generate. You should rarely need to change
|
||||
this. For FIXED and CONSTRAINED images it is better to allow these to be
|
||||
determined automatically,
|
||||
based on the image size. For FULL_WIDTH images this can be used to override
|
||||
the default, which is [750, 1080, 1366, 1920].
|
||||
It will never generate any images larger than the source.
|
||||
"""
|
||||
breakpoints: [Int] = [750, 1080, 1366, 1920]
|
||||
|
||||
"""
|
||||
The "sizes" property, passed to the img tag. This describes the display size of the image.
|
||||
This does not affect the generated images, but is used by the browser to
|
||||
decide which images to download. You can leave this blank for fixed images,
|
||||
or if the responsive image
|
||||
container will be the full width of the screen. In these cases we will generate an appropriate value.
|
||||
"""
|
||||
sizes: String
|
||||
|
||||
"""
|
||||
Background color applied to the wrapper, or when "letterboxing" an image to another aspect ratio.
|
||||
"""
|
||||
backgroundColor: String
|
||||
fit: RemoteFileFit = COVER
|
||||
cropFocus: [RemoteFileCropFocus]
|
||||
quality: Int = 75
|
||||
): GatsbyImageData
|
||||
}
|
||||
|
||||
type File implements Node @dontInfer {
|
||||
sourceInstanceName: String!
|
||||
absolutePath: String!
|
||||
relativePath: String!
|
||||
extension: String!
|
||||
size: Int!
|
||||
prettySize: String!
|
||||
modifiedTime: Date! @dateformat
|
||||
accessTime: Date! @dateformat
|
||||
changeTime: Date! @dateformat
|
||||
birthTime: Date! @dateformat
|
||||
root: String!
|
||||
dir: String!
|
||||
base: String!
|
||||
ext: String!
|
||||
name: String!
|
||||
relativeDirectory: String!
|
||||
dev: Int!
|
||||
mode: Int!
|
||||
nlink: Int!
|
||||
uid: Int!
|
||||
gid: Int!
|
||||
rdev: Int!
|
||||
ino: Float!
|
||||
atimeMs: Float!
|
||||
mtimeMs: Float!
|
||||
ctimeMs: Float!
|
||||
atime: Date! @dateformat
|
||||
mtime: Date! @dateformat
|
||||
ctime: Date! @dateformat
|
||||
birthtime: Date @deprecated(reason: "Use `birthTime` instead")
|
||||
birthtimeMs: Float @deprecated(reason: "Use `birthTime` instead")
|
||||
}
|
||||
|
||||
type Directory implements Node @dontInfer {
|
||||
sourceInstanceName: String!
|
||||
absolutePath: String!
|
||||
relativePath: String!
|
||||
extension: String!
|
||||
size: Int!
|
||||
prettySize: String!
|
||||
modifiedTime: Date! @dateformat
|
||||
accessTime: Date! @dateformat
|
||||
changeTime: Date! @dateformat
|
||||
birthTime: Date! @dateformat
|
||||
root: String!
|
||||
dir: String!
|
||||
base: String!
|
||||
ext: String!
|
||||
name: String!
|
||||
relativeDirectory: String!
|
||||
dev: Int!
|
||||
mode: Int!
|
||||
nlink: Int!
|
||||
uid: Int!
|
||||
gid: Int!
|
||||
rdev: Int!
|
||||
ino: Float!
|
||||
atimeMs: Float!
|
||||
mtimeMs: Float!
|
||||
ctimeMs: Float!
|
||||
atime: Date! @dateformat
|
||||
mtime: Date! @dateformat
|
||||
ctime: Date! @dateformat
|
||||
birthtime: Date @deprecated(reason: "Use `birthTime` instead")
|
||||
birthtimeMs: Float @deprecated(reason: "Use `birthTime` instead")
|
||||
}
|
||||
|
||||
type Site implements Node @derivedTypes @dontInfer {
|
||||
buildTime: Date @dateformat
|
||||
siteMetadata: SiteSiteMetadata
|
||||
port: Int
|
||||
host: String
|
||||
flags: SiteFlags
|
||||
trailingSlash: String
|
||||
pathPrefix: String
|
||||
polyfill: Boolean
|
||||
jsxRuntime: String
|
||||
graphqlTypegen: Boolean
|
||||
}
|
||||
|
||||
type SiteSiteMetadata {
|
||||
title: String
|
||||
description: String
|
||||
siteUrl: String
|
||||
}
|
||||
|
||||
type SiteFlags {
|
||||
DEV_SSR: Boolean
|
||||
}
|
||||
|
||||
type SiteFunction implements Node @dontInfer {
|
||||
functionRoute: String!
|
||||
pluginName: String!
|
||||
originalAbsoluteFilePath: String!
|
||||
originalRelativeFilePath: String!
|
||||
relativeCompiledFilePath: String!
|
||||
absoluteCompiledFilePath: String!
|
||||
matchPath: String
|
||||
}
|
||||
|
||||
type SitePage implements Node @dontInfer {
|
||||
path: String!
|
||||
component: String!
|
||||
internalComponentName: String!
|
||||
componentChunkName: String!
|
||||
matchPath: String
|
||||
pageContext: JSON @proxy(from: "context", fromNode: false)
|
||||
pluginCreator: SitePlugin @link(by: "id", from: "pluginCreatorId")
|
||||
}
|
||||
|
||||
type SitePlugin implements Node @dontInfer {
|
||||
resolve: String
|
||||
name: String
|
||||
version: String
|
||||
nodeAPIs: [String]
|
||||
browserAPIs: [String]
|
||||
ssrAPIs: [String]
|
||||
pluginFilepath: String
|
||||
pluginOptions: JSON
|
||||
packageJson: JSON
|
||||
}
|
||||
|
||||
type SiteBuildMetadata implements Node @dontInfer {
|
||||
buildTime: Date @dateformat
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeHooks {
|
||||
afterEach: String
|
||||
beforeAll: String
|
||||
beforeEach: String
|
||||
afterAll: String
|
||||
}
|
||||
|
||||
type SuperBlockStructure implements Node @derivedTypes @dontInfer {
|
||||
chapters: [SuperBlockStructureChapters]
|
||||
superBlock: String
|
||||
blocks: [String]
|
||||
}
|
||||
|
||||
type SuperBlockStructureChapters @derivedTypes {
|
||||
dashedName: String
|
||||
modules: [SuperBlockStructureChaptersModules]
|
||||
chapterType: String
|
||||
comingSoon: Boolean
|
||||
}
|
||||
|
||||
type SuperBlockStructureChaptersModules {
|
||||
dashedName: String
|
||||
blocks: [String]
|
||||
moduleType: String
|
||||
comingSoon: Boolean
|
||||
}
|
||||
|
||||
type ChallengeNode implements Node @derivedTypes @dontInfer {
|
||||
sourceInstanceName: String
|
||||
challenge: ChallengeNodeChallenge
|
||||
}
|
||||
|
||||
type ChallengeNodeChallenge @derivedTypes {
|
||||
id: String
|
||||
title: String
|
||||
challengeType: Int
|
||||
dashedName: String
|
||||
demoType: String
|
||||
challengeFiles: [ChallengeNodeChallengeChallengeFiles]
|
||||
solutions: [[ChallengeNodeChallengeSolutions]]
|
||||
assignments: [String]
|
||||
tests: [ChallengeNodeChallengeTests]
|
||||
description: String
|
||||
translationPending: Boolean
|
||||
sourceLocation: String
|
||||
block: String
|
||||
blockLabel: String
|
||||
blockLayout: String
|
||||
hasEditableBoundaries: Boolean
|
||||
order: Int
|
||||
instructions: String
|
||||
questions: [ChallengeNodeChallengeQuestions]
|
||||
superBlock: String
|
||||
superOrder: Int
|
||||
challengeOrder: Int
|
||||
isLastChallengeInBlock: Boolean
|
||||
required: [ChallengeNodeChallengeRequired]
|
||||
helpCategory: String
|
||||
usesMultifileEditor: Boolean
|
||||
disableLoopProtectTests: Boolean
|
||||
disableLoopProtectPreview: Boolean
|
||||
certification: String
|
||||
fields: ChallengeNodeChallengeFields
|
||||
quizzes: [ChallengeNodeChallengeQuizzes]
|
||||
chapter: String
|
||||
module: String
|
||||
hooks: ChallengeNodeChallengeHooks
|
||||
nodules: [ChallengeNodeChallengeNodules]
|
||||
forumTopicId: Int
|
||||
videoId: String
|
||||
bilibiliIds: ChallengeNodeChallengeBilibiliIds
|
||||
saveSubmissionToDB: Boolean
|
||||
lang: String
|
||||
scene: ChallengeNodeChallengeScene
|
||||
explanation: String
|
||||
fillInTheBlank: ChallengeNodeChallengeFillInTheBlank
|
||||
inputType: String
|
||||
videoUrl: String
|
||||
url: String
|
||||
template: String
|
||||
transcript: String
|
||||
isExam: Boolean
|
||||
videoLocaleIds: ChallengeNodeChallengeVideoLocaleIds
|
||||
notes: String
|
||||
prerequisites: [ChallengeNodeChallengePrerequisites]
|
||||
msTrophyId: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeChallengeFiles {
|
||||
head: String
|
||||
tail: String
|
||||
id: String
|
||||
editableRegionBoundaries: [Int]
|
||||
history: [String]
|
||||
name: String
|
||||
ext: String
|
||||
path: String
|
||||
fileKey: String
|
||||
contents: String
|
||||
seed: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeSolutions {
|
||||
head: String
|
||||
tail: String
|
||||
id: String
|
||||
history: [String]
|
||||
name: String
|
||||
ext: String
|
||||
path: String
|
||||
fileKey: String
|
||||
contents: String
|
||||
seed: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeTests {
|
||||
text: String
|
||||
testString: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeQuestions @derivedTypes {
|
||||
text: String
|
||||
answers: [ChallengeNodeChallengeQuestionsAnswers]
|
||||
solution: Int
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeQuestionsAnswers {
|
||||
answer: String
|
||||
feedback: String
|
||||
audioId: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeRequired {
|
||||
src: String
|
||||
link: String
|
||||
raw: Boolean
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeFields {
|
||||
slug: String
|
||||
blockHashSlug: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeQuizzes @derivedTypes {
|
||||
questions: [ChallengeNodeChallengeQuizzesQuestions]
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeQuizzesQuestions @derivedTypes {
|
||||
text: String
|
||||
distractors: [String]
|
||||
answer: String
|
||||
audioData: ChallengeNodeChallengeQuizzesQuestionsAudioData
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeQuizzesQuestionsAudioData @derivedTypes {
|
||||
audio: ChallengeNodeChallengeQuizzesQuestionsAudioDataAudio
|
||||
transcript: [ChallengeNodeChallengeQuizzesQuestionsAudioDataTranscript]
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeQuizzesQuestionsAudioDataAudio {
|
||||
filename: String
|
||||
startTimestamp: Float
|
||||
finishTimestamp: Float
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeQuizzesQuestionsAudioDataTranscript {
|
||||
character: String
|
||||
text: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeNodules @derivedTypes {
|
||||
type: String
|
||||
contents: String
|
||||
files: [ChallengeNodeChallengeNodulesFiles]
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeNodulesFiles {
|
||||
contents: String
|
||||
ext: String
|
||||
name: String
|
||||
contentsHtml: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeBilibiliIds {
|
||||
aid: Int
|
||||
bvid: String
|
||||
cid: Int
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeScene @derivedTypes {
|
||||
setup: ChallengeNodeChallengeSceneSetup
|
||||
commands: [ChallengeNodeChallengeSceneCommands]
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeSceneSetup @derivedTypes {
|
||||
background: String
|
||||
characters: [ChallengeNodeChallengeSceneSetupCharacters]
|
||||
audio: ChallengeNodeChallengeSceneSetupAudio
|
||||
alwaysShowDialogue: Boolean
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeSceneSetupCharacters @derivedTypes {
|
||||
character: String
|
||||
position: ChallengeNodeChallengeSceneSetupCharactersPosition
|
||||
opacity: Int
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeSceneSetupCharactersPosition {
|
||||
x: Int
|
||||
y: Int
|
||||
z: Float
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeSceneSetupAudio {
|
||||
filename: String
|
||||
startTime: Float
|
||||
startTimestamp: Float
|
||||
finishTimestamp: Float
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeSceneCommands @derivedTypes {
|
||||
character: String
|
||||
opacity: Int
|
||||
startTime: Float
|
||||
finishTime: Float
|
||||
dialogue: ChallengeNodeChallengeSceneCommandsDialogue
|
||||
position: ChallengeNodeChallengeSceneCommandsPosition
|
||||
background: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeSceneCommandsDialogue {
|
||||
text: String
|
||||
align: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeSceneCommandsPosition {
|
||||
x: Int
|
||||
y: Int
|
||||
z: Float
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeFillInTheBlank @derivedTypes {
|
||||
sentence: String
|
||||
blanks: [ChallengeNodeChallengeFillInTheBlankBlanks]
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeFillInTheBlankBlanks {
|
||||
answer: String
|
||||
feedback: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengeVideoLocaleIds {
|
||||
espanol: String
|
||||
italian: String
|
||||
portuguese: String
|
||||
}
|
||||
|
||||
type ChallengeNodeChallengePrerequisites {
|
||||
id: String
|
||||
title: String
|
||||
}
|
||||
|
||||
type CertificateNode implements Node @derivedTypes @dontInfer {
|
||||
sourceInstanceName: String
|
||||
challenge: CertificateNodeChallenge
|
||||
}
|
||||
|
||||
type CertificateNodeChallenge @derivedTypes {
|
||||
id: String
|
||||
title: String
|
||||
certification: String
|
||||
challengeType: Int
|
||||
tests: [CertificateNodeChallengeTests]
|
||||
}
|
||||
|
||||
type CertificateNodeChallengeTests {
|
||||
id: String
|
||||
title: String
|
||||
}
|
||||
Reference in New Issue
Block a user