@backstage/plugin-config-schema 0.1.30-next.2 → 0.1.31-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/dist/esm/{index-f3b4f759.esm.js → index-8fca4f13.esm.js} +103 -58
- package/dist/esm/{index-f3b4f759.esm.js.map → index-8fca4f13.esm.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +11 -6
- package/dist/index.esm.js.map +1 -1
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# @backstage/plugin-config-schema
|
|
2
2
|
|
|
3
|
+
## 0.1.31-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @backstage/core-plugin-api@1.0.5-next.0
|
|
9
|
+
- @backstage/core-components@0.10.1-next.0
|
|
10
|
+
|
|
11
|
+
## 0.1.30
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- a70869e775: Updated dependency `msw` to `^0.43.0`.
|
|
16
|
+
- 8006d0f9bf: Updated dependency `msw` to `^0.44.0`.
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
- @backstage/core-components@0.10.0
|
|
19
|
+
- @backstage/core-plugin-api@1.0.4
|
|
20
|
+
- @backstage/theme@0.2.16
|
|
21
|
+
- @backstage/errors@1.1.0
|
|
22
|
+
|
|
23
|
+
## 0.1.30-next.3
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- a70869e775: Updated dependency `msw` to `^0.43.0`.
|
|
28
|
+
- Updated dependencies
|
|
29
|
+
- @backstage/core-plugin-api@1.0.4-next.0
|
|
30
|
+
- @backstage/core-components@0.10.0-next.3
|
|
31
|
+
|
|
3
32
|
## 0.1.30-next.2
|
|
4
33
|
|
|
5
34
|
### Patch Changes
|
|
@@ -27,7 +27,9 @@ class ScrollTargetsForwarder {
|
|
|
27
27
|
(_a = this.listeners.get(id)) == null ? void 0 : _a();
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
const ScrollTargetsContext = createContext(
|
|
30
|
+
const ScrollTargetsContext = createContext(
|
|
31
|
+
void 0
|
|
32
|
+
);
|
|
31
33
|
function ScrollTargetsProvider({ children }) {
|
|
32
34
|
return /* @__PURE__ */ React.createElement(ScrollTargetsContext.Provider, {
|
|
33
35
|
value: new ScrollTargetsForwarder(),
|
|
@@ -79,28 +81,34 @@ function ChildView({
|
|
|
79
81
|
const chips = new Array();
|
|
80
82
|
const chipProps = { size: "small", classes: { root: classes.chip } };
|
|
81
83
|
if (required) {
|
|
82
|
-
chips.push(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
chips.push(
|
|
85
|
+
/* @__PURE__ */ React.createElement(Chip, {
|
|
86
|
+
label: "required",
|
|
87
|
+
color: "default",
|
|
88
|
+
key: "required",
|
|
89
|
+
...chipProps
|
|
90
|
+
})
|
|
91
|
+
);
|
|
88
92
|
}
|
|
89
93
|
const visibility = schema == null ? void 0 : schema.visibility;
|
|
90
94
|
if (visibility === "frontend") {
|
|
91
|
-
chips.push(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
chips.push(
|
|
96
|
+
/* @__PURE__ */ React.createElement(Chip, {
|
|
97
|
+
label: "frontend",
|
|
98
|
+
color: "primary",
|
|
99
|
+
key: "visibility",
|
|
100
|
+
...chipProps
|
|
101
|
+
})
|
|
102
|
+
);
|
|
97
103
|
} else if (visibility === "secret") {
|
|
98
|
-
chips.push(
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
chips.push(
|
|
105
|
+
/* @__PURE__ */ React.createElement(Chip, {
|
|
106
|
+
label: "secret",
|
|
107
|
+
color: "secondary",
|
|
108
|
+
key: "visibility",
|
|
109
|
+
...chipProps
|
|
110
|
+
})
|
|
111
|
+
);
|
|
104
112
|
}
|
|
105
113
|
return /* @__PURE__ */ React.createElement(Box, {
|
|
106
114
|
paddingBottom: lastChild ? 4 : 8,
|
|
@@ -353,16 +361,18 @@ function SchemaView(props) {
|
|
|
353
361
|
}
|
|
354
362
|
}
|
|
355
363
|
|
|
356
|
-
const StyledTreeItem = withStyles(
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
}
|
|
364
|
+
const StyledTreeItem = withStyles(
|
|
365
|
+
(theme) => createStyles({
|
|
366
|
+
label: {
|
|
367
|
+
userSelect: "none"
|
|
368
|
+
},
|
|
369
|
+
group: {
|
|
370
|
+
marginLeft: 7,
|
|
371
|
+
paddingLeft: theme.spacing(1),
|
|
372
|
+
borderLeft: `1px solid ${alpha(theme.palette.text.primary, 0.15)}`
|
|
373
|
+
}
|
|
374
|
+
})
|
|
375
|
+
)((props) => /* @__PURE__ */ React.createElement(TreeItem, {
|
|
366
376
|
...props
|
|
367
377
|
}));
|
|
368
378
|
function createSchemaBrowserItems(expanded, schema, path = "", depth = 0) {
|
|
@@ -383,7 +393,12 @@ function createSchemaBrowserItems(expanded, schema, path = "", depth = 0) {
|
|
|
383
393
|
key: childPath,
|
|
384
394
|
nodeId: childPath,
|
|
385
395
|
label: `<Option ${index + 1}>`
|
|
386
|
-
}, createSchemaBrowserItems(
|
|
396
|
+
}, createSchemaBrowserItems(
|
|
397
|
+
expanded,
|
|
398
|
+
childSchema,
|
|
399
|
+
childPath,
|
|
400
|
+
depth + 1
|
|
401
|
+
));
|
|
387
402
|
});
|
|
388
403
|
}
|
|
389
404
|
switch (schema.type) {
|
|
@@ -394,44 +409,72 @@ function createSchemaBrowserItems(expanded, schema, path = "", depth = 0) {
|
|
|
394
409
|
return /* @__PURE__ */ React.createElement(StyledTreeItem, {
|
|
395
410
|
nodeId: childPath,
|
|
396
411
|
label: "[]"
|
|
397
|
-
}, schema.items && createSchemaBrowserItems(
|
|
412
|
+
}, schema.items && createSchemaBrowserItems(
|
|
413
|
+
expanded,
|
|
414
|
+
schema.items,
|
|
415
|
+
childPath,
|
|
416
|
+
depth + 1
|
|
417
|
+
));
|
|
398
418
|
}
|
|
399
419
|
case "object":
|
|
400
420
|
case void 0: {
|
|
401
421
|
const children = [];
|
|
402
422
|
if (schema.properties) {
|
|
403
|
-
children.push(
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
423
|
+
children.push(
|
|
424
|
+
...Object.entries(schema.properties).map(([name, childSchema]) => {
|
|
425
|
+
const childPath = path ? `${path}.${name}` : name;
|
|
426
|
+
if (depth > 0)
|
|
427
|
+
expanded.push(childPath);
|
|
428
|
+
return /* @__PURE__ */ React.createElement(StyledTreeItem, {
|
|
429
|
+
key: childPath,
|
|
430
|
+
nodeId: childPath,
|
|
431
|
+
label: name
|
|
432
|
+
}, createSchemaBrowserItems(
|
|
433
|
+
expanded,
|
|
434
|
+
childSchema,
|
|
435
|
+
childPath,
|
|
436
|
+
depth + 1
|
|
437
|
+
));
|
|
438
|
+
})
|
|
439
|
+
);
|
|
413
440
|
}
|
|
414
441
|
if (schema.patternProperties) {
|
|
415
|
-
children.push(
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
442
|
+
children.push(
|
|
443
|
+
...Object.entries(schema.patternProperties).map(
|
|
444
|
+
([name, childSchema]) => {
|
|
445
|
+
const childPath = `${path}.<${name}>`;
|
|
446
|
+
if (depth > 0)
|
|
447
|
+
expanded.push(childPath);
|
|
448
|
+
return /* @__PURE__ */ React.createElement(StyledTreeItem, {
|
|
449
|
+
key: childPath,
|
|
450
|
+
nodeId: childPath,
|
|
451
|
+
label: `<${name}>`
|
|
452
|
+
}, createSchemaBrowserItems(
|
|
453
|
+
expanded,
|
|
454
|
+
childSchema,
|
|
455
|
+
childPath,
|
|
456
|
+
depth + 1
|
|
457
|
+
));
|
|
458
|
+
}
|
|
459
|
+
)
|
|
460
|
+
);
|
|
425
461
|
}
|
|
426
462
|
if (schema.additionalProperties && schema.additionalProperties !== true) {
|
|
427
463
|
const childPath = `${path}.*`;
|
|
428
464
|
if (depth > 0)
|
|
429
465
|
expanded.push(childPath);
|
|
430
|
-
children.push(
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
466
|
+
children.push(
|
|
467
|
+
/* @__PURE__ */ React.createElement(StyledTreeItem, {
|
|
468
|
+
key: childPath,
|
|
469
|
+
nodeId: childPath,
|
|
470
|
+
label: "*"
|
|
471
|
+
}, createSchemaBrowserItems(
|
|
472
|
+
expanded,
|
|
473
|
+
schema.additionalProperties,
|
|
474
|
+
childPath,
|
|
475
|
+
depth + 1
|
|
476
|
+
))
|
|
477
|
+
);
|
|
435
478
|
}
|
|
436
479
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
|
|
437
480
|
}
|
|
@@ -498,7 +541,9 @@ const SchemaViewer = ({ schema }) => {
|
|
|
498
541
|
|
|
499
542
|
const ConfigSchemaPage = () => {
|
|
500
543
|
const configSchemaApi = useApi(configSchemaApiRef);
|
|
501
|
-
const schemaResult = useObservable(
|
|
544
|
+
const schemaResult = useObservable(
|
|
545
|
+
useMemo(() => configSchemaApi.schema$(), [configSchemaApi])
|
|
546
|
+
);
|
|
502
547
|
let content;
|
|
503
548
|
if (schemaResult) {
|
|
504
549
|
if (schemaResult.schema) {
|
|
@@ -523,4 +568,4 @@ const ConfigSchemaPage = () => {
|
|
|
523
568
|
};
|
|
524
569
|
|
|
525
570
|
export { ConfigSchemaPage };
|
|
526
|
-
//# sourceMappingURL=index-
|
|
571
|
+
//# sourceMappingURL=index-8fca4f13.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-f3b4f759.esm.js","sources":["../../src/components/ScrollTargetsContext/ScrollTargetsContext.tsx","../../src/components/SchemaView/ChildView.tsx","../../src/components/SchemaView/MetadataView.tsx","../../src/components/SchemaView/ArrayView.tsx","../../src/components/SchemaView/MatchView.tsx","../../src/components/SchemaView/ObjectView.tsx","../../src/components/SchemaView/ScalarView.tsx","../../src/components/SchemaView/SchemaView.tsx","../../src/components/SchemaBrowser/SchemaBrowser.tsx","../../src/components/SchemaViewer/SchemaViewer.tsx","../../src/components/ConfigSchemaPage/ConfigSchemaPage.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { createContext, ReactNode, useContext } from 'react';\n\nclass ScrollTargetsForwarder {\n private readonly listeners = new Map<string, () => void>();\n\n setScrollListener(id: string, listener: () => void): () => void {\n this.listeners.set(id, listener);\n\n return () => {\n if (this.listeners.get(id) === listener) {\n this.listeners.delete(id);\n }\n };\n }\n\n scrollTo(id: string) {\n this.listeners.get(id)?.();\n }\n}\n\nconst ScrollTargetsContext = createContext<ScrollTargetsForwarder | undefined>(\n undefined,\n);\n\nexport function ScrollTargetsProvider({ children }: { children: ReactNode }) {\n return (\n <ScrollTargetsContext.Provider\n value={new ScrollTargetsForwarder()}\n children={children}\n />\n );\n}\n\nexport function useScrollTargets() {\n return useContext(ScrollTargetsContext);\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { JsonValue } from '@backstage/types';\nimport { Box, Chip, Divider, makeStyles, Typography } from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React, { useEffect, useRef } from 'react';\nimport { useScrollTargets } from '../ScrollTargetsContext/ScrollTargetsContext';\nimport { SchemaView } from './SchemaView';\n\nexport interface MetadataViewRowProps {\n label: string;\n text?: string;\n data?: JsonValue;\n}\n\nfunction titleVariant(depth: number) {\n if (depth <= 1) {\n return 'h2';\n } else if (depth === 2) {\n return 'h3';\n } else if (depth === 3) {\n return 'h4';\n } else if (depth === 4) {\n return 'h5';\n }\n return 'h6';\n}\n\nconst useChildViewStyles = makeStyles(theme => ({\n title: {\n marginBottom: 0,\n },\n chip: {\n marginLeft: theme.spacing(1),\n marginRight: 0,\n marginBottom: 0,\n },\n}));\n\nexport function ChildView({\n path,\n depth,\n schema,\n required,\n lastChild,\n}: {\n path: string;\n depth: number;\n schema?: Schema;\n required?: boolean;\n lastChild?: boolean;\n}) {\n const classes = useChildViewStyles();\n const titleRef = useRef<HTMLElement>(null);\n const scroll = useScrollTargets();\n\n useEffect(() => {\n return scroll?.setScrollListener(path, () => {\n titleRef.current?.scrollIntoView({ behavior: 'smooth' });\n });\n }, [scroll, path]);\n\n const chips = new Array<JSX.Element>();\n const chipProps = { size: 'small' as const, classes: { root: classes.chip } };\n\n if (required) {\n chips.push(\n <Chip label=\"required\" color=\"default\" key=\"required\" {...chipProps} />,\n );\n }\n\n const visibility = (schema as { visibility?: string })?.visibility;\n if (visibility === 'frontend') {\n chips.push(\n <Chip label=\"frontend\" color=\"primary\" key=\"visibility\" {...chipProps} />,\n );\n } else if (visibility === 'secret') {\n chips.push(\n <Chip label=\"secret\" color=\"secondary\" key=\"visibility\" {...chipProps} />,\n );\n }\n\n return (\n <Box paddingBottom={lastChild ? 4 : 8} display=\"flex\" flexDirection=\"row\">\n <Divider orientation=\"vertical\" flexItem />\n <Box paddingLeft={2} flex={1}>\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n marginBottom={2}\n alignItems=\"center\"\n >\n <Typography\n ref={titleRef}\n variant={titleVariant(depth)}\n classes={{ root: classes.title }}\n >\n {path}\n </Typography>\n {chips.length > 0 && <Box marginLeft={1} />}\n {chips}\n </Box>\n {schema && (\n <SchemaView path={path} depth={depth} schema={schema as Schema} />\n )}\n </Box>\n </Box>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { JsonValue } from '@backstage/types';\nimport {\n Paper,\n Table,\n TableBody,\n TableCell,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React from 'react';\n\nexport interface MetadataViewRowProps {\n label: string;\n text?: string;\n data?: JsonValue;\n}\n\nexport function MetadataViewRow({ label, text, data }: MetadataViewRowProps) {\n if (text === undefined && data === undefined) {\n return null;\n }\n return (\n <TableRow>\n <TableCell style={{ width: 160 }}>\n <Typography variant=\"body1\" noWrap style={{ fontWeight: 900 }}>\n {label}\n </Typography>\n </TableCell>\n <TableCell>\n <Typography variant=\"body1\">\n {data ? JSON.stringify(data) : text}\n </Typography>\n </TableCell>\n </TableRow>\n );\n}\n\nexport function MetadataView({ schema }: { schema: Schema }) {\n return (\n <Paper variant=\"outlined\" square style={{ width: '100%' }}>\n <Table size=\"small\">\n <TableBody>\n <MetadataViewRow label=\"Type\" data={schema.type} />\n <MetadataViewRow label=\"Allowed values\" data={schema.enum} />\n {schema.additionalProperties === true && (\n <MetadataViewRow label=\"Additional Properties\" text=\"true\" />\n )}\n {schema.additionalItems === true && (\n <MetadataViewRow label=\"Additional Items\" text=\"true\" />\n )}\n <MetadataViewRow label=\"Format\" text={schema.format} />\n <MetadataViewRow\n label=\"Pattern\"\n text={schema.pattern && String(schema.pattern)}\n />\n <MetadataViewRow label=\"Minimum\" data={schema.minimum} />\n <MetadataViewRow label=\"Maximum\" data={schema.maximum} />\n <MetadataViewRow\n label=\"Exclusive minimum\"\n data={schema.exclusiveMinimum}\n />\n <MetadataViewRow\n label=\"Exclusive maximum\"\n data={schema.exclusiveMaximum}\n />\n <MetadataViewRow label=\"Multiple of\" data={schema.multipleOf} />\n <MetadataViewRow\n label=\"Maximum number of items\"\n data={schema.maxItems}\n />\n <MetadataViewRow\n label=\"Minimum number of items\"\n data={schema.minItems}\n />\n <MetadataViewRow\n label=\"Maximum number of properties\"\n data={schema.maxProperties}\n />\n <MetadataViewRow\n label=\"Minimum number of properties\"\n data={schema.minProperties}\n />\n <MetadataViewRow label=\"Maximum Length\" data={schema.maxLength} />\n <MetadataViewRow label=\"Minimum Length\" data={schema.minLength} />\n <MetadataViewRow\n label=\"Items must be unique\"\n data={schema.uniqueItems}\n />\n </TableBody>\n </Table>\n </Paper>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Typography } from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React from 'react';\nimport { ChildView } from './ChildView';\nimport { MetadataView } from './MetadataView';\nimport { SchemaViewProps } from './types';\n\nexport function ArrayView({ path, depth, schema }: SchemaViewProps) {\n const itemDepth = depth + 1;\n const itemPath = path ? `${path}[]` : '[]';\n const itemSchema = schema.items;\n\n return (\n <>\n <Box marginBottom={4}>\n {schema.description && (\n <Box marginBottom={4}>\n <Typography variant=\"body1\">{schema.description}</Typography>\n </Box>\n )}\n <MetadataView schema={schema} />\n </Box>\n <Typography variant=\"overline\">Items</Typography>\n <ChildView\n lastChild\n path={itemPath}\n depth={itemDepth}\n schema={itemSchema as Schema | undefined}\n />\n {schema.additionalItems && schema.additionalItems !== true && (\n <>\n <Typography variant=\"overline\">Additional Items</Typography>\n <ChildView\n path={itemPath}\n depth={itemDepth}\n schema={schema.additionalItems}\n lastChild\n />\n </>\n )}\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Typography } from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React from 'react';\nimport { ChildView } from './ChildView';\n\nexport function MatchView({\n path,\n depth,\n schema,\n label,\n}: {\n path: string;\n depth: number;\n schema: Schema[];\n label: string;\n}) {\n return (\n <>\n <Typography variant=\"overline\">{label}</Typography>\n {schema.map((optionSchema, index) => (\n <ChildView\n key={index}\n path={`${path}/${index + 1}`}\n depth={depth + 1}\n schema={optionSchema}\n lastChild={index === schema.length - 1}\n />\n ))}\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport { ChildView } from './ChildView';\nimport { MetadataView } from './MetadataView';\nimport { SchemaViewProps } from './types';\n\nfunction isRequired(name: string, required?: boolean | string[]) {\n if (required === true) {\n return true;\n }\n if (Array.isArray(required)) {\n return required.includes(name);\n }\n return false;\n}\n\nexport function ObjectView({ path, depth, schema }: SchemaViewProps) {\n const properties = Object.entries(schema.properties ?? {});\n const patternProperties = Object.entries(schema.patternProperties ?? {});\n\n return (\n <>\n {depth > 0 && (\n <Box marginBottom={4}>\n {schema.description && (\n <Box marginBottom={4}>\n <Typography variant=\"body1\">{schema.description}</Typography>\n </Box>\n )}\n <MetadataView schema={schema} />\n </Box>\n )}\n {properties.length > 0 && (\n <>\n {depth > 0 && <Typography variant=\"overline\">Properties</Typography>}\n {properties.map(([name, propSchema], index) => (\n <ChildView\n key={name}\n path={path ? `${path}.${name}` : name}\n depth={depth + 1}\n schema={propSchema}\n lastChild={index === properties.length - 1}\n required={isRequired(name, schema.required)}\n />\n ))}\n </>\n )}\n {patternProperties.length > 0 && (\n <>\n {depth > 0 && (\n <Typography variant=\"overline\">Pattern Properties</Typography>\n )}\n {patternProperties.map(([name, propSchema], index) => (\n <ChildView\n key={name}\n path={path ? `${path}.<${name}>` : name}\n depth={depth + 1}\n schema={propSchema}\n lastChild={index === patternProperties.length - 1}\n required={isRequired(name, schema.required)}\n />\n ))}\n </>\n )}\n {schema.additionalProperties && schema.additionalProperties !== true && (\n <>\n <Typography variant=\"overline\">Additional Properties</Typography>\n <ChildView\n path={`${path}.*`}\n depth={depth + 1}\n schema={schema.additionalProperties}\n lastChild\n />\n </>\n )}\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport { MetadataView } from './MetadataView';\nimport { SchemaViewProps } from './types';\n\nexport function ScalarView({ schema }: SchemaViewProps) {\n return (\n <>\n {schema.description && (\n <Box marginBottom={4}>\n <Typography variant=\"body1\">{schema.description}</Typography>\n </Box>\n )}\n <MetadataView schema={schema} />\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport { ArrayView } from './ArrayView';\nimport { MatchView } from './MatchView';\nimport { ObjectView } from './ObjectView';\nimport { ScalarView } from './ScalarView';\nimport { SchemaViewProps } from './types';\n\nexport function SchemaView(props: SchemaViewProps) {\n const { schema } = props;\n if (schema.anyOf) {\n return (\n <MatchView\n {...props}\n schema={schema.anyOf}\n label=\"Any of the following\"\n />\n );\n }\n if (schema.oneOf) {\n return (\n <MatchView\n {...props}\n schema={schema.oneOf}\n label=\"One of the following\"\n />\n );\n }\n if (schema.allOf) {\n return (\n <MatchView\n {...props}\n schema={schema.allOf}\n label=\"All of the following\"\n />\n );\n }\n switch (schema.type) {\n case 'array':\n return <ArrayView {...props} />;\n case 'object':\n case undefined:\n return <ObjectView {...props} />;\n default:\n return <ScalarView {...props} />;\n }\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createStyles, alpha, withStyles } from '@material-ui/core';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { TreeItem, TreeItemProps, TreeView } from '@material-ui/lab';\nimport { Schema } from 'jsonschema';\nimport React, { ReactNode, useMemo, useRef } from 'react';\nimport { useScrollTargets } from '../ScrollTargetsContext';\n\nconst StyledTreeItem = withStyles(theme =>\n createStyles({\n label: {\n userSelect: 'none',\n },\n group: {\n marginLeft: 7,\n paddingLeft: theme.spacing(1),\n borderLeft: `1px solid ${alpha(theme.palette.text.primary, 0.15)}`,\n },\n }),\n)((props: TreeItemProps) => <TreeItem {...props} />);\n\nexport function createSchemaBrowserItems(\n expanded: string[],\n schema: Schema,\n path: string = '',\n depth: number = 0,\n): ReactNode {\n let matchArr;\n if (schema.anyOf) {\n matchArr = schema.anyOf;\n } else if (schema.oneOf) {\n matchArr = schema.oneOf;\n } else if (schema.allOf) {\n matchArr = schema.allOf;\n }\n if (matchArr) {\n return matchArr.map((childSchema, index) => {\n const childPath = `${path}/${index + 1}`;\n if (depth > 0) expanded.push(childPath);\n return (\n <StyledTreeItem\n key={childPath}\n nodeId={childPath}\n label={`<Option ${index + 1}>`}\n >\n {createSchemaBrowserItems(\n expanded,\n childSchema,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>\n );\n });\n }\n\n switch (schema.type) {\n case 'array': {\n const childPath = `${path}[]`;\n if (depth > 0) expanded.push(childPath);\n return (\n <StyledTreeItem nodeId={childPath} label=\"[]\">\n {schema.items &&\n createSchemaBrowserItems(\n expanded,\n schema.items as Schema,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>\n );\n }\n case 'object':\n case undefined: {\n const children = [];\n\n if (schema.properties) {\n children.push(\n ...Object.entries(schema.properties).map(([name, childSchema]) => {\n const childPath = path ? `${path}.${name}` : name;\n if (depth > 0) expanded.push(childPath);\n return (\n <StyledTreeItem key={childPath} nodeId={childPath} label={name}>\n {createSchemaBrowserItems(\n expanded,\n childSchema,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>\n );\n }),\n );\n }\n\n if (schema.patternProperties) {\n children.push(\n ...Object.entries(schema.patternProperties).map(\n ([name, childSchema]) => {\n const childPath = `${path}.<${name}>`;\n if (depth > 0) expanded.push(childPath);\n return (\n <StyledTreeItem\n key={childPath}\n nodeId={childPath}\n label={`<${name}>`}\n >\n {createSchemaBrowserItems(\n expanded,\n childSchema,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>\n );\n },\n ),\n );\n }\n\n if (schema.additionalProperties && schema.additionalProperties !== true) {\n const childPath = `${path}.*`;\n if (depth > 0) expanded.push(childPath);\n children.push(\n <StyledTreeItem key={childPath} nodeId={childPath} label=\"*\">\n {createSchemaBrowserItems(\n expanded,\n schema.additionalProperties,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>,\n );\n }\n\n return <>{children}</>;\n }\n\n default:\n return null;\n }\n}\n\nexport function SchemaBrowser({ schema }: { schema: Schema }) {\n const scroll = useScrollTargets();\n const expandedRef = useRef<string[]>([]);\n const data = useMemo(() => {\n const expanded = new Array<string>();\n\n const items = createSchemaBrowserItems(expanded, schema);\n\n return { items, expanded };\n }, [schema]);\n\n if (!scroll) {\n throw new Error('No scroll handler available');\n }\n\n const handleToggle = (_event: unknown, expanded: string[]) => {\n expandedRef.current = expanded;\n };\n\n const handleSelect = (_event: unknown, nodeId: string) => {\n if (expandedRef.current.includes(nodeId)) {\n scroll.scrollTo(nodeId);\n }\n };\n\n return (\n <TreeView\n defaultExpanded={data.expanded}\n defaultCollapseIcon={<ExpandMoreIcon />}\n defaultExpandIcon={<ChevronRightIcon />}\n onNodeToggle={handleToggle}\n onNodeSelect={handleSelect}\n >\n {data.items}\n </TreeView>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Paper } from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React from 'react';\nimport { SchemaView } from '../SchemaView';\nimport { SchemaBrowser } from '../SchemaBrowser';\nimport { ScrollTargetsProvider } from '../ScrollTargetsContext/ScrollTargetsContext';\n\nexport interface SchemaViewerProps {\n schema: Schema;\n}\n\nexport const SchemaViewer = ({ schema }: SchemaViewerProps) => {\n return (\n <Box flex=\"1\" position=\"relative\">\n <Box\n clone\n position=\"absolute\"\n display=\"flex\"\n flexDirection=\"row\"\n flexWrap=\"nowrap\"\n maxHeight=\"100%\"\n >\n <Paper elevation={3}>\n <ScrollTargetsProvider>\n <Box padding={1} overflow=\"auto\" width={300}>\n <SchemaBrowser schema={schema} />\n </Box>\n\n <Box flex=\"1\" overflow=\"auto\">\n <SchemaView schema={schema} path=\"\" depth={0} />\n </Box>\n </ScrollTargetsProvider>\n </Paper>\n </Box>\n </Box>\n );\n};\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React, { useMemo } from 'react';\nimport useObservable from 'react-use/lib/useObservable';\nimport { configSchemaApiRef } from '../../api';\nimport { SchemaViewer } from '../SchemaViewer';\nimport { Typography } from '@material-ui/core';\n\nimport { Header, Page, Content, Progress } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\n\nexport const ConfigSchemaPage = () => {\n const configSchemaApi = useApi(configSchemaApiRef);\n const schemaResult = useObservable(\n useMemo(() => configSchemaApi.schema$(), [configSchemaApi]),\n );\n\n let content;\n if (schemaResult) {\n if (schemaResult.schema) {\n content = <SchemaViewer schema={schemaResult.schema} />;\n } else {\n content = (\n <Typography variant=\"h4\">No configuration schema available</Typography>\n );\n }\n } else {\n content = <Progress />;\n }\n\n return (\n <Page themeId=\"tool\">\n <Header title=\"Configuration Reference\" />\n <Content stretch>{content}</Content>\n </Page>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-8fca4f13.esm.js","sources":["../../src/components/ScrollTargetsContext/ScrollTargetsContext.tsx","../../src/components/SchemaView/ChildView.tsx","../../src/components/SchemaView/MetadataView.tsx","../../src/components/SchemaView/ArrayView.tsx","../../src/components/SchemaView/MatchView.tsx","../../src/components/SchemaView/ObjectView.tsx","../../src/components/SchemaView/ScalarView.tsx","../../src/components/SchemaView/SchemaView.tsx","../../src/components/SchemaBrowser/SchemaBrowser.tsx","../../src/components/SchemaViewer/SchemaViewer.tsx","../../src/components/ConfigSchemaPage/ConfigSchemaPage.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { createContext, ReactNode, useContext } from 'react';\n\nclass ScrollTargetsForwarder {\n private readonly listeners = new Map<string, () => void>();\n\n setScrollListener(id: string, listener: () => void): () => void {\n this.listeners.set(id, listener);\n\n return () => {\n if (this.listeners.get(id) === listener) {\n this.listeners.delete(id);\n }\n };\n }\n\n scrollTo(id: string) {\n this.listeners.get(id)?.();\n }\n}\n\nconst ScrollTargetsContext = createContext<ScrollTargetsForwarder | undefined>(\n undefined,\n);\n\nexport function ScrollTargetsProvider({ children }: { children: ReactNode }) {\n return (\n <ScrollTargetsContext.Provider\n value={new ScrollTargetsForwarder()}\n children={children}\n />\n );\n}\n\nexport function useScrollTargets() {\n return useContext(ScrollTargetsContext);\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { JsonValue } from '@backstage/types';\nimport { Box, Chip, Divider, makeStyles, Typography } from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React, { useEffect, useRef } from 'react';\nimport { useScrollTargets } from '../ScrollTargetsContext/ScrollTargetsContext';\nimport { SchemaView } from './SchemaView';\n\nexport interface MetadataViewRowProps {\n label: string;\n text?: string;\n data?: JsonValue;\n}\n\nfunction titleVariant(depth: number) {\n if (depth <= 1) {\n return 'h2';\n } else if (depth === 2) {\n return 'h3';\n } else if (depth === 3) {\n return 'h4';\n } else if (depth === 4) {\n return 'h5';\n }\n return 'h6';\n}\n\nconst useChildViewStyles = makeStyles(theme => ({\n title: {\n marginBottom: 0,\n },\n chip: {\n marginLeft: theme.spacing(1),\n marginRight: 0,\n marginBottom: 0,\n },\n}));\n\nexport function ChildView({\n path,\n depth,\n schema,\n required,\n lastChild,\n}: {\n path: string;\n depth: number;\n schema?: Schema;\n required?: boolean;\n lastChild?: boolean;\n}) {\n const classes = useChildViewStyles();\n const titleRef = useRef<HTMLElement>(null);\n const scroll = useScrollTargets();\n\n useEffect(() => {\n return scroll?.setScrollListener(path, () => {\n titleRef.current?.scrollIntoView({ behavior: 'smooth' });\n });\n }, [scroll, path]);\n\n const chips = new Array<JSX.Element>();\n const chipProps = { size: 'small' as const, classes: { root: classes.chip } };\n\n if (required) {\n chips.push(\n <Chip label=\"required\" color=\"default\" key=\"required\" {...chipProps} />,\n );\n }\n\n const visibility = (schema as { visibility?: string })?.visibility;\n if (visibility === 'frontend') {\n chips.push(\n <Chip label=\"frontend\" color=\"primary\" key=\"visibility\" {...chipProps} />,\n );\n } else if (visibility === 'secret') {\n chips.push(\n <Chip label=\"secret\" color=\"secondary\" key=\"visibility\" {...chipProps} />,\n );\n }\n\n return (\n <Box paddingBottom={lastChild ? 4 : 8} display=\"flex\" flexDirection=\"row\">\n <Divider orientation=\"vertical\" flexItem />\n <Box paddingLeft={2} flex={1}>\n <Box\n display=\"flex\"\n flexDirection=\"row\"\n marginBottom={2}\n alignItems=\"center\"\n >\n <Typography\n ref={titleRef}\n variant={titleVariant(depth)}\n classes={{ root: classes.title }}\n >\n {path}\n </Typography>\n {chips.length > 0 && <Box marginLeft={1} />}\n {chips}\n </Box>\n {schema && (\n <SchemaView path={path} depth={depth} schema={schema as Schema} />\n )}\n </Box>\n </Box>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { JsonValue } from '@backstage/types';\nimport {\n Paper,\n Table,\n TableBody,\n TableCell,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React from 'react';\n\nexport interface MetadataViewRowProps {\n label: string;\n text?: string;\n data?: JsonValue;\n}\n\nexport function MetadataViewRow({ label, text, data }: MetadataViewRowProps) {\n if (text === undefined && data === undefined) {\n return null;\n }\n return (\n <TableRow>\n <TableCell style={{ width: 160 }}>\n <Typography variant=\"body1\" noWrap style={{ fontWeight: 900 }}>\n {label}\n </Typography>\n </TableCell>\n <TableCell>\n <Typography variant=\"body1\">\n {data ? JSON.stringify(data) : text}\n </Typography>\n </TableCell>\n </TableRow>\n );\n}\n\nexport function MetadataView({ schema }: { schema: Schema }) {\n return (\n <Paper variant=\"outlined\" square style={{ width: '100%' }}>\n <Table size=\"small\">\n <TableBody>\n <MetadataViewRow label=\"Type\" data={schema.type} />\n <MetadataViewRow label=\"Allowed values\" data={schema.enum} />\n {schema.additionalProperties === true && (\n <MetadataViewRow label=\"Additional Properties\" text=\"true\" />\n )}\n {schema.additionalItems === true && (\n <MetadataViewRow label=\"Additional Items\" text=\"true\" />\n )}\n <MetadataViewRow label=\"Format\" text={schema.format} />\n <MetadataViewRow\n label=\"Pattern\"\n text={schema.pattern && String(schema.pattern)}\n />\n <MetadataViewRow label=\"Minimum\" data={schema.minimum} />\n <MetadataViewRow label=\"Maximum\" data={schema.maximum} />\n <MetadataViewRow\n label=\"Exclusive minimum\"\n data={schema.exclusiveMinimum}\n />\n <MetadataViewRow\n label=\"Exclusive maximum\"\n data={schema.exclusiveMaximum}\n />\n <MetadataViewRow label=\"Multiple of\" data={schema.multipleOf} />\n <MetadataViewRow\n label=\"Maximum number of items\"\n data={schema.maxItems}\n />\n <MetadataViewRow\n label=\"Minimum number of items\"\n data={schema.minItems}\n />\n <MetadataViewRow\n label=\"Maximum number of properties\"\n data={schema.maxProperties}\n />\n <MetadataViewRow\n label=\"Minimum number of properties\"\n data={schema.minProperties}\n />\n <MetadataViewRow label=\"Maximum Length\" data={schema.maxLength} />\n <MetadataViewRow label=\"Minimum Length\" data={schema.minLength} />\n <MetadataViewRow\n label=\"Items must be unique\"\n data={schema.uniqueItems}\n />\n </TableBody>\n </Table>\n </Paper>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Typography } from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React from 'react';\nimport { ChildView } from './ChildView';\nimport { MetadataView } from './MetadataView';\nimport { SchemaViewProps } from './types';\n\nexport function ArrayView({ path, depth, schema }: SchemaViewProps) {\n const itemDepth = depth + 1;\n const itemPath = path ? `${path}[]` : '[]';\n const itemSchema = schema.items;\n\n return (\n <>\n <Box marginBottom={4}>\n {schema.description && (\n <Box marginBottom={4}>\n <Typography variant=\"body1\">{schema.description}</Typography>\n </Box>\n )}\n <MetadataView schema={schema} />\n </Box>\n <Typography variant=\"overline\">Items</Typography>\n <ChildView\n lastChild\n path={itemPath}\n depth={itemDepth}\n schema={itemSchema as Schema | undefined}\n />\n {schema.additionalItems && schema.additionalItems !== true && (\n <>\n <Typography variant=\"overline\">Additional Items</Typography>\n <ChildView\n path={itemPath}\n depth={itemDepth}\n schema={schema.additionalItems}\n lastChild\n />\n </>\n )}\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Typography } from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React from 'react';\nimport { ChildView } from './ChildView';\n\nexport function MatchView({\n path,\n depth,\n schema,\n label,\n}: {\n path: string;\n depth: number;\n schema: Schema[];\n label: string;\n}) {\n return (\n <>\n <Typography variant=\"overline\">{label}</Typography>\n {schema.map((optionSchema, index) => (\n <ChildView\n key={index}\n path={`${path}/${index + 1}`}\n depth={depth + 1}\n schema={optionSchema}\n lastChild={index === schema.length - 1}\n />\n ))}\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport { ChildView } from './ChildView';\nimport { MetadataView } from './MetadataView';\nimport { SchemaViewProps } from './types';\n\nfunction isRequired(name: string, required?: boolean | string[]) {\n if (required === true) {\n return true;\n }\n if (Array.isArray(required)) {\n return required.includes(name);\n }\n return false;\n}\n\nexport function ObjectView({ path, depth, schema }: SchemaViewProps) {\n const properties = Object.entries(schema.properties ?? {});\n const patternProperties = Object.entries(schema.patternProperties ?? {});\n\n return (\n <>\n {depth > 0 && (\n <Box marginBottom={4}>\n {schema.description && (\n <Box marginBottom={4}>\n <Typography variant=\"body1\">{schema.description}</Typography>\n </Box>\n )}\n <MetadataView schema={schema} />\n </Box>\n )}\n {properties.length > 0 && (\n <>\n {depth > 0 && <Typography variant=\"overline\">Properties</Typography>}\n {properties.map(([name, propSchema], index) => (\n <ChildView\n key={name}\n path={path ? `${path}.${name}` : name}\n depth={depth + 1}\n schema={propSchema}\n lastChild={index === properties.length - 1}\n required={isRequired(name, schema.required)}\n />\n ))}\n </>\n )}\n {patternProperties.length > 0 && (\n <>\n {depth > 0 && (\n <Typography variant=\"overline\">Pattern Properties</Typography>\n )}\n {patternProperties.map(([name, propSchema], index) => (\n <ChildView\n key={name}\n path={path ? `${path}.<${name}>` : name}\n depth={depth + 1}\n schema={propSchema}\n lastChild={index === patternProperties.length - 1}\n required={isRequired(name, schema.required)}\n />\n ))}\n </>\n )}\n {schema.additionalProperties && schema.additionalProperties !== true && (\n <>\n <Typography variant=\"overline\">Additional Properties</Typography>\n <ChildView\n path={`${path}.*`}\n depth={depth + 1}\n schema={schema.additionalProperties}\n lastChild\n />\n </>\n )}\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Typography } from '@material-ui/core';\nimport React from 'react';\nimport { MetadataView } from './MetadataView';\nimport { SchemaViewProps } from './types';\n\nexport function ScalarView({ schema }: SchemaViewProps) {\n return (\n <>\n {schema.description && (\n <Box marginBottom={4}>\n <Typography variant=\"body1\">{schema.description}</Typography>\n </Box>\n )}\n <MetadataView schema={schema} />\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport { ArrayView } from './ArrayView';\nimport { MatchView } from './MatchView';\nimport { ObjectView } from './ObjectView';\nimport { ScalarView } from './ScalarView';\nimport { SchemaViewProps } from './types';\n\nexport function SchemaView(props: SchemaViewProps) {\n const { schema } = props;\n if (schema.anyOf) {\n return (\n <MatchView\n {...props}\n schema={schema.anyOf}\n label=\"Any of the following\"\n />\n );\n }\n if (schema.oneOf) {\n return (\n <MatchView\n {...props}\n schema={schema.oneOf}\n label=\"One of the following\"\n />\n );\n }\n if (schema.allOf) {\n return (\n <MatchView\n {...props}\n schema={schema.allOf}\n label=\"All of the following\"\n />\n );\n }\n switch (schema.type) {\n case 'array':\n return <ArrayView {...props} />;\n case 'object':\n case undefined:\n return <ObjectView {...props} />;\n default:\n return <ScalarView {...props} />;\n }\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createStyles, alpha, withStyles } from '@material-ui/core';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport { TreeItem, TreeItemProps, TreeView } from '@material-ui/lab';\nimport { Schema } from 'jsonschema';\nimport React, { ReactNode, useMemo, useRef } from 'react';\nimport { useScrollTargets } from '../ScrollTargetsContext';\n\nconst StyledTreeItem = withStyles(theme =>\n createStyles({\n label: {\n userSelect: 'none',\n },\n group: {\n marginLeft: 7,\n paddingLeft: theme.spacing(1),\n borderLeft: `1px solid ${alpha(theme.palette.text.primary, 0.15)}`,\n },\n }),\n)((props: TreeItemProps) => <TreeItem {...props} />);\n\nexport function createSchemaBrowserItems(\n expanded: string[],\n schema: Schema,\n path: string = '',\n depth: number = 0,\n): ReactNode {\n let matchArr;\n if (schema.anyOf) {\n matchArr = schema.anyOf;\n } else if (schema.oneOf) {\n matchArr = schema.oneOf;\n } else if (schema.allOf) {\n matchArr = schema.allOf;\n }\n if (matchArr) {\n return matchArr.map((childSchema, index) => {\n const childPath = `${path}/${index + 1}`;\n if (depth > 0) expanded.push(childPath);\n return (\n <StyledTreeItem\n key={childPath}\n nodeId={childPath}\n label={`<Option ${index + 1}>`}\n >\n {createSchemaBrowserItems(\n expanded,\n childSchema,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>\n );\n });\n }\n\n switch (schema.type) {\n case 'array': {\n const childPath = `${path}[]`;\n if (depth > 0) expanded.push(childPath);\n return (\n <StyledTreeItem nodeId={childPath} label=\"[]\">\n {schema.items &&\n createSchemaBrowserItems(\n expanded,\n schema.items as Schema,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>\n );\n }\n case 'object':\n case undefined: {\n const children = [];\n\n if (schema.properties) {\n children.push(\n ...Object.entries(schema.properties).map(([name, childSchema]) => {\n const childPath = path ? `${path}.${name}` : name;\n if (depth > 0) expanded.push(childPath);\n return (\n <StyledTreeItem key={childPath} nodeId={childPath} label={name}>\n {createSchemaBrowserItems(\n expanded,\n childSchema,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>\n );\n }),\n );\n }\n\n if (schema.patternProperties) {\n children.push(\n ...Object.entries(schema.patternProperties).map(\n ([name, childSchema]) => {\n const childPath = `${path}.<${name}>`;\n if (depth > 0) expanded.push(childPath);\n return (\n <StyledTreeItem\n key={childPath}\n nodeId={childPath}\n label={`<${name}>`}\n >\n {createSchemaBrowserItems(\n expanded,\n childSchema,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>\n );\n },\n ),\n );\n }\n\n if (schema.additionalProperties && schema.additionalProperties !== true) {\n const childPath = `${path}.*`;\n if (depth > 0) expanded.push(childPath);\n children.push(\n <StyledTreeItem key={childPath} nodeId={childPath} label=\"*\">\n {createSchemaBrowserItems(\n expanded,\n schema.additionalProperties,\n childPath,\n depth + 1,\n )}\n </StyledTreeItem>,\n );\n }\n\n return <>{children}</>;\n }\n\n default:\n return null;\n }\n}\n\nexport function SchemaBrowser({ schema }: { schema: Schema }) {\n const scroll = useScrollTargets();\n const expandedRef = useRef<string[]>([]);\n const data = useMemo(() => {\n const expanded = new Array<string>();\n\n const items = createSchemaBrowserItems(expanded, schema);\n\n return { items, expanded };\n }, [schema]);\n\n if (!scroll) {\n throw new Error('No scroll handler available');\n }\n\n const handleToggle = (_event: unknown, expanded: string[]) => {\n expandedRef.current = expanded;\n };\n\n const handleSelect = (_event: unknown, nodeId: string) => {\n if (expandedRef.current.includes(nodeId)) {\n scroll.scrollTo(nodeId);\n }\n };\n\n return (\n <TreeView\n defaultExpanded={data.expanded}\n defaultCollapseIcon={<ExpandMoreIcon />}\n defaultExpandIcon={<ChevronRightIcon />}\n onNodeToggle={handleToggle}\n onNodeSelect={handleSelect}\n >\n {data.items}\n </TreeView>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Box, Paper } from '@material-ui/core';\nimport { Schema } from 'jsonschema';\nimport React from 'react';\nimport { SchemaView } from '../SchemaView';\nimport { SchemaBrowser } from '../SchemaBrowser';\nimport { ScrollTargetsProvider } from '../ScrollTargetsContext/ScrollTargetsContext';\n\nexport interface SchemaViewerProps {\n schema: Schema;\n}\n\nexport const SchemaViewer = ({ schema }: SchemaViewerProps) => {\n return (\n <Box flex=\"1\" position=\"relative\">\n <Box\n clone\n position=\"absolute\"\n display=\"flex\"\n flexDirection=\"row\"\n flexWrap=\"nowrap\"\n maxHeight=\"100%\"\n >\n <Paper elevation={3}>\n <ScrollTargetsProvider>\n <Box padding={1} overflow=\"auto\" width={300}>\n <SchemaBrowser schema={schema} />\n </Box>\n\n <Box flex=\"1\" overflow=\"auto\">\n <SchemaView schema={schema} path=\"\" depth={0} />\n </Box>\n </ScrollTargetsProvider>\n </Paper>\n </Box>\n </Box>\n );\n};\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React, { useMemo } from 'react';\nimport useObservable from 'react-use/lib/useObservable';\nimport { configSchemaApiRef } from '../../api';\nimport { SchemaViewer } from '../SchemaViewer';\nimport { Typography } from '@material-ui/core';\n\nimport { Header, Page, Content, Progress } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\n\nexport const ConfigSchemaPage = () => {\n const configSchemaApi = useApi(configSchemaApiRef);\n const schemaResult = useObservable(\n useMemo(() => configSchemaApi.schema$(), [configSchemaApi]),\n );\n\n let content;\n if (schemaResult) {\n if (schemaResult.schema) {\n content = <SchemaViewer schema={schemaResult.schema} />;\n } else {\n content = (\n <Typography variant=\"h4\">No configuration schema available</Typography>\n );\n }\n } else {\n content = <Progress />;\n }\n\n return (\n <Page themeId=\"tool\">\n <Header title=\"Configuration Reference\" />\n <Content stretch>{content}</Content>\n </Page>\n );\n};\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ declare class StaticSchemaLoader implements ConfigSchemaApi {
|
|
|
27
27
|
|
|
28
28
|
declare const configSchemaPlugin: _backstage_core_plugin_api.BackstagePlugin<{
|
|
29
29
|
root: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
30
|
-
}, {}>;
|
|
30
|
+
}, {}, {}>;
|
|
31
31
|
declare const ConfigSchemaPage: () => JSX.Element;
|
|
32
32
|
|
|
33
33
|
export { ConfigSchemaApi, ConfigSchemaPage, StaticSchemaLoader, configSchemaApiRef, configSchemaPlugin };
|
package/dist/index.esm.js
CHANGED
|
@@ -14,7 +14,10 @@ class StaticSchemaLoader {
|
|
|
14
14
|
}
|
|
15
15
|
schema$() {
|
|
16
16
|
return new ObservableImpl((subscriber) => {
|
|
17
|
-
this.fetchSchema().then(
|
|
17
|
+
this.fetchSchema().then(
|
|
18
|
+
(schema) => subscriber.next({ schema }),
|
|
19
|
+
(error) => subscriber.error(error)
|
|
20
|
+
);
|
|
18
21
|
});
|
|
19
22
|
}
|
|
20
23
|
async fetchSchema() {
|
|
@@ -39,11 +42,13 @@ const configSchemaPlugin = createPlugin({
|
|
|
39
42
|
root: rootRouteRef
|
|
40
43
|
}
|
|
41
44
|
});
|
|
42
|
-
const ConfigSchemaPage = configSchemaPlugin.provide(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
const ConfigSchemaPage = configSchemaPlugin.provide(
|
|
46
|
+
createRoutableExtension({
|
|
47
|
+
name: "ConfigSchemaPage",
|
|
48
|
+
component: () => import('./esm/index-8fca4f13.esm.js').then((m) => m.ConfigSchemaPage),
|
|
49
|
+
mountPoint: rootRouteRef
|
|
50
|
+
})
|
|
51
|
+
);
|
|
47
52
|
|
|
48
53
|
export { ConfigSchemaPage, StaticSchemaLoader, configSchemaApiRef, configSchemaPlugin };
|
|
49
54
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/api/types.ts","../src/api/StaticSchemaLoader.ts","../src/routes.ts","../src/plugin.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Schema } from 'jsonschema';\nimport { createApiRef } from '@backstage/core-plugin-api';\nimport { Observable } from '@backstage/types';\n\nexport interface ConfigSchemaResult {\n schema?: Schema;\n}\n\nexport interface ConfigSchemaApi {\n schema$(): Observable<ConfigSchemaResult>;\n}\n\nexport const configSchemaApiRef = createApiRef<ConfigSchemaApi>({\n id: 'plugin.config-schema',\n});\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ObservableImpl from 'zen-observable';\nimport { ResponseError } from '@backstage/errors';\nimport { Schema } from 'jsonschema';\nimport { ConfigSchemaApi, ConfigSchemaResult } from './types';\nimport { Observable } from '@backstage/types';\n\nconst DEFAULT_URL = 'config-schema.json';\n\n/**\n * A ConfigSchemaApi implementation that loads the configuration from a URL.\n *\n * @public\n */\nexport class StaticSchemaLoader implements ConfigSchemaApi {\n private readonly url: string;\n\n constructor(options: { url?: string } = {}) {\n this.url = options?.url ?? DEFAULT_URL;\n }\n\n schema$(): Observable<ConfigSchemaResult> {\n return new ObservableImpl(subscriber => {\n this.fetchSchema().then(\n schema => subscriber.next({ schema }),\n error => subscriber.error(error),\n );\n });\n }\n\n private async fetchSchema(): Promise<undefined | Schema> {\n const res = await fetch(this.url);\n\n if (!res.ok) {\n if (res.status === 404) {\n return undefined;\n }\n\n throw await ResponseError.fromResponse(res);\n }\n\n return await res.json();\n }\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'config-schema',\n});\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { rootRouteRef } from './routes';\n\nimport {\n createPlugin,\n createRoutableExtension,\n} from '@backstage/core-plugin-api';\n\nexport const configSchemaPlugin = createPlugin({\n id: 'config-schema',\n routes: {\n root: rootRouteRef,\n },\n});\n\nexport const ConfigSchemaPage = configSchemaPlugin.provide(\n createRoutableExtension({\n name: 'ConfigSchemaPage',\n component: () =>\n import('./components/ConfigSchemaPage').then(m => m.ConfigSchemaPage),\n mountPoint: rootRouteRef,\n }),\n);\n"],"names":[],"mappings":";;;;AACY,MAAC,kBAAkB,GAAG,YAAY,CAAC;AAC/C,EAAE,EAAE,EAAE,sBAAsB;AAC5B,CAAC;;ACDD,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAClC,MAAM,kBAAkB,CAAC;AAChC,EAAE,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC;AACxF,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,OAAO,IAAI,cAAc,CAAC,CAAC,UAAU,KAAK;AAC9C,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/api/types.ts","../src/api/StaticSchemaLoader.ts","../src/routes.ts","../src/plugin.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Schema } from 'jsonschema';\nimport { createApiRef } from '@backstage/core-plugin-api';\nimport { Observable } from '@backstage/types';\n\nexport interface ConfigSchemaResult {\n schema?: Schema;\n}\n\nexport interface ConfigSchemaApi {\n schema$(): Observable<ConfigSchemaResult>;\n}\n\nexport const configSchemaApiRef = createApiRef<ConfigSchemaApi>({\n id: 'plugin.config-schema',\n});\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ObservableImpl from 'zen-observable';\nimport { ResponseError } from '@backstage/errors';\nimport { Schema } from 'jsonschema';\nimport { ConfigSchemaApi, ConfigSchemaResult } from './types';\nimport { Observable } from '@backstage/types';\n\nconst DEFAULT_URL = 'config-schema.json';\n\n/**\n * A ConfigSchemaApi implementation that loads the configuration from a URL.\n *\n * @public\n */\nexport class StaticSchemaLoader implements ConfigSchemaApi {\n private readonly url: string;\n\n constructor(options: { url?: string } = {}) {\n this.url = options?.url ?? DEFAULT_URL;\n }\n\n schema$(): Observable<ConfigSchemaResult> {\n return new ObservableImpl(subscriber => {\n this.fetchSchema().then(\n schema => subscriber.next({ schema }),\n error => subscriber.error(error),\n );\n });\n }\n\n private async fetchSchema(): Promise<undefined | Schema> {\n const res = await fetch(this.url);\n\n if (!res.ok) {\n if (res.status === 404) {\n return undefined;\n }\n\n throw await ResponseError.fromResponse(res);\n }\n\n return await res.json();\n }\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'config-schema',\n});\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { rootRouteRef } from './routes';\n\nimport {\n createPlugin,\n createRoutableExtension,\n} from '@backstage/core-plugin-api';\n\nexport const configSchemaPlugin = createPlugin({\n id: 'config-schema',\n routes: {\n root: rootRouteRef,\n },\n});\n\nexport const ConfigSchemaPage = configSchemaPlugin.provide(\n createRoutableExtension({\n name: 'ConfigSchemaPage',\n component: () =>\n import('./components/ConfigSchemaPage').then(m => m.ConfigSchemaPage),\n mountPoint: rootRouteRef,\n }),\n);\n"],"names":[],"mappings":";;;;AACY,MAAC,kBAAkB,GAAG,YAAY,CAAC;AAC/C,EAAE,EAAE,EAAE,sBAAsB;AAC5B,CAAC;;ACDD,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAClC,MAAM,kBAAkB,CAAC;AAChC,EAAE,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,GAAG,WAAW,CAAC;AACxF,GAAG;AACH,EAAE,OAAO,GAAG;AACZ,IAAI,OAAO,IAAI,cAAc,CAAC,CAAC,UAAU,KAAK;AAC9C,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI;AAC7B,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;AAC/C,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1C,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,MAAM,WAAW,GAAG;AACtB,IAAI,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACjB,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AAC9B,QAAQ,OAAO,KAAK,CAAC,CAAC;AACtB,OAAO;AACP,MAAM,MAAM,MAAM,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AAC5B,GAAG;AACH;;ACzBO,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,EAAE,EAAE,EAAE,eAAe;AACrB,CAAC,CAAC;;ACEU,MAAC,kBAAkB,GAAG,YAAY,CAAC;AAC/C,EAAE,EAAE,EAAE,eAAe;AACrB,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,YAAY;AACtB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,gBAAgB,GAAG,kBAAkB,CAAC,OAAO;AAC1D,EAAE,uBAAuB,CAAC;AAC1B,IAAI,IAAI,EAAE,kBAAkB;AAC5B,IAAI,SAAS,EAAE,MAAM,OAAO,6BAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;AAC5F,IAAI,UAAU,EAAE,YAAY;AAC5B,GAAG,CAAC;AACJ;;;;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-config-schema",
|
|
3
3
|
"description": "A Backstage plugin that lets you browse the configuration schema of your app",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.31-next.0",
|
|
5
5
|
"main": "dist/index.esm.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@backstage/config": "^1.0.1",
|
|
28
|
-
"@backstage/core-components": "^0.10.
|
|
29
|
-
"@backstage/core-plugin-api": "^1.0.
|
|
30
|
-
"@backstage/errors": "^1.1.0
|
|
31
|
-
"@backstage/theme": "^0.2.16
|
|
28
|
+
"@backstage/core-components": "^0.10.1-next.0",
|
|
29
|
+
"@backstage/core-plugin-api": "^1.0.5-next.0",
|
|
30
|
+
"@backstage/errors": "^1.1.0",
|
|
31
|
+
"@backstage/theme": "^0.2.16",
|
|
32
32
|
"@backstage/types": "^1.0.0",
|
|
33
33
|
"@material-ui/core": "^4.12.2",
|
|
34
34
|
"@material-ui/icons": "^4.9.1",
|
|
@@ -41,20 +41,20 @@
|
|
|
41
41
|
"react": "^16.13.1 || ^17.0.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@backstage/cli": "^0.18.
|
|
45
|
-
"@backstage/core-app-api": "^1.0.
|
|
46
|
-
"@backstage/dev-utils": "^1.0.
|
|
47
|
-
"@backstage/test-utils": "^1.1.
|
|
44
|
+
"@backstage/cli": "^0.18.1-next.0",
|
|
45
|
+
"@backstage/core-app-api": "^1.0.5-next.0",
|
|
46
|
+
"@backstage/dev-utils": "^1.0.5-next.0",
|
|
47
|
+
"@backstage/test-utils": "^1.1.3-next.0",
|
|
48
48
|
"@testing-library/jest-dom": "^5.10.1",
|
|
49
49
|
"@testing-library/react": "^12.1.3",
|
|
50
50
|
"@testing-library/user-event": "^14.0.0",
|
|
51
51
|
"@types/jest": "^26.0.7",
|
|
52
52
|
"@types/node": "^16.11.26",
|
|
53
53
|
"cross-fetch": "^3.1.5",
|
|
54
|
-
"msw": "^0.
|
|
54
|
+
"msw": "^0.44.0"
|
|
55
55
|
},
|
|
56
56
|
"files": [
|
|
57
57
|
"dist"
|
|
58
58
|
],
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "fc3229c49caf6eced02ed9516199015bf4682664"
|
|
60
60
|
}
|