@madie/cql-antlr-parser
Advanced tools
Comparing version 1.0.1 to 1.0.2
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
@@ -6,0 +10,0 @@ if (k2 === undefined) k2 = k; |
@@ -38,2 +38,3 @@ "use strict"; | ||
errors: [], | ||
retrieves: [], | ||
}; | ||
@@ -40,0 +41,0 @@ } |
@@ -1,2 +0,2 @@ | ||
import { AggregateClauseContext, CodeDefinitionContext, CodesystemDefinitionContext, ContextDefinitionContext, cqlListener, ExpressionDefinitionContext, IncludeDefinitionContext, LibraryDefinitionContext, ParameterDefinitionContext, UsingDefinitionContext, ValuesetDefinitionContext } from "../generated"; | ||
import { AggregateClauseContext, CodeDefinitionContext, CodesystemDefinitionContext, ContextDefinitionContext, cqlListener, ExpressionDefinitionContext, IncludeDefinitionContext, LibraryDefinitionContext, ParameterDefinitionContext, RetrieveContext, UsingDefinitionContext, ValuesetDefinitionContext } from "../generated"; | ||
import CqlResult from "./dto/CqlResult"; | ||
@@ -16,3 +16,4 @@ export default class CqlAntlrListener implements cqlListener { | ||
enterAggregateClause(ctx: AggregateClauseContext): void; | ||
enterRetrieve(ctx: RetrieveContext): void; | ||
} | ||
//# sourceMappingURL=CqlAntlrListener.d.ts.map |
@@ -15,2 +15,3 @@ "use strict"; | ||
const CqlIdentifierCreator_1 = __importDefault(require("./CqlIdentifierCreator")); | ||
const CqlRetrieveCreator_1 = __importDefault(require("./CqlRetrieveCreator")); | ||
class CqlAntlrListener { | ||
@@ -41,5 +42,6 @@ constructor(cqlResult) { | ||
enterValuesetDefinition(ctx) { | ||
const cqlCode = new CqlCodeValueSystemCreator_1.default(ctx).buildDao(); | ||
if (cqlCode) { | ||
this.cqlResult.valueSets.push(cqlCode); | ||
var _a; | ||
const cqlValueSet = new CqlCodeValueSystemCreator_1.default(ctx, (_a = this.cqlResult.using) === null || _a === void 0 ? void 0 : _a.name).buildDao(); | ||
if (cqlValueSet) { | ||
this.cqlResult.valueSets.push(cqlValueSet); | ||
} | ||
@@ -74,4 +76,13 @@ } | ||
} | ||
enterRetrieve(ctx) { | ||
if (ctx.terminology() === undefined) { | ||
return; | ||
} | ||
const cqlRetrieve = new CqlRetrieveCreator_1.default(ctx).buildDao(); | ||
if (cqlRetrieve) { | ||
this.cqlResult.retrieves.push(cqlRetrieve); | ||
} | ||
} | ||
} | ||
exports.default = CqlAntlrListener; | ||
//# sourceMappingURL=CqlAntlrListener.js.map |
import { ParserRuleContext } from "antlr4ts/ParserRuleContext"; | ||
import CreatorBase from "./CreatorBase"; | ||
import CqlValueSet from "./dto/CqlValueSet"; | ||
declare type StringOrUndefined = undefined | string; | ||
export default class CqlValueSetSystemCreator extends CreatorBase<CqlValueSet> { | ||
constructor(ctx: ParserRuleContext); | ||
model: StringOrUndefined; | ||
constructor(ctx: ParserRuleContext, model: StringOrUndefined); | ||
protected build(): CqlValueSet; | ||
} | ||
export {}; | ||
//# sourceMappingURL=CqlCodeValueSystemCreator.d.ts.map |
@@ -9,8 +9,17 @@ "use strict"; | ||
class CqlValueSetSystemCreator extends CreatorBase_1.default { | ||
constructor(ctx) { | ||
constructor(ctx, model) { | ||
super(ctx, {}); | ||
this.model = model; | ||
} | ||
build() { | ||
var _a; | ||
this.cqlDao.name = this.findChildText(generated_1.cqlLexer.QUOTEDIDENTIFIER); | ||
this.cqlDao.url = this.findChildText(generated_1.cqlLexer.STRING); | ||
if (this.model === "QDM") { | ||
this.cqlDao.version = this.findChildText(generated_1.cqlLexer.STRING, 2); | ||
} | ||
else { | ||
const tokens = (_a = this.cqlDao.url) === null || _a === void 0 ? void 0 : _a.split("|"); | ||
this.cqlDao.version = (tokens === null || tokens === void 0 ? void 0 : tokens.length) === 2 ? tokens[1] : undefined; | ||
} | ||
this.cqlDao.hits = 0; | ||
@@ -17,0 +26,0 @@ return this.cqlDao; |
@@ -1,2 +0,2 @@ | ||
import { ANTLRErrorListener, CommonToken } from "antlr4ts"; | ||
import { ANTLRErrorListener } from "antlr4ts"; | ||
import { Recognizer } from "antlr4ts/Recognizer"; | ||
@@ -12,4 +12,4 @@ import { Token } from "antlr4ts/Token"; | ||
constructor(cqlResult: CqlResult); | ||
syntaxError<T extends Token>(recognizer: Recognizer<T, ParserATNSimulator>, offendingSymbol: T | CommonToken | undefined, line: number, charPositionInLine: number, msg: string): void; | ||
syntaxError<T extends Token>(recognizer: Recognizer<T, ParserATNSimulator>, offendingSymbol: T | undefined, line: number, charPositionInLine: number, msg: string): void; | ||
} | ||
//# sourceMappingURL=CustomErrorListener.d.ts.map |
@@ -11,2 +11,3 @@ import CqlVersion from "./CqlVersion"; | ||
import CqlIdentifier from "./CqlIdentifier"; | ||
import CqlRetrieve from "./CqlRetrieve"; | ||
export default interface CqlResult { | ||
@@ -23,4 +24,5 @@ library?: CqlVersion; | ||
expressionDefinitions: CqlExpressionDefinition[]; | ||
retrieves: CqlRetrieve[]; | ||
errors: CqlError[]; | ||
} | ||
//# sourceMappingURL=CqlResult.d.ts.map |
@@ -1,3 +0,3 @@ | ||
import CqlText from "./CqlText"; | ||
export default interface CqlValueSet extends CqlText { | ||
import CqlVersion from "./CqlVersion"; | ||
export default interface CqlValueSet extends CqlVersion { | ||
url?: string; | ||
@@ -4,0 +4,0 @@ hits: number; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
@@ -6,0 +10,0 @@ if (k2 === undefined) k2 = k; |
@@ -6,5 +6,5 @@ "use strict"; | ||
describe("test antlr", () => { | ||
it("parse", () => { | ||
it("parse fhir cql", () => { | ||
var _a; | ||
const cqlAntlr = new src_1.CqlAntlr(testCql_1.testCql); | ||
const cqlAntlr = new src_1.CqlAntlr(testCql_1.fhirTestCql); | ||
const cqlResult = cqlAntlr.parse(); | ||
@@ -16,4 +16,16 @@ expect(cqlResult.codes.length).toBe(1); | ||
expect((_a = cqlResult.context) === null || _a === void 0 ? void 0 : _a.name).toEqual("Patient"); | ||
expect(cqlResult.expressionDefinitions.length).toEqual(6); | ||
expect(cqlResult.expressionDefinitions.length).toEqual(7); | ||
expect(cqlResult.retrieves.length).toEqual(1); | ||
}); | ||
it("parse qdm cql", () => { | ||
var _a; | ||
const cqlAntlr = new src_1.CqlAntlr(testCql_1.qdmTestCql); | ||
const cqlResult = cqlAntlr.parse(); | ||
expect((_a = cqlResult.using) === null || _a === void 0 ? void 0 : _a.name).toBe("QDM"); | ||
expect(cqlResult.valueSets.length).toBe(2); | ||
expect(cqlResult.valueSets[0].name).toBe("\"Adolescent depression screening assessment\""); | ||
expect(cqlResult.valueSets[0].version).toBeUndefined(); | ||
expect(cqlResult.valueSets[1].name).toBe("\"Adolescent depression screening assessment with version\""); | ||
expect(cqlResult.valueSets[1].version).toBe("'urn:hl7:version:20240307'"); | ||
}); | ||
it("reports syntactical errors", () => { | ||
@@ -20,0 +32,0 @@ const cqlAntlr = new src_1.CqlAntlr(testCql_1.cqlWithSyntaxErrors); |
@@ -1,2 +0,3 @@ | ||
declare const testCql = "library TJCOverall_FHIR4 version '4.0.000'\n\nusing FHIR version '4.0.0'\n// NOTE: BTR 2019-07-30: Updated version dependencies\ninclude FHIRHelpers version '4.0.0' called FHIRHelpers\ninclude MATGlobalCommonFunctions_FHIR4 version '4.0.000' called Global\ninclude SupplementalDataElements_FHIR4 version '1.0.0' called SDE\n\ncodesystem \"LOINC\": 'urn:oid:2.16.840.1.113883.6.1'\ncodesystem \"CPT:2018\": 'urn:oid:2.16.840.1.113883.6.12'\ncodesystem \"SNOMEDCT:2017-09\": 'http://snomed.info/sct/731000124108' version 'http://snomed.info/sct/731000124108/version/201709'\n\nvalueset \"Acute Pharyngitis (1)\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011.1'\nvalueset \"Acute Pharyngitis (2)\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011.2'\nvalueset \"Encounter Inpatient SNOMEDCT Value Set\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.7.307|20160929'\nvalueset \"Face-to-Face Interaction\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1004.101.12.1048|MU2%20Update@202016-04-01'\n\ncode \"Venous foot pump, device (physical object)\": '442023007' from \"SNOMED-CT\"\nparameter \"Measurement Period\" Interval<DateTime>\n default Interval[@2019-01-01T00:00:00.0, @2020-01-01T00:00:00.0)\n \ncontext Patient\n\ndefine \"SDE Ethnicity\":\n SDE.\"SDE Ethnicity\"\n\ndefine \"SDE Payer\":\n SDE.\"SDE Payer\"\n\ndefine \"SDE Race\":\n SDE.\"SDE Race\"\n\ndefine \"SDE Sex\":\n SDE.\"SDE Sex\"\n\n \ndefine \"Denominator Exclusion\":\n TJC.\"Ischemic Stroke Encounters with Discharge Disposition\"\n union TJC.\"Comfort Measures during Hospitalization\"\n \n \ndefine \"Antithrombotic Not Given at Discharge\":\n [\"MedicationRequest\": medication in \"Antithrombotic Therapy\"] NoAntithromboticDischarge\n where NoAntithromboticDischarge.doNotPerform is true\n and (NoAntithromboticDischarge.reasonCode in \"Medical Reason\"\n or NoAntithromboticDischarge.reasonCode in \"Patient Refusal\")\n //Note: expressed as an or with equivalence semantics pending resolution of potential CQL issue.\n and exists (NoAntithromboticDischarge.category C where FHIRHelpers.ToConcept(C) ~ Global.\"Community\" or FHIRHelpers.ToConcept(C) ~ Global.\"Discharge\")\n and NoAntithromboticDischarge.status = 'completed'\n and NoAntithromboticDischarge.intent = 'order' \n"; | ||
declare const fhirTestCql = "library TJCOverall_FHIR4 version '4.0.000'\n\nusing FHIR version '4.0.0'\n// NOTE: BTR 2019-07-30: Updated version dependencies\ninclude FHIRHelpers version '4.0.0' called FHIRHelpers\ninclude MATGlobalCommonFunctions_FHIR4 version '4.0.000' called Global\ninclude SupplementalDataElements_FHIR4 version '1.0.0' called SDE\n\ncodesystem \"LOINC\": 'urn:oid:2.16.840.1.113883.6.1'\ncodesystem \"CPT:2018\": 'urn:oid:2.16.840.1.113883.6.12'\ncodesystem \"SNOMEDCT:2017-09\": 'http://snomed.info/sct/731000124108' version 'http://snomed.info/sct/731000124108/version/201709'\n\nvalueset \"Acute Pharyngitis (1)\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011.1'\nvalueset \"Acute Pharyngitis (2)\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011.2'\nvalueset \"Encounter Inpatient SNOMEDCT Value Set\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.7.307|20160929'\nvalueset \"Face-to-Face Interaction\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1004.101.12.1048|MU2%20Update@202016-04-01'\n\ncode \"Venous foot pump, device (physical object)\": '442023007' from \"SNOMED-CT\"\nparameter \"Measurement Period\" Interval<DateTime>\n default Interval[@2019-01-01T00:00:00.0, @2020-01-01T00:00:00.0)\n \ncontext Patient\n\ndefine \"SDE Ethnicity\":\n SDE.\"SDE Ethnicity\"\n\ndefine \"SDE Payer\":\n SDE.\"SDE Payer\"\n\ndefine \"SDE Race\":\n SDE.\"SDE Race\"\n\ndefine \"SDE Sex\":\n SDE.\"SDE Sex\"\n\n \ndefine \"Denominator Exclusion\":\n TJC.\"Ischemic Stroke Encounters with Discharge Disposition\"\n union TJC.\"Comfort Measures during Hospitalization\"\n \ndefine \"Encounter Performed\":\n [\"Encounter, Performed\"] EP\n where EP.relevantPeriod not null\n \ndefine \"Antithrombotic Not Given at Discharge\":\n [\"MedicationRequest\": medication in \"Antithrombotic Therapy\"] NoAntithromboticDischarge\n where NoAntithromboticDischarge.doNotPerform is true\n and (NoAntithromboticDischarge.reasonCode in \"Medical Reason\"\n or NoAntithromboticDischarge.reasonCode in \"Patient Refusal\")\n //Note: expressed as an or with equivalence semantics pending resolution of potential CQL issue.\n and exists (NoAntithromboticDischarge.category C where FHIRHelpers.ToConcept(C) ~ Global.\"Community\" or FHIRHelpers.ToConcept(C) ~ Global.\"Discharge\")\n and NoAntithromboticDischarge.status = 'completed'\n and NoAntithromboticDischarge.intent = 'order' \n"; | ||
declare const qdmTestCql = "\nlibrary PreventiveCareScreeningFollowUpPlan version '0.0.000'\nusing QDM version '5.6'\nvalueset \"Adolescent depression screening assessment\": 'urn:oid:2.16.840.1.113762.1.4.1260.162'\nvalueset \"Adolescent depression screening assessment with version\": 'urn:oid:2.16.840.1.113762.1.4.1260.162' version 'urn:hl7:version:20240307'\n"; | ||
declare const cqlWithSyntaxErrors = "library TJCOverall_FHIR4 version '4.0.000'\n\nusing FHIR version '4.0.0'\n// NOTE: BTR 2019-07-30: Updated version dependencies\ninclude FHIRHelpers version '4.0.0' called FHIRHelpers\nincludess MATGlobalCommonFunctions_FHIR4 version '4.0.000' called Global\ninclude SupplementalDataElements_FHIR4 version '1.0.0' called SDE\n\ncodesystem \"LOINC\": 'urn:oid:2.16.840.1.113883.6.1'\ncodesystem \"CPT:2018\": 'urn:oid:2.16.840.1.113883.6.12'\ncodesystem \"SNOMEDCT:2017-09\": 'http://snomed.info/sct/731000124108' version 'http://snomed.info/sct/731000124108/version/201709'\n\nvalueset \"Acute Pharyngitis (1)\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011.1'\nvaluesetss \"Acute Pharyngitis (2)\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1011.2'\nvalueset \"Encounter Inpatient SNOMEDCT Value Set\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.7.307|20160929'\nvalueset \"Face-to-Face Interaction\": 'https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1004.101.12.1048|MU2%20Update@202016-04-01'\n\ncode \"Venous foot pump, device (physical object)\": '442023007' from \"SNOMED-CT\"\nparameter Interval<DateTime>\n default Interval[@2019-01-01T00:00:00.0, @2020-01-01T00:00:00.0)\n \ncontext Patient\n\ndefine \"SDE Ethnicity\":\n SDE.\"SDE Ethnicity\"\n\ndefine \"SDE Payer\":\n SDE.\"SDE Payer\"\n\ndefine \"SDE Race\":\n SDE.\"SDE Race\"\n\ndefine \"SDE Sex\":\n SDE.\"SDE Sex\" \n"; | ||
@@ -10,3 +11,3 @@ declare const cqlWithUsedParam = "\nvalueset \"Statin Allergen\": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.42' \nparameter \"Measurement Period\" Interval<DateTime>\ndefine \"Has Allergy to Statin\":\n exists ([AllergyIntolerance: \"Statin Allergen\"] StatinAllergy\n where StatinAllergy.onset during \"Measurement Period\")\n"; | ||
declare const aggregateQuery = "\ndefine FactorialOfFive:\n ({ 1, 2, 3, 4, 5 }) Num\n aggregate Result starting 1: Result * Num\n"; | ||
export { testCql, cqlWithSyntaxErrors, cqlWithUsedParam, cqlWithUsedDefines, cqlWithUsedCodeAndCodeSystem, cqlWithUsedContext, cqlFluentFunctions, relatedContextRetrieve, aggregateQuery }; | ||
export { fhirTestCql, qdmTestCql, cqlWithSyntaxErrors, cqlWithUsedParam, cqlWithUsedDefines, cqlWithUsedCodeAndCodeSystem, cqlWithUsedContext, cqlFluentFunctions, relatedContextRetrieve, aggregateQuery }; | ||
//# sourceMappingURL=testCql.d.ts.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.aggregateQuery = exports.relatedContextRetrieve = exports.cqlFluentFunctions = exports.cqlWithUsedContext = exports.cqlWithUsedCodeAndCodeSystem = exports.cqlWithUsedDefines = exports.cqlWithUsedParam = exports.cqlWithSyntaxErrors = exports.testCql = void 0; | ||
const testCql = `library TJCOverall_FHIR4 version '4.0.000' | ||
exports.aggregateQuery = exports.relatedContextRetrieve = exports.cqlFluentFunctions = exports.cqlWithUsedContext = exports.cqlWithUsedCodeAndCodeSystem = exports.cqlWithUsedDefines = exports.cqlWithUsedParam = exports.cqlWithSyntaxErrors = exports.qdmTestCql = exports.fhirTestCql = void 0; | ||
const fhirTestCql = `library TJCOverall_FHIR4 version '4.0.000' | ||
@@ -44,3 +44,6 @@ using FHIR version '4.0.0' | ||
define "Encounter Performed": | ||
["Encounter, Performed"] EP | ||
where EP.relevantPeriod not null | ||
define "Antithrombotic Not Given at Discharge": | ||
@@ -56,3 +59,10 @@ ["MedicationRequest": medication in "Antithrombotic Therapy"] NoAntithromboticDischarge | ||
`; | ||
exports.testCql = testCql; | ||
exports.fhirTestCql = fhirTestCql; | ||
const qdmTestCql = ` | ||
library PreventiveCareScreeningFollowUpPlan version '0.0.000' | ||
using QDM version '5.6' | ||
valueset "Adolescent depression screening assessment": 'urn:oid:2.16.840.1.113762.1.4.1260.162' | ||
valueset "Adolescent depression screening assessment with version": 'urn:oid:2.16.840.1.113762.1.4.1260.162' version 'urn:hl7:version:20240307' | ||
`; | ||
exports.qdmTestCql = qdmTestCql; | ||
const cqlWithSyntaxErrors = `library TJCOverall_FHIR4 version '4.0.000' | ||
@@ -59,0 +69,0 @@ |
{ | ||
"name": "@madie/cql-antlr-parser", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "Antlr Parsing of CQL in typescript", | ||
@@ -36,18 +36,18 @@ "publishConfig": { | ||
"devDependencies": { | ||
"@types/jest": "^27.4.0", | ||
"@typescript-eslint/eslint-plugin": "^5.9.0", | ||
"@typescript-eslint/parser": "^5.9.0", | ||
"eslint": "^8.6.0", | ||
"eslint-config-airbnb-typescript": "^16.1.0", | ||
"eslint-config-prettier": "^8.3.0", | ||
"@types/jest": "^27.5.0", | ||
"@typescript-eslint/eslint-plugin": "^5.22.0", | ||
"@typescript-eslint/parser": "^5.22.0", | ||
"eslint": "^8.13.0", | ||
"eslint-config-airbnb-typescript": "^17.0.0", | ||
"eslint-config-prettier": "^8.5.0", | ||
"eslint-plugin-eslint-comments": "^3.2.0", | ||
"eslint-plugin-import": "^2.25.4", | ||
"eslint-plugin-jest": "^26.1.0", | ||
"eslint-plugin-import": "^2.26.0", | ||
"eslint-plugin-jest": "^26.1.5", | ||
"eslint-plugin-promise": "^6.0.0", | ||
"jest": "^27.4.7", | ||
"jest": "^27.5.1", | ||
"jest-extended": "^2.0.0", | ||
"prettier": "^2.5.1", | ||
"ts-jest": "^27.1.2", | ||
"ts-node": "^10.4.0", | ||
"typescript": "^4.5.4", | ||
"prettier": "^2.6.2", | ||
"ts-jest": "^27.1.4", | ||
"ts-node": "^10.7.0", | ||
"typescript": "^4.6.4", | ||
"typescript-eslint": "^0.0.1-alpha.0" | ||
@@ -54,0 +54,0 @@ }, |
@@ -11,1 +11,3 @@ # cql-antlr-parser | ||
``` | ||
Initial grammar files (cql.g4 & fhirPath.g4) come from https://cql.hl7.org/grammar.html |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
1549340
171
22251
13
0