@backstage/plugin-config-schema 0.1.30 → 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 CHANGED
@@ -1,5 +1,13 @@
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
+
3
11
  ## 0.1.30
4
12
 
5
13
  ### 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(void 0);
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(/* @__PURE__ */ React.createElement(Chip, {
83
- label: "required",
84
- color: "default",
85
- key: "required",
86
- ...chipProps
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(/* @__PURE__ */ React.createElement(Chip, {
92
- label: "frontend",
93
- color: "primary",
94
- key: "visibility",
95
- ...chipProps
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(/* @__PURE__ */ React.createElement(Chip, {
99
- label: "secret",
100
- color: "secondary",
101
- key: "visibility",
102
- ...chipProps
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((theme) => createStyles({
357
- label: {
358
- userSelect: "none"
359
- },
360
- group: {
361
- marginLeft: 7,
362
- paddingLeft: theme.spacing(1),
363
- borderLeft: `1px solid ${alpha(theme.palette.text.primary, 0.15)}`
364
- }
365
- }))((props) => /* @__PURE__ */ React.createElement(TreeItem, {
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(expanded, childSchema, childPath, depth + 1));
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(expanded, schema.items, childPath, depth + 1));
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(...Object.entries(schema.properties).map(([name, childSchema]) => {
404
- const childPath = path ? `${path}.${name}` : name;
405
- if (depth > 0)
406
- expanded.push(childPath);
407
- return /* @__PURE__ */ React.createElement(StyledTreeItem, {
408
- key: childPath,
409
- nodeId: childPath,
410
- label: name
411
- }, createSchemaBrowserItems(expanded, childSchema, childPath, depth + 1));
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(...Object.entries(schema.patternProperties).map(([name, childSchema]) => {
416
- const childPath = `${path}.<${name}>`;
417
- if (depth > 0)
418
- expanded.push(childPath);
419
- return /* @__PURE__ */ React.createElement(StyledTreeItem, {
420
- key: childPath,
421
- nodeId: childPath,
422
- label: `<${name}>`
423
- }, createSchemaBrowserItems(expanded, childSchema, childPath, depth + 1));
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(/* @__PURE__ */ React.createElement(StyledTreeItem, {
431
- key: childPath,
432
- nodeId: childPath,
433
- label: "*"
434
- }, createSchemaBrowserItems(expanded, schema.additionalProperties, childPath, depth + 1)));
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(useMemo(() => configSchemaApi.schema$(), [configSchemaApi]));
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-f3b4f759.esm.js.map
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((schema) => subscriber.next({ schema }), (error) => subscriber.error(error));
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(createRoutableExtension({
43
- name: "ConfigSchemaPage",
44
- component: () => import('./esm/index-f3b4f759.esm.js').then((m) => m.ConfigSchemaPage),
45
- mountPoint: rootRouteRef
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
@@ -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,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3G,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;;ACtBO,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,CAAC,uBAAuB,CAAC;AACnF,EAAE,IAAI,EAAE,kBAAkB;AAC1B,EAAE,SAAS,EAAE,MAAM,OAAO,6BAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;AAC1F,EAAE,UAAU,EAAE,YAAY;AAC1B,CAAC,CAAC;;;;"}
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.30",
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,8 +25,8 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@backstage/config": "^1.0.1",
28
- "@backstage/core-components": "^0.10.0",
29
- "@backstage/core-plugin-api": "^1.0.4",
28
+ "@backstage/core-components": "^0.10.1-next.0",
29
+ "@backstage/core-plugin-api": "^1.0.5-next.0",
30
30
  "@backstage/errors": "^1.1.0",
31
31
  "@backstage/theme": "^0.2.16",
32
32
  "@backstage/types": "^1.0.0",
@@ -41,10 +41,10 @@
41
41
  "react": "^16.13.1 || ^17.0.0"
42
42
  },
43
43
  "devDependencies": {
44
- "@backstage/cli": "^0.18.0",
45
- "@backstage/core-app-api": "^1.0.4",
46
- "@backstage/dev-utils": "^1.0.4",
47
- "@backstage/test-utils": "^1.1.2",
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",
@@ -56,5 +56,5 @@
56
56
  "files": [
57
57
  "dist"
58
58
  ],
59
- "gitHead": "999878d8f1ae30f6a15925816af2016cb9d717a1"
59
+ "gitHead": "fc3229c49caf6eced02ed9516199015bf4682664"
60
60
  }