@red-hat-developer-hub/backstage-plugin-orchestrator-backend 6.0.1 → 6.0.2
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,14 @@
|
|
|
1
1
|
### Dependencies
|
|
2
2
|
|
|
3
|
+
## 6.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 7f6ca8a: add filter by variables and nested variables
|
|
8
|
+
- Updated dependencies [c6b54ad]
|
|
9
|
+
- Updated dependencies [7f6ca8a]
|
|
10
|
+
- @red-hat-developer-hub/backstage-plugin-orchestrator-common@1.27.2
|
|
11
|
+
|
|
3
12
|
## 6.0.1
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -38,6 +38,9 @@ const supportedOperatorsByType = {
|
|
|
38
38
|
function isLogicalFilter(filter) {
|
|
39
39
|
return filter.filters !== void 0;
|
|
40
40
|
}
|
|
41
|
+
function isNestedFilter(filter) {
|
|
42
|
+
return filter.nested !== void 0;
|
|
43
|
+
}
|
|
41
44
|
function handleLogicalFilter(introspection, type, filter) {
|
|
42
45
|
if (!filter.operator) return "";
|
|
43
46
|
const subClauses = filter.filters.map(
|
|
@@ -45,6 +48,15 @@ function handleLogicalFilter(introspection, type, filter) {
|
|
|
45
48
|
);
|
|
46
49
|
return `${filter.operator.toLowerCase()}: {${subClauses.join(", ")}}`;
|
|
47
50
|
}
|
|
51
|
+
function handleNestedFilter(introspection, type, filter) {
|
|
52
|
+
const subClauses = buildFilterCondition(
|
|
53
|
+
introspection,
|
|
54
|
+
type,
|
|
55
|
+
filter.nested,
|
|
56
|
+
true
|
|
57
|
+
);
|
|
58
|
+
return `${filter.field}: {${subClauses}}`;
|
|
59
|
+
}
|
|
48
60
|
function handleBetweenOperator(filter) {
|
|
49
61
|
if (!Array.isArray(filter.value) || filter.value.length !== 2) {
|
|
50
62
|
throw new Error("Between operator requires an array of two elements");
|
|
@@ -82,10 +94,13 @@ function handleBinaryOperator(binaryFilter, fieldDef, type) {
|
|
|
82
94
|
binaryFilter.operator
|
|
83
95
|
)}: ${formattedValue}}`;
|
|
84
96
|
}
|
|
85
|
-
function buildFilterCondition(introspection, type, filters) {
|
|
97
|
+
function buildFilterCondition(introspection, type, filters, isNested) {
|
|
86
98
|
if (!filters) {
|
|
87
99
|
return "";
|
|
88
100
|
}
|
|
101
|
+
if (isNestedFilter(filters)) {
|
|
102
|
+
return handleNestedFilter(introspection, type, filters);
|
|
103
|
+
}
|
|
89
104
|
if (isLogicalFilter(filters)) {
|
|
90
105
|
return handleLogicalFilter(introspection, type, filters);
|
|
91
106
|
}
|
|
@@ -94,15 +109,18 @@ function buildFilterCondition(introspection, type, filters) {
|
|
|
94
109
|
`Unsupported operator ${filters.operator}. Supported operators are: ${supportedOperators.join(", ")}`
|
|
95
110
|
);
|
|
96
111
|
}
|
|
97
|
-
|
|
98
|
-
if (!
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
112
|
+
let fieldDef;
|
|
113
|
+
if (!isNested) {
|
|
114
|
+
fieldDef = introspection.find((f) => f.name === filters.field);
|
|
115
|
+
if (!fieldDef) {
|
|
116
|
+
throw new Error(`Can't find field "${filters.field}" definition`);
|
|
117
|
+
}
|
|
118
|
+
if (!isOperatorAllowedForField(filters.operator, fieldDef, type)) {
|
|
119
|
+
const allowedOperators = supportedOperatorsByType[fieldDef.type.name] || [];
|
|
120
|
+
throw new Error(
|
|
121
|
+
`Unsupported operator ${filters.operator} for field "${fieldDef.name}" of type "${fieldDef.type.name}". Allowed operators are: ${allowedOperators.join(", ")}`
|
|
122
|
+
);
|
|
123
|
+
}
|
|
106
124
|
}
|
|
107
125
|
switch (filters.operator) {
|
|
108
126
|
case backstagePluginOrchestratorCommon.FieldFilterOperatorEnum.IsNull:
|
|
@@ -147,6 +165,9 @@ function convertToBoolean(value) {
|
|
|
147
165
|
return false;
|
|
148
166
|
}
|
|
149
167
|
function formatValue(fieldName, fieldValue, fieldDef, type) {
|
|
168
|
+
if (!fieldDef) {
|
|
169
|
+
return `"${fieldValue}"`;
|
|
170
|
+
}
|
|
150
171
|
if (!isFieldFilterSupported) {
|
|
151
172
|
throw new Error(`Unsupported field type ${fieldDef.type.name}`);
|
|
152
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterBuilder.cjs.js","sources":["../../src/helpers/filterBuilder.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\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 {\n FieldFilter,\n FieldFilterOperatorEnum,\n Filter,\n IntrospectionField,\n LogicalFilter,\n TypeName,\n} from '@red-hat-developer-hub/backstage-plugin-orchestrator-common';\n\ntype ProcessType = 'ProcessDefinition' | 'ProcessInstance';\n\nconst supportedOperators = [\n FieldFilterOperatorEnum.Eq,\n FieldFilterOperatorEnum.Like,\n FieldFilterOperatorEnum.In,\n FieldFilterOperatorEnum.IsNull,\n FieldFilterOperatorEnum.Gt,\n FieldFilterOperatorEnum.Gte,\n FieldFilterOperatorEnum.Lt,\n FieldFilterOperatorEnum.Lte,\n FieldFilterOperatorEnum.Between,\n];\n\nconst supportedOperatorsByType: Record<TypeName, FieldFilterOperatorEnum[]> = {\n [TypeName.String]: [\n FieldFilterOperatorEnum.In,\n FieldFilterOperatorEnum.Like,\n FieldFilterOperatorEnum.IsNull,\n FieldFilterOperatorEnum.Eq,\n ],\n [TypeName.Id]: [\n FieldFilterOperatorEnum.In,\n FieldFilterOperatorEnum.IsNull,\n FieldFilterOperatorEnum.Eq,\n ],\n [TypeName.Date]: [\n FieldFilterOperatorEnum.IsNull,\n FieldFilterOperatorEnum.Eq,\n FieldFilterOperatorEnum.Gt,\n FieldFilterOperatorEnum.Gte,\n FieldFilterOperatorEnum.Lt,\n FieldFilterOperatorEnum.Lte,\n FieldFilterOperatorEnum.Between,\n ],\n};\n\nfunction isLogicalFilter(filter: Filter): filter is LogicalFilter {\n return (filter as LogicalFilter).filters !== undefined;\n}\n\nfunction handleLogicalFilter(\n introspection: IntrospectionField[],\n type: ProcessType,\n filter: LogicalFilter,\n): string {\n if (!filter.operator) return '';\n\n const subClauses = filter.filters.map(f =>\n buildFilterCondition(introspection, type, f),\n );\n\n return `${filter.operator.toLowerCase()}: {${subClauses.join(', ')}}`;\n}\n\nfunction handleBetweenOperator(filter: FieldFilter): string {\n if (!Array.isArray(filter.value) || filter.value.length !== 2) {\n throw new Error('Between operator requires an array of two elements');\n }\n return `${filter.field}: {${getGraphQLOperator(\n FieldFilterOperatorEnum.Between,\n )}: {from: \"${filter.value[0]}\", to: \"${filter.value[1]}\"}}`;\n}\n\nfunction handleIsNullOperator(filter: FieldFilter): string {\n return `${filter.field}: {${getGraphQLOperator(\n FieldFilterOperatorEnum.IsNull,\n )}: ${convertToBoolean(filter.value)}}`;\n}\n\nfunction isEnumFilter(\n fieldName: string,\n type: 'ProcessDefinition' | 'ProcessInstance',\n): boolean {\n if (type === 'ProcessInstance') {\n if (fieldName === 'state') {\n return true;\n }\n }\n return false;\n}\n\nfunction isValidEnumOperator(operator: FieldFilterOperatorEnum): boolean {\n return (\n operator === FieldFilterOperatorEnum.In ||\n operator === FieldFilterOperatorEnum.Eq\n );\n}\n\nfunction handleBinaryOperator(\n binaryFilter: FieldFilter,\n fieldDef: IntrospectionField,\n type: 'ProcessDefinition' | 'ProcessInstance',\n): string {\n if (isEnumFilter(binaryFilter.field, type)) {\n if (!isValidEnumOperator(binaryFilter.operator)) {\n throw new Error(\n `Invalid operator ${binaryFilter.operator} for enum field ${binaryFilter.field} filter`,\n );\n }\n }\n const formattedValue = Array.isArray(binaryFilter.value)\n ? `[${binaryFilter.value\n .map(v => formatValue(binaryFilter.field, v, fieldDef, type))\n .join(', ')}]`\n : formatValue(binaryFilter.field, binaryFilter.value, fieldDef, type);\n return `${binaryFilter.field}: {${getGraphQLOperator(\n binaryFilter.operator,\n )}: ${formattedValue}}`;\n}\n\nexport function buildFilterCondition(\n introspection: IntrospectionField[],\n type: ProcessType,\n filters?: Filter,\n): string {\n if (!filters) {\n return '';\n }\n\n if (isLogicalFilter(filters)) {\n return handleLogicalFilter(introspection, type, filters);\n }\n\n if (!isOperatorSupported(filters.operator)) {\n throw new Error(\n `Unsupported operator ${filters.operator}. Supported operators are: ${supportedOperators.join(', ')}`,\n );\n }\n\n const fieldDef = introspection.find(f => f.name === filters.field);\n if (!fieldDef) {\n throw new Error(`Can't find field \"${filters.field}\" definition`);\n }\n\n if (!isOperatorAllowedForField(filters.operator, fieldDef, type)) {\n const allowedOperators = supportedOperatorsByType[fieldDef.type.name] || [];\n throw new Error(\n `Unsupported operator ${filters.operator} for field \"${fieldDef.name}\" of type \"${fieldDef.type.name}\". Allowed operators are: ${allowedOperators.join(', ')}`,\n );\n }\n\n switch (filters.operator) {\n case FieldFilterOperatorEnum.IsNull:\n return handleIsNullOperator(filters);\n case FieldFilterOperatorEnum.Between:\n return handleBetweenOperator(filters);\n case FieldFilterOperatorEnum.Eq:\n case FieldFilterOperatorEnum.Like:\n case FieldFilterOperatorEnum.In:\n case FieldFilterOperatorEnum.Gt:\n case FieldFilterOperatorEnum.Gte:\n case FieldFilterOperatorEnum.Lt:\n case FieldFilterOperatorEnum.Lte:\n return handleBinaryOperator(filters, fieldDef, type);\n\n default:\n throw new Error(`Can't build filter condition`);\n }\n}\n\nfunction isOperatorSupported(operator: FieldFilterOperatorEnum): boolean {\n return supportedOperators.includes(operator);\n}\n\nfunction isFieldFilterSupported(fieldDef: IntrospectionField): boolean {\n return fieldDef?.type.name === TypeName.String;\n}\n\nexport function isOperatorAllowedForField(\n operator: FieldFilterOperatorEnum,\n fieldDef: IntrospectionField,\n type: ProcessType,\n): boolean {\n if (isEnumFilter(fieldDef.name, type) && isValidEnumOperator(operator)) {\n return true;\n }\n\n const allowedForType = supportedOperatorsByType[fieldDef.type.name];\n return allowedForType ? allowedForType.includes(operator) : false;\n}\n\nfunction convertToBoolean(value: any): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n return value.toLowerCase() === 'true';\n }\n if (typeof value === 'number') {\n return value === 1;\n }\n return false; // Default to false for unsupported types\n}\n\nfunction formatValue(\n fieldName: string,\n fieldValue: any,\n fieldDef: IntrospectionField,\n type: ProcessType,\n): string {\n if (!isFieldFilterSupported) {\n throw new Error(`Unsupported field type ${fieldDef.type.name}`);\n }\n\n if (isEnumFilter(fieldName, type)) {\n return `${fieldValue}`;\n }\n if (\n fieldDef.type.name === TypeName.String ||\n fieldDef.type.name === TypeName.Id ||\n fieldDef.type.name === TypeName.Date\n ) {\n return `\"${fieldValue}\"`;\n }\n throw new Error(\n `Failed to format value for ${fieldName} ${fieldValue} with type ${fieldDef.type.name}`,\n );\n}\n\nfunction getGraphQLOperator(operator: FieldFilterOperatorEnum): string {\n switch (operator) {\n case 'EQ':\n return 'equal';\n case 'LIKE':\n return 'like';\n case 'IN':\n return 'in';\n case 'IS_NULL':\n return 'isNull';\n case 'GT':\n return 'greaterThan';\n case 'GTE':\n return 'greaterThanEqual';\n case 'LT':\n return 'lessThan';\n case 'LTE':\n return 'lessThanEqual';\n case 'BETWEEN':\n return 'between';\n default:\n throw new Error(`Operation \"${operator}\" not supported`);\n }\n}\n"],"names":["FieldFilterOperatorEnum","TypeName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filterBuilder.cjs.js","sources":["../../src/helpers/filterBuilder.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\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 {\n FieldFilter,\n FieldFilterOperatorEnum,\n Filter,\n IntrospectionField,\n LogicalFilter,\n NestedFilter,\n TypeName,\n} from '@red-hat-developer-hub/backstage-plugin-orchestrator-common';\n\ntype ProcessType = 'ProcessDefinition' | 'ProcessInstance';\n\nconst supportedOperators = [\n FieldFilterOperatorEnum.Eq,\n FieldFilterOperatorEnum.Like,\n FieldFilterOperatorEnum.In,\n FieldFilterOperatorEnum.IsNull,\n FieldFilterOperatorEnum.Gt,\n FieldFilterOperatorEnum.Gte,\n FieldFilterOperatorEnum.Lt,\n FieldFilterOperatorEnum.Lte,\n FieldFilterOperatorEnum.Between,\n];\n\nconst supportedOperatorsByType: Record<TypeName, FieldFilterOperatorEnum[]> = {\n [TypeName.String]: [\n FieldFilterOperatorEnum.In,\n FieldFilterOperatorEnum.Like,\n FieldFilterOperatorEnum.IsNull,\n FieldFilterOperatorEnum.Eq,\n ],\n [TypeName.Id]: [\n FieldFilterOperatorEnum.In,\n FieldFilterOperatorEnum.IsNull,\n FieldFilterOperatorEnum.Eq,\n ],\n [TypeName.Date]: [\n FieldFilterOperatorEnum.IsNull,\n FieldFilterOperatorEnum.Eq,\n FieldFilterOperatorEnum.Gt,\n FieldFilterOperatorEnum.Gte,\n FieldFilterOperatorEnum.Lt,\n FieldFilterOperatorEnum.Lte,\n FieldFilterOperatorEnum.Between,\n ],\n};\n\nfunction isLogicalFilter(filter: Filter): filter is LogicalFilter {\n return (filter as LogicalFilter).filters !== undefined;\n}\n\nfunction isNestedFilter(filter: Filter): filter is NestedFilter {\n return (filter as NestedFilter).nested !== undefined;\n}\n\nfunction handleLogicalFilter(\n introspection: IntrospectionField[],\n type: ProcessType,\n filter: LogicalFilter,\n): string {\n if (!filter.operator) return '';\n\n const subClauses = filter.filters.map(f =>\n buildFilterCondition(introspection, type, f),\n );\n\n return `${filter.operator.toLowerCase()}: {${subClauses.join(', ')}}`;\n}\n\nfunction handleNestedFilter(\n introspection: IntrospectionField[],\n type: ProcessType,\n filter: NestedFilter,\n): string {\n const subClauses = buildFilterCondition(\n introspection,\n type,\n filter.nested,\n true,\n );\n\n return `${filter.field}: {${subClauses}}`;\n}\n\nfunction handleBetweenOperator(filter: FieldFilter): string {\n if (!Array.isArray(filter.value) || filter.value.length !== 2) {\n throw new Error('Between operator requires an array of two elements');\n }\n return `${filter.field}: {${getGraphQLOperator(\n FieldFilterOperatorEnum.Between,\n )}: {from: \"${filter.value[0]}\", to: \"${filter.value[1]}\"}}`;\n}\n\nfunction handleIsNullOperator(filter: FieldFilter): string {\n return `${filter.field}: {${getGraphQLOperator(\n FieldFilterOperatorEnum.IsNull,\n )}: ${convertToBoolean(filter.value)}}`;\n}\n\nfunction isEnumFilter(\n fieldName: string,\n type: 'ProcessDefinition' | 'ProcessInstance',\n): boolean {\n if (type === 'ProcessInstance') {\n if (fieldName === 'state') {\n return true;\n }\n }\n return false;\n}\n\nfunction isValidEnumOperator(operator: FieldFilterOperatorEnum): boolean {\n return (\n operator === FieldFilterOperatorEnum.In ||\n operator === FieldFilterOperatorEnum.Eq\n );\n}\n\nfunction handleBinaryOperator(\n binaryFilter: FieldFilter,\n fieldDef: IntrospectionField | undefined,\n type: 'ProcessDefinition' | 'ProcessInstance',\n): string {\n if (isEnumFilter(binaryFilter.field, type)) {\n if (!isValidEnumOperator(binaryFilter.operator)) {\n throw new Error(\n `Invalid operator ${binaryFilter.operator} for enum field ${binaryFilter.field} filter`,\n );\n }\n }\n const formattedValue = Array.isArray(binaryFilter.value)\n ? `[${binaryFilter.value\n .map(v => formatValue(binaryFilter.field, v, fieldDef, type))\n .join(', ')}]`\n : formatValue(binaryFilter.field, binaryFilter.value, fieldDef, type);\n return `${binaryFilter.field}: {${getGraphQLOperator(\n binaryFilter.operator,\n )}: ${formattedValue}}`;\n}\n\nexport function buildFilterCondition(\n introspection: IntrospectionField[],\n type: ProcessType,\n filters?: Filter,\n isNested?: boolean,\n): string {\n if (!filters) {\n return '';\n }\n\n if (isNestedFilter(filters)) {\n return handleNestedFilter(introspection, type, filters);\n }\n\n if (isLogicalFilter(filters)) {\n return handleLogicalFilter(introspection, type, filters);\n }\n\n if (!isOperatorSupported(filters.operator)) {\n throw new Error(\n `Unsupported operator ${filters.operator}. Supported operators are: ${supportedOperators.join(', ')}`,\n );\n }\n\n let fieldDef;\n\n if (!isNested) {\n fieldDef = introspection.find(f => f.name === filters.field);\n if (!fieldDef) {\n throw new Error(`Can't find field \"${filters.field}\" definition`);\n }\n\n if (!isOperatorAllowedForField(filters.operator, fieldDef, type)) {\n const allowedOperators =\n supportedOperatorsByType[fieldDef.type.name] || [];\n throw new Error(\n `Unsupported operator ${filters.operator} for field \"${fieldDef.name}\" of type \"${fieldDef.type.name}\". Allowed operators are: ${allowedOperators.join(', ')}`,\n );\n }\n }\n\n switch (filters.operator) {\n case FieldFilterOperatorEnum.IsNull:\n return handleIsNullOperator(filters);\n case FieldFilterOperatorEnum.Between:\n return handleBetweenOperator(filters);\n case FieldFilterOperatorEnum.Eq:\n case FieldFilterOperatorEnum.Like:\n case FieldFilterOperatorEnum.In:\n case FieldFilterOperatorEnum.Gt:\n case FieldFilterOperatorEnum.Gte:\n case FieldFilterOperatorEnum.Lt:\n case FieldFilterOperatorEnum.Lte:\n return handleBinaryOperator(filters, fieldDef, type);\n\n default:\n throw new Error(`Can't build filter condition`);\n }\n}\n\nfunction isOperatorSupported(operator: FieldFilterOperatorEnum): boolean {\n return supportedOperators.includes(operator);\n}\n\nfunction isFieldFilterSupported(fieldDef: IntrospectionField): boolean {\n return fieldDef?.type.name === TypeName.String;\n}\n\nexport function isOperatorAllowedForField(\n operator: FieldFilterOperatorEnum,\n fieldDef: IntrospectionField,\n type: ProcessType,\n): boolean {\n if (isEnumFilter(fieldDef.name, type) && isValidEnumOperator(operator)) {\n return true;\n }\n\n const allowedForType = supportedOperatorsByType[fieldDef.type.name];\n return allowedForType ? allowedForType.includes(operator) : false;\n}\n\nfunction convertToBoolean(value: any): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n return value.toLowerCase() === 'true';\n }\n if (typeof value === 'number') {\n return value === 1;\n }\n return false; // Default to false for unsupported types\n}\n\nfunction formatValue(\n fieldName: string,\n fieldValue: any,\n fieldDef: IntrospectionField | undefined,\n type: ProcessType,\n): string {\n if (!fieldDef) {\n return `\"${fieldValue}\"`;\n }\n\n if (!isFieldFilterSupported) {\n throw new Error(`Unsupported field type ${fieldDef.type.name}`);\n }\n\n if (isEnumFilter(fieldName, type)) {\n return `${fieldValue}`;\n }\n if (\n fieldDef.type.name === TypeName.String ||\n fieldDef.type.name === TypeName.Id ||\n fieldDef.type.name === TypeName.Date\n ) {\n return `\"${fieldValue}\"`;\n }\n throw new Error(\n `Failed to format value for ${fieldName} ${fieldValue} with type ${fieldDef.type.name}`,\n );\n}\n\nfunction getGraphQLOperator(operator: FieldFilterOperatorEnum): string {\n switch (operator) {\n case 'EQ':\n return 'equal';\n case 'LIKE':\n return 'like';\n case 'IN':\n return 'in';\n case 'IS_NULL':\n return 'isNull';\n case 'GT':\n return 'greaterThan';\n case 'GTE':\n return 'greaterThanEqual';\n case 'LT':\n return 'lessThan';\n case 'LTE':\n return 'lessThanEqual';\n case 'BETWEEN':\n return 'between';\n default:\n throw new Error(`Operation \"${operator}\" not supported`);\n }\n}\n"],"names":["FieldFilterOperatorEnum","TypeName"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@red-hat-developer-hub/backstage-plugin-orchestrator-backend",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.2",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "./dist/index.cjs.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"@backstage/plugin-permission-node": "^0.9.0",
|
|
79
79
|
"@backstage/plugin-scaffolder-backend": "^1.31.0",
|
|
80
80
|
"@backstage/plugin-scaffolder-node": "^0.8.0",
|
|
81
|
-
"@red-hat-developer-hub/backstage-plugin-orchestrator-common": "^1.27.
|
|
81
|
+
"@red-hat-developer-hub/backstage-plugin-orchestrator-common": "^1.27.2",
|
|
82
82
|
"@urql/core": "^4.1.4",
|
|
83
83
|
"ajv-formats": "^2.1.1",
|
|
84
84
|
"cloudevents": "^8.0.0",
|