@pagerduty/backstage-plugin-backend 0.11.0 → 0.13.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 +30 -0
- package/dist/apis/pagerduty.cjs.js +285 -0
- package/dist/apis/pagerduty.cjs.js.map +1 -1
- package/dist/auth/auth.cjs.js +5 -4
- package/dist/auth/auth.cjs.js.map +1 -1
- package/dist/controllers/mappings-controller.cjs.js +388 -0
- package/dist/controllers/mappings-controller.cjs.js.map +1 -0
- package/dist/db/PagerDutyBackendDatabase.cjs.js +16 -0
- package/dist/db/PagerDutyBackendDatabase.cjs.js.map +1 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +5 -7
- package/dist/plugin.cjs.js +12 -4
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/service/router.cjs.js +235 -131
- package/dist/service/router.cjs.js.map +1 -1
- package/dist/services/autoMatchJobs.cjs.js +53 -0
- package/dist/services/autoMatchJobs.cjs.js.map +1 -0
- package/dist/services/autoMatchRunner.cjs.js +72 -0
- package/dist/services/autoMatchRunner.cjs.js.map +1 -0
- package/dist/services/dataLoader.cjs.js +13 -5
- package/dist/services/dataLoader.cjs.js.map +1 -1
- package/dist/services/pagerduty/index.cjs.js +11 -0
- package/dist/services/pagerduty/index.cjs.js.map +1 -0
- package/dist/utils/catalog-entity.cjs.js +50 -0
- package/dist/utils/catalog-entity.cjs.js.map +1 -0
- package/dist/utils/normalization.cjs.js +3 -2
- package/dist/utils/normalization.cjs.js.map +1 -1
- package/package.json +6 -7
|
@@ -38,14 +38,15 @@ function extractAcronym(name) {
|
|
|
38
38
|
}
|
|
39
39
|
return "";
|
|
40
40
|
}
|
|
41
|
-
function normalizePagerDutyService(name, teamName, serviceId) {
|
|
41
|
+
function normalizePagerDutyService(name, teamName, serviceId, account) {
|
|
42
42
|
return {
|
|
43
43
|
rawName: name,
|
|
44
44
|
normalizedName: normalizeName(name),
|
|
45
45
|
teamName: normalizeName(teamName),
|
|
46
46
|
acronym: extractAcronym(name),
|
|
47
47
|
sourceId: serviceId,
|
|
48
|
-
source: "pagerduty"
|
|
48
|
+
source: "pagerduty",
|
|
49
|
+
account
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
52
|
function normalizeBackstageComponent(name, owner, entityRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalization.cjs.js","sources":["../../src/utils/normalization.ts"],"sourcesContent":["export function normalizeName(name: string): string {\n if (!name) {\n return '';\n }\n\n let normalized = name.toLowerCase();\n normalized = normalized.replace(/_/g, ' ').replace(/-/g, ' ');\n normalized = normalized.replace(/\\s+/g, ' ');\n\n return normalized.trim();\n}\n\nexport function extractAcronym(name: string): string {\n if (!name) {\n return '';\n }\n\n if (name.length <= 5 && /^[A-Z]+$/.test(name)) {\n return name;\n }\n\n if (/[\\s\\-_\\/]/.test(name)) {\n const words = name.split(/[\\s\\-_\\/]+/).filter(word => word.length > 0);\n\n if (words.length === 0) {\n return '';\n }\n\n const acronym = words\n .map(word => word.charAt(0).toUpperCase())\n .join('');\n\n return acronym;\n }\n\n const withBoundaries = name\n .replace(/([a-z])([A-Z])/g, '$1|$2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1|$2');\n\n const words = withBoundaries.split('|').filter(word => word.length > 0);\n\n if (words.length > 1) {\n return words\n .map(word => word.charAt(0).toUpperCase())\n .join('');\n }\n\n const capitals = name.match(/[A-Z]/g);\n if (capitals && capitals.length > 1) {\n return capitals.join('');\n }\n\n if (name.length > 0) {\n return name.charAt(0).toUpperCase();\n }\n\n return '';\n}\n\nexport interface NormalizedService {\n rawName: string;\n normalizedName: string;\n teamName: string;\n acronym: string;\n sourceId: string;\n source: 'pagerduty' | 'backstage';\n}\n\nexport function normalizePagerDutyService(\n name: string,\n teamName: string,\n serviceId: string,\n): NormalizedService {\n return {\n rawName: name,\n normalizedName: normalizeName(name),\n teamName: normalizeName(teamName),\n acronym: extractAcronym(name),\n sourceId: serviceId,\n source: 'pagerduty',\n };\n}\n\nexport function normalizeBackstageComponent(\n name: string,\n owner: string,\n entityRef: string,\n): NormalizedService {\n return {\n rawName: name,\n normalizedName: normalizeName(name),\n teamName: normalizeName(owner),\n acronym: extractAcronym(name),\n sourceId: entityRef,\n source: 'backstage',\n };\n}\n"],"names":["words"],"mappings":";;AAAO,SAAS,cAAc,IAAA,EAAsB;AAClD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,IAAI,UAAA,GAAa,KAAK,WAAA,EAAY;AAClC,EAAA,UAAA,GAAa,WAAW,OAAA,CAAQ,IAAA,EAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,MAAM,GAAG,CAAA;AAC5D,EAAA,UAAA,GAAa,UAAA,CAAW,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAA;AAE3C,EAAA,OAAO,WAAW,IAAA,EAAK;AACzB;AAEO,SAAS,eAAe,IAAA,EAAsB;AACnD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,IAAI,KAAK,MAAA,IAAU,CAAA,IAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA,EAAG;AAC7C,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1B,IAAA,MAAMA,MAAAA,GAAQ,KAAK,KAAA,CAAM,YAAY,EAAE,MAAA,CAAO,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AAErE,IAAA,IAAIA,MAAAA,CAAM,WAAW,CAAA,EAAG;AACtB,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,MAAM,OAAA,GAAUA,MAAAA,CACb,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,CACxC,IAAA,CAAK,EAAE,CAAA;AAEV,IAAA,OAAO,OAAA;AAAA,EACT;AAEA,EAAA,MAAM,cAAA,GAAiB,KACpB,OAAA,CAAQ,iBAAA,EAAmB,OAAO,CAAA,CAClC,OAAA,CAAQ,yBAAyB,OAAO,CAAA;AAE3C,EAAA,MAAM,KAAA,GAAQ,eAAe,KAAA,CAAM,GAAG,EAAE,MAAA,CAAO,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AAEtE,EAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACpB,IAAA,OAAO,KAAA,CACJ,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,CACxC,IAAA,CAAK,EAAE,CAAA;AAAA,EACZ;AAEA,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AACpC,EAAA,IAAI,QAAA,IAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACnC,IAAA,OAAO,QAAA,CAAS,KAAK,EAAE,CAAA;AAAA,EACzB;AAEA,EAAA,IAAI,IAAA,CAAK,SAAS,CAAA,EAAG;AACnB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY;AAAA,EACpC;AAEA,EAAA,OAAO,EAAA;AACT;
|
|
1
|
+
{"version":3,"file":"normalization.cjs.js","sources":["../../src/utils/normalization.ts"],"sourcesContent":["export function normalizeName(name: string): string {\n if (!name) {\n return '';\n }\n\n let normalized = name.toLowerCase();\n normalized = normalized.replace(/_/g, ' ').replace(/-/g, ' ');\n normalized = normalized.replace(/\\s+/g, ' ');\n\n return normalized.trim();\n}\n\nexport function extractAcronym(name: string): string {\n if (!name) {\n return '';\n }\n\n if (name.length <= 5 && /^[A-Z]+$/.test(name)) {\n return name;\n }\n\n if (/[\\s\\-_\\/]/.test(name)) {\n const words = name.split(/[\\s\\-_\\/]+/).filter(word => word.length > 0);\n\n if (words.length === 0) {\n return '';\n }\n\n const acronym = words\n .map(word => word.charAt(0).toUpperCase())\n .join('');\n\n return acronym;\n }\n\n const withBoundaries = name\n .replace(/([a-z])([A-Z])/g, '$1|$2')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1|$2');\n\n const words = withBoundaries.split('|').filter(word => word.length > 0);\n\n if (words.length > 1) {\n return words\n .map(word => word.charAt(0).toUpperCase())\n .join('');\n }\n\n const capitals = name.match(/[A-Z]/g);\n if (capitals && capitals.length > 1) {\n return capitals.join('');\n }\n\n if (name.length > 0) {\n return name.charAt(0).toUpperCase();\n }\n\n return '';\n}\n\nexport interface NormalizedService {\n rawName: string;\n normalizedName: string;\n teamName: string;\n acronym: string;\n sourceId: string;\n source: 'pagerduty' | 'backstage';\n account?: string;\n}\n\nexport function normalizePagerDutyService(\n name: string,\n teamName: string,\n serviceId: string,\n account?: string,\n): NormalizedService {\n return {\n rawName: name,\n normalizedName: normalizeName(name),\n teamName: normalizeName(teamName),\n acronym: extractAcronym(name),\n sourceId: serviceId,\n source: 'pagerduty',\n account,\n };\n}\n\nexport function normalizeBackstageComponent(\n name: string,\n owner: string,\n entityRef: string,\n): NormalizedService {\n return {\n rawName: name,\n normalizedName: normalizeName(name),\n teamName: normalizeName(owner),\n acronym: extractAcronym(name),\n sourceId: entityRef,\n source: 'backstage',\n };\n}\n"],"names":["words"],"mappings":";;AAAO,SAAS,cAAc,IAAA,EAAsB;AAClD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,IAAI,UAAA,GAAa,KAAK,WAAA,EAAY;AAClC,EAAA,UAAA,GAAa,WAAW,OAAA,CAAQ,IAAA,EAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,MAAM,GAAG,CAAA;AAC5D,EAAA,UAAA,GAAa,UAAA,CAAW,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAA;AAE3C,EAAA,OAAO,WAAW,IAAA,EAAK;AACzB;AAEO,SAAS,eAAe,IAAA,EAAsB;AACnD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,IAAI,KAAK,MAAA,IAAU,CAAA,IAAK,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA,EAAG;AAC7C,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,WAAA,CAAY,IAAA,CAAK,IAAI,CAAA,EAAG;AAC1B,IAAA,MAAMA,MAAAA,GAAQ,KAAK,KAAA,CAAM,YAAY,EAAE,MAAA,CAAO,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AAErE,IAAA,IAAIA,MAAAA,CAAM,WAAW,CAAA,EAAG;AACtB,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,MAAM,OAAA,GAAUA,MAAAA,CACb,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,CACxC,IAAA,CAAK,EAAE,CAAA;AAEV,IAAA,OAAO,OAAA;AAAA,EACT;AAEA,EAAA,MAAM,cAAA,GAAiB,KACpB,OAAA,CAAQ,iBAAA,EAAmB,OAAO,CAAA,CAClC,OAAA,CAAQ,yBAAyB,OAAO,CAAA;AAE3C,EAAA,MAAM,KAAA,GAAQ,eAAe,KAAA,CAAM,GAAG,EAAE,MAAA,CAAO,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AAEtE,EAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACpB,IAAA,OAAO,KAAA,CACJ,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,CACxC,IAAA,CAAK,EAAE,CAAA;AAAA,EACZ;AAEA,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AACpC,EAAA,IAAI,QAAA,IAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACnC,IAAA,OAAO,QAAA,CAAS,KAAK,EAAE,CAAA;AAAA,EACzB;AAEA,EAAA,IAAI,IAAA,CAAK,SAAS,CAAA,EAAG;AACnB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY;AAAA,EACpC;AAEA,EAAA,OAAO,EAAA;AACT;AAYO,SAAS,yBAAA,CACd,IAAA,EACA,QAAA,EACA,SAAA,EACA,OAAA,EACmB;AACnB,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,IAAA;AAAA,IACT,cAAA,EAAgB,cAAc,IAAI,CAAA;AAAA,IAClC,QAAA,EAAU,cAAc,QAAQ,CAAA;AAAA,IAChC,OAAA,EAAS,eAAe,IAAI,CAAA;AAAA,IAC5B,QAAA,EAAU,SAAA;AAAA,IACV,MAAA,EAAQ,WAAA;AAAA,IACR;AAAA,GACF;AACF;AAEO,SAAS,2BAAA,CACd,IAAA,EACA,KAAA,EACA,SAAA,EACmB;AACnB,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,IAAA;AAAA,IACT,cAAA,EAAgB,cAAc,IAAI,CAAA;AAAA,IAClC,QAAA,EAAU,cAAc,KAAK,CAAA;AAAA,IAC7B,OAAA,EAAS,eAAe,IAAI,CAAA;AAAA,IAC5B,QAAA,EAAU,SAAA;AAAA,IACV,MAAA,EAAQ;AAAA,GACV;AACF;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pagerduty/backstage-plugin-backend",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"postpack": "backstage-cli package postpack"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@backstage/backend-
|
|
41
|
-
"@backstage/backend-plugin-api": "^1.6.
|
|
40
|
+
"@backstage/backend-defaults": "^0.15.1",
|
|
41
|
+
"@backstage/backend-plugin-api": "^1.6.2",
|
|
42
42
|
"@backstage/catalog-client": "^1.12.1",
|
|
43
|
-
"@pagerduty/backstage-plugin-common": "~0.
|
|
43
|
+
"@pagerduty/backstage-plugin-common": "~0.4.0",
|
|
44
44
|
"@skyra/jaro-winkler": "^1.1.1",
|
|
45
45
|
"@types/express": "^4.17.6",
|
|
46
46
|
"express": "^4.20.0",
|
|
@@ -51,9 +51,8 @@
|
|
|
51
51
|
"uuid": "^9.0.1"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@backstage/backend-
|
|
55
|
-
"@backstage/
|
|
56
|
-
"@backstage/cli": "^0.35.1",
|
|
54
|
+
"@backstage/backend-test-utils": "^1.10.4",
|
|
55
|
+
"@backstage/cli": "^0.35.3",
|
|
57
56
|
"jest-mock": "^30.0.2",
|
|
58
57
|
"supertest": "^7.1.3"
|
|
59
58
|
},
|