From 573f871b29738f516525af98276e784d9c3def63 Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Mon, 12 Feb 2024 13:36:21 -0800 Subject: [PATCH 01/14] Dependabot updates --- demos/compareJSON/package-lock.json | 8 +- demos/compareJSON/package.json | 2 +- demos/compareSolutions/package-lock.json | 8 +- demos/compareSolutions/package.json | 2 +- demos/copyItemInfo/package-lock.json | 8 +- demos/copyItemInfo/package.json | 2 +- demos/copySolutions/package-lock.json | 8 +- demos/copySolutions/package.json | 2 +- demos/createSolution/package-lock.json | 8 +- demos/createSolution/package.json | 2 +- demos/deleteSolution/package-lock.json | 8 +- demos/deleteSolution/package.json | 2 +- demos/deploySolution/package-lock.json | 8 +- demos/deploySolution/package.json | 2 +- demos/getItemInfo/package-lock.json | 8 +- demos/getItemInfo/package.json | 2 +- demos/implementedTypes/package-lock.json | 8 +- demos/implementedTypes/package.json | 2 +- demos/verifySolution/package-lock.json | 8 +- demos/verifySolution/package.json | 2 +- package-lock.json | 474 ++++++++++++++--------- package.json | 8 +- packages/common/package.json | 2 +- packages/creator/package.json | 2 +- packages/deployer/package.json | 2 +- packages/feature-layer/package.json | 2 +- packages/file/package.json | 2 +- packages/form/package.json | 2 +- packages/group/package.json | 2 +- packages/hub-types/package.json | 2 +- packages/simple-types/package.json | 2 +- packages/storymap/package.json | 2 +- packages/velocity/package.json | 2 +- packages/viewer/package.json | 2 +- packages/web-experience/package.json | 2 +- 35 files changed, 358 insertions(+), 250 deletions(-) diff --git a/demos/compareJSON/package-lock.json b/demos/compareJSON/package-lock.json index a0058aa2f..a0645e242 100644 --- a/demos/compareJSON/package-lock.json +++ b/demos/compareJSON/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/compareJSON/package.json b/demos/compareJSON/package.json index f7ef57a64..013484156 100644 --- a/demos/compareJSON/package.json +++ b/demos/compareJSON/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/compareSolutions/package-lock.json b/demos/compareSolutions/package-lock.json index 2e1154ce7..918473ea2 100644 --- a/demos/compareSolutions/package-lock.json +++ b/demos/compareSolutions/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/compareSolutions/package.json b/demos/compareSolutions/package.json index d12cf61e6..c06429afa 100644 --- a/demos/compareSolutions/package.json +++ b/demos/compareSolutions/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/copyItemInfo/package-lock.json b/demos/copyItemInfo/package-lock.json index 9fa1a08d4..f3d876b03 100644 --- a/demos/copyItemInfo/package-lock.json +++ b/demos/copyItemInfo/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/copyItemInfo/package.json b/demos/copyItemInfo/package.json index 762820864..ebeffdde3 100644 --- a/demos/copyItemInfo/package.json +++ b/demos/copyItemInfo/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/copySolutions/package-lock.json b/demos/copySolutions/package-lock.json index ffbc60947..5aa1bb7d1 100644 --- a/demos/copySolutions/package-lock.json +++ b/demos/copySolutions/package-lock.json @@ -18,7 +18,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -154,9 +154,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/copySolutions/package.json b/demos/copySolutions/package.json index 69e5d56d3..07c4316fb 100644 --- a/demos/copySolutions/package.json +++ b/demos/copySolutions/package.json @@ -16,7 +16,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/createSolution/package-lock.json b/demos/createSolution/package-lock.json index 9a18ab806..bedead4e5 100644 --- a/demos/createSolution/package-lock.json +++ b/demos/createSolution/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/createSolution/package.json b/demos/createSolution/package.json index 118601afd..e8d10d2b4 100644 --- a/demos/createSolution/package.json +++ b/demos/createSolution/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/deleteSolution/package-lock.json b/demos/deleteSolution/package-lock.json index 1c9bdd128..555148f8d 100644 --- a/demos/deleteSolution/package-lock.json +++ b/demos/deleteSolution/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/deleteSolution/package.json b/demos/deleteSolution/package.json index 04f4b70b0..51a3bc19c 100644 --- a/demos/deleteSolution/package.json +++ b/demos/deleteSolution/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/deploySolution/package-lock.json b/demos/deploySolution/package-lock.json index 67ade0828..44245a6ec 100644 --- a/demos/deploySolution/package-lock.json +++ b/demos/deploySolution/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/deploySolution/package.json b/demos/deploySolution/package.json index ba9dfaaed..cd69c3ffb 100644 --- a/demos/deploySolution/package.json +++ b/demos/deploySolution/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/getItemInfo/package-lock.json b/demos/getItemInfo/package-lock.json index ee42c030d..f9385f489 100644 --- a/demos/getItemInfo/package-lock.json +++ b/demos/getItemInfo/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/getItemInfo/package.json b/demos/getItemInfo/package.json index dd69f4b28..bc5203a9e 100644 --- a/demos/getItemInfo/package.json +++ b/demos/getItemInfo/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/implementedTypes/package-lock.json b/demos/implementedTypes/package-lock.json index fc5557beb..6bb47c5f4 100644 --- a/demos/implementedTypes/package-lock.json +++ b/demos/implementedTypes/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/implementedTypes/package.json b/demos/implementedTypes/package.json index 0fd678803..a70cd70aa 100644 --- a/demos/implementedTypes/package.json +++ b/demos/implementedTypes/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/verifySolution/package-lock.json b/demos/verifySolution/package-lock.json index 90867c2a9..d1bbd9c43 100644 --- a/demos/verifySolution/package-lock.json +++ b/demos/verifySolution/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -153,9 +153,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/verifySolution/package.json b/demos/verifySolution/package.json index 56305bd02..82a305dd3 100644 --- a/demos/verifySolution/package.json +++ b/demos/verifySolution/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/package-lock.json b/package-lock.json index 36a1616e1..b72218a74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,13 +32,13 @@ "@chiragrupani/karma-chromium-edge-launcher": "^2.3.1", "@types/node": "^20.11.16", "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/parser": "^6.21.0", "babel-jest": "^29.7.0", "browserify-sign": "^4.2.2", "eslint": "^8.56.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.29.0", - "eslint-plugin-jsdoc": "^48.0.4", + "eslint-plugin-jsdoc": "^48.0.6", "eslint-plugin-prefer-arrow": "^1.2.3", "follow-redirects": "^1.15.5", "gh-pages": "^6.0.0", @@ -55,12 +55,12 @@ "karma-spec-reporter": "0.0.36", "karma-typescript": "^5.5.4", "karma-typescript-es6-transform": "^5.5.4", - "lerna": "^8.0.1", + "lerna": "^8.1.2", "lint-staged": "^15.2.0", "prettier": "^3.2.5", "sri-toolbox": "^0.2.0", "ts-node": "^10.9.2", - "typedoc": "^0.25.6", + "typedoc": "^0.25.8", "typescript": "~5.2.2", "ultra-runner": "^3.10.5" } @@ -1864,9 +1864,9 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", - "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz", + "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==", "dev": true, "dependencies": { "comment-parser": "1.4.1", @@ -2079,9 +2079,9 @@ "integrity": "sha512-KEgORx0HKHOrV4oMYOwmZ76N89WTNkbKb1z3UYJrOEaKVGRU3jisgQcuTXFqjJJe4ZApGQhxCzNgcaU067qdpA==" }, "node_modules/@esri/hub-common": { - "version": "14.85.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.85.0.tgz", - "integrity": "sha512-ylUK4Z1pOFX2Ay0w+1RtQaH/EJJX8YDwl3e59UzrGlvY4MAtgJQjgi4HxKLAzvANgjUINb5HAkHvazROgCAo0w==", + "version": "14.90.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", + "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -2644,13 +2644,13 @@ } }, "node_modules/@lerna/create": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.0.2.tgz", - "integrity": "sha512-AueSlfiYXqEmy9/EIc17mjlaHFuv734dfgVBegyoefIA7hdeoExtsXnACWf8Tw5af6gwyTL3KAp6QQyc1sTuZQ==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.1.2.tgz", + "integrity": "sha512-GzScCIkAW3tg3+Yn/MKCH9963bzG+zpjGz2NdfYDlYWI7p0f/SH46v1dqpPpYmZ2E/m3JK8HjTNNNL8eIm8/YQ==", "dev": true, "dependencies": { "@npmcli/run-script": "7.0.2", - "@nx/devkit": ">=17.1.2 < 18", + "@nx/devkit": ">=17.1.2 < 19", "@octokit/plugin-enterprise-rest": "6.0.1", "@octokit/rest": "19.0.11", "byte-size": "8.1.1", @@ -2687,7 +2687,7 @@ "npm-packlist": "5.1.1", "npm-registry-fetch": "^14.0.5", "npmlog": "^6.0.2", - "nx": ">=17.1.2 < 18", + "nx": ">=17.1.2 < 19", "p-map": "4.0.0", "p-map-series": "2.1.0", "p-queue": "6.6.2", @@ -2960,9 +2960,9 @@ } }, "node_modules/@lerna/create/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3081,9 +3081,9 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", - "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.1.tgz", + "integrity": "sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -3188,9 +3188,9 @@ } }, "node_modules/@npmcli/git/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3358,21 +3358,21 @@ } }, "node_modules/@nrwl/devkit": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-17.3.1.tgz", - "integrity": "sha512-MtHlsdErSz0Z1j8j+qAKUafWzMs3XcHgXmJomjUzect1jS/HtmbcDvdMv9GwVtk+67JD+7ca2CWjk2atv6dZdw==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-18.0.4.tgz", + "integrity": "sha512-fKHnjg4/9MdFd2U4e8p6ja9fRa864DCyF70kB4YUB9NuUIgWLQ15Uj6wXC3xjdXmxQRyHDa7ORodVoFzdo4UCg==", "dev": true, "dependencies": { - "@nx/devkit": "17.3.1" + "@nx/devkit": "18.0.4" } }, "node_modules/@nrwl/tao": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-17.3.1.tgz", - "integrity": "sha512-bohZt2rzqCz2ITOpQ6H7sYlHhxn3NftHDz0a0QVVDJojjpak73r8XV0zCk2yUN2T8HdRJVyYLyAqDENl9X48pA==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-18.0.4.tgz", + "integrity": "sha512-/PzGOJevlDQnp5RPXF3WDe+w1cdohGkY+mbJUgDVA4Q5JEPT1DtE10h9GgdHdzkPjVPNYsaI4Vs/53NUdlVHHA==", "dev": true, "dependencies": { - "nx": "17.3.1", + "nx": "18.0.4", "tslib": "^2.3.0" }, "bin": { @@ -3386,16 +3386,16 @@ "dev": true }, "node_modules/@nx/devkit": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-17.3.1.tgz", - "integrity": "sha512-E44feT7x/pGTzMWSndjTAoBXvZYEdy2SU99O14LdW7atUK4gv0glKUfyq6nNFULrs6r173WKfJgfmJDL3l78lg==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-18.0.4.tgz", + "integrity": "sha512-Vs1AXgOjMJyaWpKopD04dy0FwQ22n5ZR1bFf98Ab4Ht0WJwJE90IpUVAkwI03n5BYxAKOlQnFltsB4gu6Y8mZQ==", "dev": true, "dependencies": { - "@nrwl/devkit": "17.3.1", + "@nrwl/devkit": "18.0.4", "ejs": "^3.1.7", "enquirer": "~2.3.6", "ignore": "^5.0.4", - "semver": "7.5.3", + "semver": "^7.5.3", "tmp": "~0.2.1", "tslib": "^2.3.0", "yargs-parser": "21.1.1" @@ -3417,9 +3417,9 @@ } }, "node_modules/@nx/devkit/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3456,9 +3456,9 @@ "dev": true }, "node_modules/@nx/nx-darwin-arm64": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.3.1.tgz", - "integrity": "sha512-19YkMr/9fMWQsaiFxkLmz50WzIQ6nktEwDfjhSOOFeRc40SCw848ZWZ4EZDH6dOgKK3UOeW6OX9vr5+GMn2yLA==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-18.0.4.tgz", + "integrity": "sha512-9KJVONxUwdnFHHRNocsg7q5pliOTTfbjlr3rvhLuroV5HeTJFhUipKCQrVEhLy8e4auRdLuSz/HsgpJat3Z2cg==", "cpu": [ "arm64" ], @@ -3472,9 +3472,9 @@ } }, "node_modules/@nx/nx-darwin-x64": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-17.3.1.tgz", - "integrity": "sha512-FaI9VI7XwG32jDArAZK0F+mWN6ZU7Y8anFr7C1VMcgVbaMLz6i4kp3sy5kFAbFDgFcpTdUOiZq5Ay+hJtDyufg==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-18.0.4.tgz", + "integrity": "sha512-rFKHjeU0Ngz1R7UJAsbncpqwuFDjUdpcvI783r6s2eP7JoiiwtDBXvDcHiy8Odk0lPYmwDELaFZBhvdENqaDNA==", "cpu": [ "x64" ], @@ -3488,9 +3488,9 @@ } }, "node_modules/@nx/nx-freebsd-x64": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.3.1.tgz", - "integrity": "sha512-AZ+kl5x+O+8Ptrzw/RXgSZFs6V4U6TlieTOoCtrPtmVR7mz9nxMfwQNf/GAz8kbiC+u9PDH5rFl/UblEi4WF6g==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-18.0.4.tgz", + "integrity": "sha512-jJx47wgRoUxVpQ+WG5+yLdxtJVuVgjphiTMRc0LOfUwKQaEHWyCA0hMK5fNmo0FAHIhGVCb/j2j9FxnCWTWpkg==", "cpu": [ "x64" ], @@ -3504,9 +3504,9 @@ } }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.3.1.tgz", - "integrity": "sha512-a8Y7435O2lxbtNsQ4vciYqXJ8eFVyOJizhiQ6koh/VHN/0FEYuGVkJRRXinDS44W0dfiDRXvbQKvPtjAvD5gJQ==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-18.0.4.tgz", + "integrity": "sha512-C3qWbFhEMIdTzvAHlIUHecZN3YBu7bx3S0p3gPNGmEMUMbYHP2zMlimBrZIbAxzntyGqWCqhXiFB21QhJ0t1Dw==", "cpu": [ "arm" ], @@ -3520,9 +3520,9 @@ } }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.3.1.tgz", - "integrity": "sha512-B/o/xTvSUlWG/OTCh96BkaWD1rE1kSJ20BdRgyG4CGGH318/PgcvimeMvJcwNJNDoRsyJxAEKveGGD6gKkffcQ==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-18.0.4.tgz", + "integrity": "sha512-PxVMh9ikp8Q3hKagb66FAsek8O/08GcMF5dXBH7xc5AiQMaZ6Az/gAXOeHp274nmu3StQEpl9Il/YH6Z9f4V0w==", "cpu": [ "arm64" ], @@ -3536,9 +3536,9 @@ } }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.3.1.tgz", - "integrity": "sha512-lOIAE3N6I1U2/dctuw2b3QIR+pXjlag3dYk+hLC+p/Sd5FZ0GBzpQhGzi03VsbQdIkIJ95K2gd05yolZLFOVqw==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-18.0.4.tgz", + "integrity": "sha512-Iz7Z4h2/dXJJvBcyeRHa+d3Ncc4Qz+OiGm6iRDXv4zjFm5EyC1tkSZIFNlNiRjmTToNHFr4savrCjCh8wRYejw==", "cpu": [ "arm64" ], @@ -3552,9 +3552,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.3.1.tgz", - "integrity": "sha512-pTCwQFAojEpeYP02xDZtnmRvViRLzbBXXWZNBf5pprCJGGKtHsVrwrswRJlt3btN/UWn2J/uFbTXyHDFWu8egA==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-18.0.4.tgz", + "integrity": "sha512-BVLkegIwxHnEB64VBraBxyC01D3C3dVNxq2b4iNaqr4mpWNmos+G/mvcTU3NS7W8ZjpBjlXgdEkpgkl2hMKTEA==", "cpu": [ "x64" ], @@ -3568,9 +3568,9 @@ } }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.3.1.tgz", - "integrity": "sha512-WIV4gQjQAVp2oW/qtY4FmP7eeLwyo+bkoVw9PY42A89N6o7rYa/z77s9ajnl98A3eGb2ghe9fwwgAerLgmuFzA==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-18.0.4.tgz", + "integrity": "sha512-WgVy41psjCE9uxjFi4P62UrWyKQ1e2IN2FZaIuwXEB9h8OU/+g9PFpL1Cs1llNoEKnapKXX4+9b5FHF9i7EKQw==", "cpu": [ "x64" ], @@ -3584,9 +3584,9 @@ } }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.3.1.tgz", - "integrity": "sha512-HKc4QWIP7r+FmK0Anzrey7udlDLaKscHbrNGQN9YV2/ulYVtHidIVZCXYZq3p93Gg55e4t2uAiUuXSXdyy8Q6g==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-18.0.4.tgz", + "integrity": "sha512-YoxhOrVKnS+kcNTnCg9M61cbigzGErYgnlI8kdZzH2ArD7mhv8bfZnSZUInf5Y8oDBVpKusel7AkCSofzSwigA==", "cpu": [ "arm64" ], @@ -3600,9 +3600,9 @@ } }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.3.1.tgz", - "integrity": "sha512-o2QrIeHGBG6BqViVCPP0J3V9UEDMjyDxyMJF/l/DT4dWr/+zdrIJ11eiQs7Tvo2GLXJFXI0fMur8p3HopnOvAQ==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-18.0.4.tgz", + "integrity": "sha512-FdAdl5buvtUXp8hZVRkK0AZeiCu35l0u+yHsulNViYdh3OXRT1hYJ0CeqpxlLfvbHqB9JzDPtJtG0dpKHH/O0Q==", "cpu": [ "x64" ], @@ -3984,9 +3984,9 @@ } }, "node_modules/@sigstore/core": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-0.2.0.tgz", - "integrity": "sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.0.0.tgz", + "integrity": "sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4213,13 +4213,13 @@ } }, "node_modules/@sigstore/verify": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-0.1.0.tgz", - "integrity": "sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.0.0.tgz", + "integrity": "sha512-sRU6nblDBQ4pVTWni019Kij+XQj4RP75WXN5z3qHk81dt/L8A7r3v8RgRInTup4/Jf90WNods9CcbnWj7zJ26w==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1" }, "engines": { @@ -4621,15 +4621,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.20.0.tgz", - "integrity": "sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { @@ -4648,6 +4648,114 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/scope-manager": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz", @@ -6998,9 +7106,9 @@ } }, "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8155,19 +8263,19 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.0.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.0.4.tgz", - "integrity": "sha512-A0cH+5svWPXzGZszBjXA1t0aAqVGS+/x3i02KFmb73rU0iMLnadEcVWcD/dGBZHIfAMKr3YpWh58f6wn4N909w==", + "version": "48.0.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.0.6.tgz", + "integrity": "sha512-LgwXOX6TWxxFYcbdVe+BJ94Kl/pgjSPYHLzqEdAMXTA1BH9WDx7iJ+9/iDajPF64LtzWX8C1mCfpbMZjJGhAOw==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.41.0", + "@es-joy/jsdoccomment": "~0.42.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", - "semver": "^7.5.4", + "semver": "^7.6.0", "spdx-expression-parse": "^4.0.0" }, "engines": { @@ -8202,9 +8310,9 @@ } }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -9472,9 +9580,9 @@ } }, "node_modules/git-semver-tags/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -9982,9 +10090,9 @@ } }, "node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz", + "integrity": "sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -10001,9 +10109,9 @@ "dev": true }, "node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz", + "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -10269,9 +10377,9 @@ } }, "node_modules/init-package-json/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -12255,14 +12363,14 @@ } }, "node_modules/lerna": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.0.2.tgz", - "integrity": "sha512-nnOIGI5V5Af9gfraNcMVoV1Fry/y7/h3nCQYk0/CMzBYDD+xbNL3DH8+c82AJkNR5ABslmpXjW4DLJ11/1b3CQ==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.1.2.tgz", + "integrity": "sha512-RCyBAn3XsqqvHbz3TxLfD7ylqzCi1A2UJnFEZmhURgx589vM3qYWQa/uOMeEEf565q6cAdtmulITciX1wgkAtw==", "dev": true, "dependencies": { - "@lerna/create": "8.0.2", + "@lerna/create": "8.1.2", "@npmcli/run-script": "7.0.2", - "@nx/devkit": ">=17.1.2 < 18", + "@nx/devkit": ">=17.1.2 < 19", "@octokit/plugin-enterprise-rest": "6.0.1", "@octokit/rest": "19.0.11", "byte-size": "8.1.1", @@ -12305,7 +12413,7 @@ "npm-packlist": "5.1.1", "npm-registry-fetch": "^14.0.5", "npmlog": "^6.0.2", - "nx": ">=17.1.2 < 18", + "nx": ">=17.1.2 < 19", "p-map": "4.0.0", "p-map-series": "2.1.0", "p-pipe": "3.1.0", @@ -12835,9 +12943,9 @@ } }, "node_modules/libnpmpublish/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -14338,9 +14446,9 @@ } }, "node_modules/node-gyp/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -14434,9 +14542,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -14506,9 +14614,9 @@ } }, "node_modules/npm-install-checks/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -14577,9 +14685,9 @@ } }, "node_modules/npm-package-arg/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -14716,9 +14824,9 @@ } }, "node_modules/npm-pick-manifest/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -15075,17 +15183,17 @@ "dev": true }, "node_modules/nx": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/nx/-/nx-17.3.1.tgz", - "integrity": "sha512-D7moIq+0D9WSjQmkVsce7GxKF603XASGBTApX6+fAdl2KN3aGG8zPlOEE55sVT0/OsdHeoHXPmydL/egTpG2WQ==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/nx/-/nx-18.0.4.tgz", + "integrity": "sha512-Njb1fGppOw/wM7nOA1hYlLduV2aL4PdXSv5QS5cVYicHT5tw5RnG/0z4j9e6QfFj2EydxVeDUtlGR98diZ3/Yw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/tao": "17.3.1", + "@nrwl/tao": "18.0.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.0-rc.46", "@zkochan/js-yaml": "0.0.6", - "axios": "^1.5.1", + "axios": "^1.6.0", "chalk": "^4.1.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", @@ -15106,7 +15214,7 @@ "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", - "semver": "7.5.3", + "semver": "^7.5.3", "string-width": "^4.2.3", "strong-log-transformer": "^2.1.0", "tar-stream": "~2.2.0", @@ -15121,19 +15229,19 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "17.3.1", - "@nx/nx-darwin-x64": "17.3.1", - "@nx/nx-freebsd-x64": "17.3.1", - "@nx/nx-linux-arm-gnueabihf": "17.3.1", - "@nx/nx-linux-arm64-gnu": "17.3.1", - "@nx/nx-linux-arm64-musl": "17.3.1", - "@nx/nx-linux-x64-gnu": "17.3.1", - "@nx/nx-linux-x64-musl": "17.3.1", - "@nx/nx-win32-arm64-msvc": "17.3.1", - "@nx/nx-win32-x64-msvc": "17.3.1" + "@nx/nx-darwin-arm64": "18.0.4", + "@nx/nx-darwin-x64": "18.0.4", + "@nx/nx-freebsd-x64": "18.0.4", + "@nx/nx-linux-arm-gnueabihf": "18.0.4", + "@nx/nx-linux-arm64-gnu": "18.0.4", + "@nx/nx-linux-arm64-musl": "18.0.4", + "@nx/nx-linux-x64-gnu": "18.0.4", + "@nx/nx-linux-x64-musl": "18.0.4", + "@nx/nx-win32-arm64-msvc": "18.0.4", + "@nx/nx-win32-x64-msvc": "18.0.4" }, "peerDependencies": { - "@swc-node/register": "^1.6.7", + "@swc-node/register": "^1.8.0", "@swc/core": "^1.3.85" }, "peerDependenciesMeta": { @@ -15272,9 +15380,9 @@ } }, "node_modules/nx/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -15828,13 +15936,13 @@ } }, "node_modules/pacote/node_modules/@sigstore/sign": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.1.tgz", - "integrity": "sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.2.tgz", + "integrity": "sha512-mAifqvvGOCkb5BJ5d/SRrVP5+kKCGxtcHuti6lgqZalIfNxikxlJMMptOqFp9+xV5LAnJMSaMWtzvcgNZ3PlPA==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1", "make-fetch-happen": "^13.0.0" }, @@ -16026,9 +16134,9 @@ } }, "node_modules/pacote/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -16053,17 +16161,17 @@ } }, "node_modules/pacote/node_modules/sigstore": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.0.tgz", - "integrity": "sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.1.tgz", + "integrity": "sha512-OBBSKvmjr4DCyUb+IC2p7wooOCsCNwaqvCilTJVNPo0y8lJl+LsCrfz4LtMwnw3Gn+8frt816wi1+DWZTUCpBQ==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.1", + "@sigstore/sign": "^2.2.2", "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^0.1.0" + "@sigstore/verify": "^1.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -16888,9 +16996,9 @@ } }, "node_modules/read-package-json/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -19318,9 +19426,9 @@ } }, "node_modules/typedoc": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.7.tgz", - "integrity": "sha512-m6A6JjQRg39p2ZVRIN3NKXgrN8vzlHhOS+r9ymUYtcUP/TIQPvWSq7YgE5ZjASfv5Vd5BW5xrir6Gm2XNNcOow==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.8.tgz", + "integrity": "sha512-mh8oLW66nwmeB9uTa0Bdcjfis+48bAjSH3uqdzSuSawfduROQLlXw//WSNZLYDdhmMVB7YcYZicq6e8T0d271A==", "dev": true, "dependencies": { "lunr": "^2.3.9", @@ -20591,7 +20699,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20623,7 +20731,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20665,7 +20773,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20707,7 +20815,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20738,7 +20846,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20769,7 +20877,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20805,7 +20913,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20836,7 +20944,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20867,7 +20975,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", "@esri/solution-common": "^5.2.2", @@ -20899,7 +21007,7 @@ "@esri/arcgis-rest-feature-layer": "^3.7.0", "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/solution-common": "^5.2.2", "@types/jasmine": "^5.1.4", "fetch-mock": "^7.7.3", @@ -20927,7 +21035,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20959,7 +21067,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20990,7 +21098,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/solution-common": "^5.2.2", "@esri/solution-simple-types": "^5.2.2", diff --git a/package.json b/package.json index d3fc61710..15cade2cd 100644 --- a/package.json +++ b/package.json @@ -70,13 +70,13 @@ "@chiragrupani/karma-chromium-edge-launcher": "^2.3.1", "@types/node": "^20.11.16", "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/parser": "^6.21.0", "babel-jest": "^29.7.0", "browserify-sign": "^4.2.2", "eslint": "^8.56.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.29.0", - "eslint-plugin-jsdoc": "^48.0.4", + "eslint-plugin-jsdoc": "^48.0.6", "eslint-plugin-prefer-arrow": "^1.2.3", "follow-redirects": "^1.15.5", "gh-pages": "^6.0.0", @@ -93,12 +93,12 @@ "karma-spec-reporter": "0.0.36", "karma-typescript": "^5.5.4", "karma-typescript-es6-transform": "^5.5.4", - "lerna": "^8.0.1", + "lerna": "^8.1.2", "lint-staged": "^15.2.0", "prettier": "^3.2.5", "sri-toolbox": "^0.2.0", "ts-node": "^10.9.2", - "typedoc": "^0.25.6", + "typedoc": "^0.25.8", "typescript": "~5.2.2", "ultra-runner": "^3.10.5" }, diff --git a/packages/common/package.json b/packages/common/package.json index 9aab9a4be..7d804dbbb 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/creator/package.json b/packages/creator/package.json index ca7a95c6d..eb6372630 100644 --- a/packages/creator/package.json +++ b/packages/creator/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/deployer/package.json b/packages/deployer/package.json index 663849f4f..84698a9f3 100644 --- a/packages/deployer/package.json +++ b/packages/deployer/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/feature-layer/package.json b/packages/feature-layer/package.json index 7ac79c6a8..e2e037ede 100644 --- a/packages/feature-layer/package.json +++ b/packages/feature-layer/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/file/package.json b/packages/file/package.json index e46b733be..e50b26346 100644 --- a/packages/file/package.json +++ b/packages/file/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/form/package.json b/packages/form/package.json index 2a034dd78..5e579f4b2 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/group/package.json b/packages/group/package.json index 542d9bf7d..f049d813e 100644 --- a/packages/group/package.json +++ b/packages/group/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/hub-types/package.json b/packages/hub-types/package.json index ee584fd0a..e0d6649d9 100644 --- a/packages/hub-types/package.json +++ b/packages/hub-types/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/simple-types/package.json b/packages/simple-types/package.json index 61bdfb18c..33d4edd62 100644 --- a/packages/simple-types/package.json +++ b/packages/simple-types/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", "@esri/solution-common": "^5.2.2", diff --git a/packages/storymap/package.json b/packages/storymap/package.json index 7cbc000d8..760573f5c 100644 --- a/packages/storymap/package.json +++ b/packages/storymap/package.json @@ -22,7 +22,7 @@ "@esri/arcgis-rest-feature-layer": "^3.7.0", "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/solution-common": "^5.2.2", "@types/jasmine": "^5.1.4", "fetch-mock": "^7.7.3", diff --git a/packages/velocity/package.json b/packages/velocity/package.json index 6b8556b75..aa2e3f2fb 100644 --- a/packages/velocity/package.json +++ b/packages/velocity/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/viewer/package.json b/packages/viewer/package.json index 625ace4ca..02eb3049d 100644 --- a/packages/viewer/package.json +++ b/packages/viewer/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/web-experience/package.json b/packages/web-experience/package.json index eed8a4ddf..a9e60fe39 100644 --- a/packages/web-experience/package.json +++ b/packages/web-experience/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.84.0", + "@esri/hub-common": "^14.89.1", "@esri/hub-initiatives": "^14.0.0", "@esri/solution-common": "^5.2.2", "@esri/solution-simple-types": "^5.2.2", From 0dbafba90fc8083ac12745522ab7f4600ded0284 Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Mon, 12 Feb 2024 13:46:49 -0800 Subject: [PATCH 02/14] Dependabot updates --- package-lock.json | 232 +++++++++++++--------------------------------- package.json | 4 +- 2 files changed, 64 insertions(+), 172 deletions(-) diff --git a/package-lock.json b/package-lock.json index b72218a74..9cfcdb853 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,8 +31,8 @@ "@babel/types": "^7.23.6", "@chiragrupani/karma-chromium-edge-launcher": "^2.3.1", "@types/node": "^20.11.16", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", "babel-jest": "^29.7.0", "browserify-sign": "^4.2.2", "eslint": "^8.56.0", @@ -4532,9 +4532,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", + "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", "dev": true }, "node_modules/@types/yargs": { @@ -4553,16 +4553,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.20.0.tgz", - "integrity": "sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz", + "integrity": "sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/type-utils": "6.20.0", - "@typescript-eslint/utils": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/type-utils": "7.0.1", + "@typescript-eslint/utils": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4578,8 +4578,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -4621,15 +4621,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.1.tgz", + "integrity": "sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/typescript-estree": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4" }, "engines": { @@ -4640,65 +4640,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -4706,64 +4648,14 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.20.0.tgz", - "integrity": "sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.1.tgz", + "integrity": "sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0" + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4774,13 +4666,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.20.0.tgz", - "integrity": "sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.1.tgz", + "integrity": "sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.20.0", - "@typescript-eslint/utils": "6.20.0", + "@typescript-eslint/typescript-estree": "7.0.1", + "@typescript-eslint/utils": "7.0.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4792,7 +4684,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -4801,9 +4693,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.20.0.tgz", - "integrity": "sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.1.tgz", + "integrity": "sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4814,13 +4706,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.20.0.tgz", - "integrity": "sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.1.tgz", + "integrity": "sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/visitor-keys": "6.20.0", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/visitor-keys": "7.0.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4854,9 +4746,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4875,17 +4767,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.20.0.tgz", - "integrity": "sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.1.tgz", + "integrity": "sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.20.0", - "@typescript-eslint/types": "6.20.0", - "@typescript-eslint/typescript-estree": "6.20.0", + "@typescript-eslint/scope-manager": "7.0.1", + "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/typescript-estree": "7.0.1", "semver": "^7.5.4" }, "engines": { @@ -4896,7 +4788,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { @@ -4912,9 +4804,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4933,12 +4825,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.20.0.tgz", - "integrity": "sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.1.tgz", + "integrity": "sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.20.0", + "@typescript-eslint/types": "7.0.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -18994,12 +18886,12 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", "dev": true, "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" diff --git a/package.json b/package.json index 15cade2cd..22ccb4bfc 100644 --- a/package.json +++ b/package.json @@ -69,8 +69,8 @@ "@babel/types": "^7.23.6", "@chiragrupani/karma-chromium-edge-launcher": "^2.3.1", "@types/node": "^20.11.16", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/parser": "^7.0.1", "babel-jest": "^29.7.0", "browserify-sign": "^4.2.2", "eslint": "^8.56.0", From 9a33cb760abdfe3295aa65b3af2d0eb6c2a44ffe Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Tue, 13 Feb 2024 15:42:15 -0800 Subject: [PATCH 03/14] Updated package-locks --- demos/compareJSON/package-lock.json | 48 +- demos/compareSolutions/package-lock.json | 48 +- demos/copyItemInfo/package-lock.json | 48 +- demos/copySolutions/package-lock.json | 68 +-- demos/createSolution/package-lock.json | 48 +- demos/deleteSolution/package-lock.json | 48 +- demos/deploySolution/package-lock.json | 48 +- demos/getItemInfo/package-lock.json | 48 +- demos/implementedTypes/package-lock.json | 48 +- demos/verifySolution/package-lock.json | 48 +- package-lock.json | 683 +++++++++++++---------- 11 files changed, 638 insertions(+), 545 deletions(-) diff --git a/demos/compareJSON/package-lock.json b/demos/compareJSON/package-lock.json index a0645e242..aba120a02 100644 --- a/demos/compareJSON/package-lock.json +++ b/demos/compareJSON/package-lock.json @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1057,9 +1057,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1075,9 +1075,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1246,9 +1246,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -1793,9 +1793,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2044,9 +2044,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/compareSolutions/package-lock.json b/demos/compareSolutions/package-lock.json index 918473ea2..0fc2528b9 100644 --- a/demos/compareSolutions/package-lock.json +++ b/demos/compareSolutions/package-lock.json @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1057,9 +1057,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1075,9 +1075,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1246,9 +1246,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -1793,9 +1793,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2044,9 +2044,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/copyItemInfo/package-lock.json b/demos/copyItemInfo/package-lock.json index f3d876b03..bcd0522f7 100644 --- a/demos/copyItemInfo/package-lock.json +++ b/demos/copyItemInfo/package-lock.json @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1057,9 +1057,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1075,9 +1075,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1246,9 +1246,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -1793,9 +1793,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2044,9 +2044,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/copySolutions/package-lock.json b/demos/copySolutions/package-lock.json index 5aa1bb7d1..ab7b35bc1 100644 --- a/demos/copySolutions/package-lock.json +++ b/demos/copySolutions/package-lock.json @@ -371,9 +371,9 @@ } }, "node_modules/@sindresorhus/merge-streams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", - "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.2.0.tgz", + "integrity": "sha512-UTce8mUwUW0RikMb/eseJ7ys0BRkZVFB86orHzrfW12ZmFtym5zua8joZ4L7okH2dDFHkcFjqnZ5GocWBXOFtA==", "dev": true, "engines": { "node": ">=18" @@ -436,9 +436,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -838,9 +838,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1141,9 +1141,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1169,9 +1169,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1187,9 +1187,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1322,9 +1322,9 @@ } }, "node_modules/fastq": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", - "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -1392,12 +1392,12 @@ "dev": true }, "node_modules/globby": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", - "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", "dev": true, "dependencies": { - "@sindresorhus/merge-streams": "^1.0.0", + "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", "ignore": "^5.2.4", "path-type": "^5.0.0", @@ -1427,9 +1427,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -2034,9 +2034,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2382,9 +2382,9 @@ "dev": true }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/createSolution/package-lock.json b/demos/createSolution/package-lock.json index bedead4e5..3ff4a46aa 100644 --- a/demos/createSolution/package-lock.json +++ b/demos/createSolution/package-lock.json @@ -597,9 +597,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -960,9 +960,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1239,9 +1239,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1267,9 +1267,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1285,9 +1285,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1456,9 +1456,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -2003,9 +2003,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2254,9 +2254,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/deleteSolution/package-lock.json b/demos/deleteSolution/package-lock.json index 555148f8d..9f86705cd 100644 --- a/demos/deleteSolution/package-lock.json +++ b/demos/deleteSolution/package-lock.json @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1057,9 +1057,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1075,9 +1075,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1246,9 +1246,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -1793,9 +1793,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2044,9 +2044,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/deploySolution/package-lock.json b/demos/deploySolution/package-lock.json index 44245a6ec..c43bfa1b2 100644 --- a/demos/deploySolution/package-lock.json +++ b/demos/deploySolution/package-lock.json @@ -597,9 +597,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -960,9 +960,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1239,9 +1239,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1267,9 +1267,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1285,9 +1285,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1456,9 +1456,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -2003,9 +2003,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2254,9 +2254,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/getItemInfo/package-lock.json b/demos/getItemInfo/package-lock.json index f9385f489..7d48cd617 100644 --- a/demos/getItemInfo/package-lock.json +++ b/demos/getItemInfo/package-lock.json @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1057,9 +1057,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1075,9 +1075,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1246,9 +1246,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -1793,9 +1793,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2044,9 +2044,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/implementedTypes/package-lock.json b/demos/implementedTypes/package-lock.json index 6bb47c5f4..07298aeb2 100644 --- a/demos/implementedTypes/package-lock.json +++ b/demos/implementedTypes/package-lock.json @@ -597,9 +597,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -960,9 +960,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1239,9 +1239,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1267,9 +1267,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1285,9 +1285,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1456,9 +1456,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -2003,9 +2003,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2254,9 +2254,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/demos/verifySolution/package-lock.json b/demos/verifySolution/package-lock.json index d1bbd9c43..f78cae057 100644 --- a/demos/verifySolution/package-lock.json +++ b/demos/verifySolution/package-lock.json @@ -403,9 +403,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.15.tgz", - "integrity": "sha512-gscmuADZfvNULx1eyirVbr3kVOVZtpQtzKMCZpeSZcN6MfbkRXAR4s9/gsQ4CzxLHw6EStDtKLNtSDL3vbq05A==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -766,9 +766,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -1045,9 +1045,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/enhanced-resolve": { @@ -1073,9 +1073,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -1091,9 +1091,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1262,9 +1262,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -1809,9 +1809,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -2060,9 +2060,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" diff --git a/package-lock.json b/package-lock.json index 9cfcdb853..4edc86a48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3130,9 +3130,9 @@ } }, "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3803,9 +3803,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", + "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", "cpu": [ "arm" ], @@ -3816,9 +3816,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", + "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", "cpu": [ "arm64" ], @@ -3829,9 +3829,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", + "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", "cpu": [ "arm64" ], @@ -3842,9 +3842,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", + "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", "cpu": [ "x64" ], @@ -3855,9 +3855,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", + "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", "cpu": [ "arm" ], @@ -3868,9 +3868,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", + "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", "cpu": [ "arm64" ], @@ -3881,9 +3881,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", + "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", "cpu": [ "arm64" ], @@ -3894,9 +3894,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", + "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", "cpu": [ "riscv64" ], @@ -3907,9 +3907,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", + "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", "cpu": [ "x64" ], @@ -3920,9 +3920,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", + "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", "cpu": [ "x64" ], @@ -3933,9 +3933,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", + "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", "cpu": [ "arm64" ], @@ -3946,9 +3946,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", + "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", "cpu": [ "ia32" ], @@ -3959,9 +3959,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", + "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", "cpu": [ "x64" ], @@ -4517,9 +4517,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", - "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -4600,9 +4600,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5171,13 +5171,16 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5235,17 +5238,36 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "node_modules/array.prototype.filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", + "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", + "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5291,17 +5313,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -6095,9 +6118,9 @@ } }, "node_modules/builtins/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6257,14 +6280,19 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6306,9 +6334,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001582", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001582.tgz", - "integrity": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -6362,16 +6390,10 @@ "dev": true }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6384,6 +6406,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -7406,17 +7431,20 @@ "dev": true }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { @@ -7678,9 +7706,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.653", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz", - "integrity": "sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA==", + "version": "1.4.668", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", + "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", "dev": true }, "node_modules/elliptic": { @@ -7779,9 +7807,9 @@ } }, "node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -7842,50 +7870,52 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz", + "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.2", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", + "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.8", "string.prototype.trimend": "^1.0.7", "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", + "typed-array-buffer": "^1.0.1", "typed-array-byte-length": "^1.0.0", "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -7894,6 +7924,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", @@ -7935,9 +7992,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -8692,9 +8749,9 @@ } }, "node_modules/fastq": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", - "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -9122,16 +9179,20 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9276,13 +9337,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -9791,12 +9853,12 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9827,10 +9889,13 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.1.tgz", - "integrity": "sha512-6J4rC9ROz0UkOpjn0BRtSSqlewDTDYJNQvy8N8RSrPCduUWId1o9BQPEVII/KKBqRk/ZIQff1YbRkUDCH2N5Sg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -9878,9 +9943,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -10455,12 +10520,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -10477,10 +10542,23 @@ "node": ">= 0.10" } }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/is-arguments": { @@ -10500,14 +10578,16 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10908,12 +10988,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -11104,9 +11184,9 @@ } }, "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -11333,9 +11413,9 @@ } }, "node_modules/jasmine/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "node_modules/jest-diff": { @@ -11611,6 +11691,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, "node_modules/jsdoc-type-pratt-parser": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", @@ -12584,9 +12670,9 @@ } }, "node_modules/lerna/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -12732,9 +12818,9 @@ } }, "node_modules/libnpmaccess/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -12912,9 +12998,9 @@ } }, "node_modules/lint-staged": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.1.tgz", - "integrity": "sha512-dhwAPnM85VdshybV9FWI/9ghTvMLoQLEXgVMx+ua2DN7mdfzd/tRfoU2yhMcBac0RHkofoxdnnJUokr8s4zKmQ==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.2.tgz", + "integrity": "sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==", "dev": true, "dependencies": { "chalk": "5.3.0", @@ -14955,9 +15041,9 @@ } }, "node_modules/npm-registry-fetch/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -15424,15 +15510,16 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", + "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "array.prototype.filter": "^1.0.3", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0" } }, "node_modules/object.values": { @@ -17184,14 +17271,15 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -17400,9 +17488,9 @@ } }, "node_modules/rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", + "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -17415,19 +17503,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", + "@rollup/rollup-android-arm-eabi": "4.10.0", + "@rollup/rollup-android-arm64": "4.10.0", + "@rollup/rollup-darwin-arm64": "4.10.0", + "@rollup/rollup-darwin-x64": "4.10.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", + "@rollup/rollup-linux-arm64-gnu": "4.10.0", + "@rollup/rollup-linux-arm64-musl": "4.10.0", + "@rollup/rollup-linux-riscv64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-musl": "4.10.0", + "@rollup/rollup-win32-arm64-msvc": "4.10.0", + "@rollup/rollup-win32-ia32-msvc": "4.10.0", + "@rollup/rollup-win32-x64-msvc": "4.10.0", "fsevents": "~2.3.2" } }, @@ -17517,13 +17605,13 @@ ] }, "node_modules/safe-regex-test": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", - "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, "engines": { @@ -17567,14 +17655,15 @@ "dev": true }, "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", "dev": true, "dependencies": { - "define-data-property": "^1.1.1", + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", + "get-intrinsic": "^1.2.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.1" }, @@ -17689,14 +17778,18 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -17982,9 +18075,9 @@ } }, "node_modules/sinon/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "engines": { "node": ">=0.3.1" @@ -18099,16 +18192,16 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz", + "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==", "dev": true, "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, @@ -18203,9 +18296,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, "node_modules/speedometer": { @@ -19238,14 +19331,14 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz", + "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -19828,9 +19921,9 @@ } }, "node_modules/update-notifier/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -20105,16 +20198,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -20604,9 +20697,9 @@ } }, "packages/common/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/creator": { @@ -20647,9 +20740,9 @@ } }, "packages/creator/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/deployer": { @@ -20689,9 +20782,9 @@ } }, "packages/deployer/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/feature-layer": { @@ -20720,9 +20813,9 @@ } }, "packages/feature-layer/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/file": { @@ -20751,9 +20844,9 @@ } }, "packages/file/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/form": { @@ -20787,9 +20880,9 @@ } }, "packages/form/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/group": { @@ -20818,9 +20911,9 @@ } }, "packages/group/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/hub-types": { @@ -20849,9 +20942,9 @@ } }, "packages/hub-types/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/simple-types": { @@ -20882,9 +20975,9 @@ } }, "packages/simple-types/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/storymap": { @@ -20909,9 +21002,9 @@ } }, "packages/storymap/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/velocity": { @@ -20941,9 +21034,9 @@ } }, "packages/velocity/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/viewer": { @@ -20972,9 +21065,9 @@ } }, "packages/viewer/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/web-experience": { @@ -21002,9 +21095,9 @@ } }, "packages/web-experience/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "packages/workflow": { @@ -21026,9 +21119,9 @@ } }, "packages/workflow/node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true } } From a6c203975842f66d85e6ca60bbbff840d2d4d8bf Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Tue, 13 Feb 2024 15:43:13 -0800 Subject: [PATCH 04/14] Templatized Form data --- packages/common/src/generalHelpers.ts | 15 +- packages/common/src/interfaces.ts | 15 ++ packages/common/src/workflowHelpers.ts | 5 +- packages/common/src/zip-utils.ts | 153 +++++++++++------- packages/common/test/zip-utils.test.ts | 30 +++- packages/deployer/src/deploySolutionItems.ts | 8 +- packages/deployer/src/helpers/zip-utils.ts | 40 +---- .../deployer/test/deploySolutionItems.test.ts | 2 +- .../deployer/test/helpers/zip-utils.test.ts | 27 +--- .../src/helpers/convert-item-to-template.ts | 54 ++++--- .../simple-types/src/helpers/zip-utils.ts | 98 +++++++++++ 11 files changed, 296 insertions(+), 151 deletions(-) create mode 100644 packages/simple-types/src/helpers/zip-utils.ts diff --git a/packages/common/src/generalHelpers.ts b/packages/common/src/generalHelpers.ts index 93a0d95db..8ca6b9f0c 100644 --- a/packages/common/src/generalHelpers.ts +++ b/packages/common/src/generalHelpers.ts @@ -190,7 +190,7 @@ export function generateEmptyCreationResponse( } /** - * Returns a regular expression matching a 32-character AGO-style id. + * Returns a regular expression matching a global search for a 32-character AGO-style id. * * @returns Regular expression */ @@ -200,7 +200,7 @@ export function getAgoIdRegEx( } /** - * Returns a regular expression matching a 32-character AGO-style id as a Solution template variable. + * Returns a regular expression matching a global search for a 32-character AGO-style id as a Solution template variable. * * @returns Regular expression */ @@ -209,6 +209,17 @@ export function getAgoIdTemplateRegEx( return /{{\b([0-9A-Fa-f]){32}\b}}/g; } +/** + * Returns a regular expression matching a global search for a specific AGO-style id. + * + * @returns Regular expression + */ +export function getSpecificAgoIdRegEx( + id: string +): RegExp { + return new RegExp(`\\b${id}\\b`, "g"); +} + /** * Converts JSON to a Blob. * diff --git a/packages/common/src/interfaces.ts b/packages/common/src/interfaces.ts index 7261848df..48e6eec60 100644 --- a/packages/common/src/interfaces.ts +++ b/packages/common/src/interfaces.ts @@ -1654,5 +1654,20 @@ export interface IVelocityTitle { titles: string[]; } +/** + * Relative path and string contents of a file in a zip object. + */ +export interface IZipObjectContentItem { + /** + * Filename + */ + file: string; + + /** + * Contents of file + */ + content: string; +} + //#endregion ---------------------------------------------------------------------------------------------------------// diff --git a/packages/common/src/workflowHelpers.ts b/packages/common/src/workflowHelpers.ts index ad7ca7d31..597cd1407 100644 --- a/packages/common/src/workflowHelpers.ts +++ b/packages/common/src/workflowHelpers.ts @@ -20,6 +20,7 @@ * @module workflowHelpers */ +import * as interfaces from "./interfaces"; import * as zipUtils from "./zip-utils"; import { createMimeTypedFile } from "./resources/copyDataIntoItem"; import { getAgoIdRegEx } from "./generalHelpers"; @@ -59,10 +60,10 @@ export async function compressWorkflowIntoZipFile( export async function extractWorkflowFromZipFile( zipFile: File ): Promise { - const zippedFiles = await zipUtils.getZipFileContents(await zipUtils.blobToZip(zipFile)); + const zippedFiles = await zipUtils.getZipObjectContents(await zipUtils.blobToZipObject(zipFile)); const workflowConfig: any = {}; - zippedFiles.forEach((zippedFile: zipUtils.IZipFileContent) => { + zippedFiles.forEach((zippedFile: interfaces.IZipObjectContentItem) => { workflowConfig[zippedFile.file] = zippedFile.content; }); diff --git a/packages/common/src/zip-utils.ts b/packages/common/src/zip-utils.ts index 86c365ad2..e8658cdec 100644 --- a/packages/common/src/zip-utils.ts +++ b/packages/common/src/zip-utils.ts @@ -15,33 +15,26 @@ */ import JSZip from "jszip"; +import * as interfaces from "./interfaces"; import { createMimeTypedFile } from "./resources/copyDataIntoItem"; import { updateItem } from "./restHelpers"; import { IItemUpdate, IUpdateItemResponse, UserSession } from "./interfaces"; -/** - * Relative path and string contents of a file in a zip file. - */ -export interface IZipFileContent { - file: string; - content: string; -} - // ------------------------------------------------------------------------------------------------------------------ // /** * Converts a blob to a zip file. * * @param blob Blob to convert - * @returns Promise resolving to zip file + * @returns Promise resolving to zip object */ -export async function blobToZip( +export async function blobToZipObject( blob: Blob ): Promise { - const zip = new JSZip(); - return zip.loadAsync(blob) - .then(async (zip) => { - return Promise.resolve(zip); + const zipObject = new JSZip(); + return zipObject.loadAsync(blob) + .then(async (zipObject) => { + return Promise.resolve(zipObject); }) .catch(() => { return Promise.reject(); @@ -49,19 +42,51 @@ export async function blobToZip( } /** - * Converts a JSON object to a zip. + * Gets the contents of the files in the zip. + * + * @param zip Zip file + * @param filesOfInterest Array of file names to extract from the zip file. If empty, all files are extracted. + * @returns Promise that resolves to an array of objects containing the file name and contents + */ +export async function getZipObjectContents( + zipObject: JSZip, + filesOfInterest: string[] = [] +): Promise { + const extractedZipFiles: interfaces.IZipObjectContentItem[] = []; + const fileContentsRetrievalPromises: Array> = []; + zipObject.forEach( + (relativePath, file) => { + const getContents = async () => { + if (filesOfInterest.length === 0 || filesOfInterest.includes(relativePath)) { + const fileContentsFetch = file.async('string'); + fileContentsRetrievalPromises.push(fileContentsFetch); + extractedZipFiles.push({ + file: relativePath, + content: await fileContentsFetch + }); + } + }; + void getContents(); + } + ); + await Promise.all(fileContentsRetrievalPromises); + return extractedZipFiles; +} + +/** + * Converts a JSON object to a zip object. * * @param zippedFileName Name of the file in the zip * @param zippedFileJson JSON object to convert - * @returns Promise resolving to zip + * @returns Promise resolving to zip object */ -export async function jsonToZip( +export async function jsonToZipObject( zippedFileName: string, zippedFileJson: any ): Promise { - const zip = new JSZip(); - zip.file(zippedFileName, JSON.stringify(zippedFileJson)); - return Promise.resolve(zip); + const zipObject = new JSZip(); + zipObject.file(zippedFileName, JSON.stringify(zippedFileJson)); + return Promise.resolve(zipObject); } /** @@ -69,6 +94,7 @@ export async function jsonToZip( * * @param zippedFileName Name of the file in the zip file * @param zippedFileJson JSON object to convert + * @param filename Name to use for zip file; ".zip" added if missing * @returns Promise resolving to zip file */ export async function jsonToZipFile( @@ -76,65 +102,56 @@ export async function jsonToZipFile( zippedFileJson: any, filename: string ): Promise { - const zip = await jsonToZip(zippedFileName, zippedFileJson); - - return createMimeTypedFile({ - blob: await zip.generateAsync({ type: "blob" }), - filename: `${filename}.zip`, - mimeType: "application/zip" - }) + const zipObject = await jsonToZipObject(zippedFileName, zippedFileJson); + return zipObjectToZipFile(zipObject, filename); } /** - * Gets the contents of the files in the zip. + * Extracts files of interest from a zip object, calls a supplied function to modify them, and + * restores the files into the zip object. * - * @param zip Zip file + * @param modificationCallback Function that modifies the specified files + * @param zip Zip file that contains the files to modify; modified in place * @param filesOfInterest Array of file names to extract from the zip file. If empty, all files are extracted. - * @returns Promise that resolves to an array of objects containing the file name and contents + * @returns Promise that resolves to the modified zip file if the swizzle was successful */ -export async function getZipFileContents( - zip: JSZip, +export async function modifyFilesinZipObject( + modificationCallback: (zipContentStr: interfaces.IZipObjectContentItem) => string, + zipObject: JSZip, filesOfInterest: string[] = [] -): Promise { - const extractedZipFiles: IZipFileContent[] = []; - const fileContentsRetrievalPromises: Array> = []; - zip.forEach( - (relativePath, file) => { - const getContents = async () => { - if (filesOfInterest.length === 0 || filesOfInterest.includes(relativePath)) { - const fileContentsFetch = file.async('string'); - fileContentsRetrievalPromises.push(fileContentsFetch); - extractedZipFiles.push({ - file: relativePath, - content: await fileContentsFetch - }); - } - }; - void getContents(); - } - ); - await Promise.all(fileContentsRetrievalPromises); - return extractedZipFiles; +): Promise { + // Get the contents of the form.json file + const extractedZipFiles = await getZipObjectContents(zipObject, filesOfInterest); + + extractedZipFiles.forEach((extractedZipFile) => { + // Run the modification callback + const content = modificationCallback(extractedZipFile); + + // Update the zip file + zipObject.file(extractedZipFile.file, content); + }); + + return Promise.resolve(zipObject); } /** - * Updates an item with a zip file. + * Updates an item with a zip object. * - * @param zip Zip file with which to update the item + * @param zipObject Zip file object with which to update the item * @param destinationItemId Destination item id * @param destinationAuthentication Destination authentication - * @param filesOfInterest Array of file names to extract from the zip file. If empty, all files are extracted. + * @param filesOfInterest Array of file names to extract from the zipObject file. If empty, all files are extracted. * @returns Promise that resolves to the update item response */ -export async function updateItemWithZip( - zip: JSZip, +export async function updateItemWithZipObject( + zipObject: JSZip, destinationItemId: string, destinationAuthentication: UserSession, ): Promise { const update: IItemUpdate = { id: destinationItemId, data: createMimeTypedFile({ - blob: await zip.generateAsync({ type: "blob" }), + blob: await zipObject.generateAsync({ type: "blob" }), filename: `${destinationItemId}.zip`, mimeType: "application/zip" }) @@ -145,3 +162,23 @@ export async function updateItemWithZip( destinationAuthentication ); } + +/** + * Converts a zip object to a zip file. + * + * @param zipObject Zip object + * @param filename Name to use for zip file; ".zip" added if missing + * @returns Promise resolving to zip file + */ +export async function zipObjectToZipFile( + zipObject: JSZip, + filename: string +): Promise { + const completeFilename = filename.endsWith(".zip") ? filename : `${filename}.zip`; + + return createMimeTypedFile({ + blob: await zipObject.generateAsync({ type: "blob" }), + filename: completeFilename, + mimeType: "application/zip" + }); +} diff --git a/packages/common/test/zip-utils.test.ts b/packages/common/test/zip-utils.test.ts index 3bd659069..9586d3a11 100644 --- a/packages/common/test/zip-utils.test.ts +++ b/packages/common/test/zip-utils.test.ts @@ -42,10 +42,30 @@ afterEach(() => { describe("Module `zip-utils`", () => { - describe("updateItemWithZip", () => { + describe("modifyFilesinZipObject", () => { + const itemId = "abc1234567890"; + + it("applies a function to all files in the zip", async () => { + let zip = generateFormZip(itemId); + const zipFileContents = await zipUtils.getZipObjectContents(zip); + const zipFiles: string[] = zipFileContents.map((zipFile) => zipFile.file); + + const zipFilesModified: string[] = []; + zip = await zipUtils.modifyFilesinZipObject( + (zipFile: interfaces.IZipObjectContentItem) => { + zipFilesModified.push(zipFile.file); + return zipFile.content; + }, zip + ); + + expect(zipFilesModified).toEqual(zipFiles); + }); + }); + + describe("updateItemWithZipObject", () => { it("catches the inability to convert a blob into a the zip", async () => { const blob = new Blob([""], { type: "application/zip" }); - zipUtils.blobToZip(blob) + zipUtils.blobToZipObject(blob) .then(() => { return Promise.reject("Should not have converted empty blob into a zip file"); }) @@ -68,7 +88,7 @@ describe("Module `zip-utils`", () => { return Promise.resolve(mockItems.get200Success(itemId)); }); - const response = await zipUtils.updateItemWithZip(zip, itemId, MOCK_USER_SESSION); + const response = await zipUtils.updateItemWithZipObject(zip, itemId, MOCK_USER_SESSION); expect(response).toEqual(mockItems.get200Success(itemId)); }); }); @@ -87,8 +107,8 @@ export async function compareZips( zip1: JSZip, zip2: JSZip ): Promise { - const zip1Files = await zipUtils.getZipFileContents(zip1); - const zip2Files = await zipUtils.getZipFileContents(zip2); + const zip1Files = await zipUtils.getZipObjectContents(zip1); + const zip2Files = await zipUtils.getZipObjectContents(zip2); if (zip1Files.length !== zip2Files.length) { console.log("length mismatch", zip1Files.length, zip2Files.length); diff --git a/packages/deployer/src/deploySolutionItems.ts b/packages/deployer/src/deploySolutionItems.ts index 65b69761d..d2210ac50 100644 --- a/packages/deployer/src/deploySolutionItems.ts +++ b/packages/deployer/src/deploySolutionItems.ts @@ -1137,7 +1137,7 @@ export function _createItemFromTemplateWhenReady( if (formZipFilePath) { // Fetch the zip file const zipBlob = await common.getBlob(formZipFilePath.url, storageAuthentication); - const zip = await common.blobToZip(zipBlob); + const zip = await common.blobToZipObject(zipBlob); // Swizzle the source id in the zip file const updatedZip = await zipUtils.swizzleIdsInZipFile(sourceItemId, destinationItemId, zip, [ @@ -1172,7 +1172,7 @@ export function _createItemFromTemplateWhenReady( }); // Update the new item - void common.updateItemWithZip(updatedZip, destinationItemId, destinationAuthentication); + void common.updateItemWithZipObject(updatedZip, destinationItemId, destinationAuthentication); } } @@ -1225,8 +1225,8 @@ export async function swizzleFormInfoContents( ): Promise { let webhooks: any[] = []; - await zipUtils.modifyFilesinZip( - (zipFile: common.IZipFileContent) => { + await common.modifyFilesinZipObject( + (zipFile: common.IZipObjectContentItem) => { let zipContent: any = JSON.parse(zipFile.content); zipContent.portalUrl = "{{portalBaseUrl}}"; diff --git a/packages/deployer/src/helpers/zip-utils.ts b/packages/deployer/src/helpers/zip-utils.ts index 894803076..55411ec5a 100644 --- a/packages/deployer/src/helpers/zip-utils.ts +++ b/packages/deployer/src/helpers/zip-utils.ts @@ -17,44 +17,8 @@ import * as common from "@esri/solution-common"; import JSZip from "jszip"; -/** - * Relative path and string contents of a file in a zip file. - */ -export interface IZipFileContent { - file: string; - content: string; -} - // ------------------------------------------------------------------------------------------------------------------ // -/** - * Extracts files of interest from a zip file, calls a supplied function to modify them, and - * restores the files into the zip. - * - * @param modificationCallback Function that modifies the specified files - * @param zip Zip file that contains the files to modify; modified in place - * @param filesOfInterest Array of file names to extract from the zip file. If empty, all files are extracted. - * @returns Promise that resolves to the modified zip file if the swizzle was successful - */ -export async function modifyFilesinZip( - modificationCallback: (zipContentStr: IZipFileContent) => string, - zip: JSZip, - filesOfInterest: string[] = [] -): Promise { - // Get the contents of the form.json file - const extractedZipFiles = await common.getZipFileContents(zip, filesOfInterest); - - extractedZipFiles.forEach((extractedZipFile) => { - // Run the modification callback - const content = modificationCallback(extractedZipFile); - - // Update the zip file - zip.file(extractedZipFile.file, content); - }); - - return Promise.resolve(zip); -} - /** * Swizzles the source item id with the destination item id in the form zip file and updates the destination item * with the swizzled zip file. @@ -71,8 +35,8 @@ export async function swizzleIdsInZipFile( zip: JSZip, filesOfInterest: string[] = [] ): Promise { - const updatedZip = await modifyFilesinZip( - (zipFile: IZipFileContent) => { + const updatedZip = await common.modifyFilesinZipObject( + (zipFile: common.IZipObjectContentItem) => { return zipFile.content.replace(new RegExp(sourceItemId, "g"), destinationItemId); }, zip, filesOfInterest ); diff --git a/packages/deployer/test/deploySolutionItems.test.ts b/packages/deployer/test/deploySolutionItems.test.ts index 84015e733..201c4c5da 100644 --- a/packages/deployer/test/deploySolutionItems.test.ts +++ b/packages/deployer/test/deploySolutionItems.test.ts @@ -1930,7 +1930,7 @@ describe("Module `deploySolutionItems`", () => { const updateItemWithZipSpy = spyOn( common, - "updateItemWithZip" + "updateItemWithZipObject" ).and.resolveTo(mockItems.get200Success(itemTemplate.itemId)); spyOn( diff --git a/packages/deployer/test/helpers/zip-utils.test.ts b/packages/deployer/test/helpers/zip-utils.test.ts index 92ed2253a..30cb4ab0a 100644 --- a/packages/deployer/test/helpers/zip-utils.test.ts +++ b/packages/deployer/test/helpers/zip-utils.test.ts @@ -41,7 +41,7 @@ afterEach(() => { describe("Module `zip-utils`", () => { - describe("modifyFilesinZip", () => { + describe("swizzleFormInfoContents", () => { const itemId = "abc1234567890"; it("swizzles the portal urls in the form json", async () => { @@ -53,7 +53,7 @@ describe("Module `zip-utils`", () => { await deploySolution.swizzleFormInfoContents(zip, templateDictionary); - const swizzledZipFile = await common.getZipFileContents(zip, ["esriinfo/form.json"]); + const swizzledZipFile = await common.getZipObjectContents(zip, ["esriinfo/form.json"]); const fileJson = JSON.parse(swizzledZipFile[0].content); expect(common.getProp(fileJson, "portalUrl")).toEqual("https://ginger.maps.arcgis.com"); expect(common.getProp(fileJson, "settings.notificationsInfo.webhooks")[0].url) @@ -71,28 +71,12 @@ describe("Module `zip-utils`", () => { await deploySolution.swizzleFormInfoContents(zip, templateDictionary); - const swizzledZipFile = await common.getZipFileContents(zip, ["esriinfo/form.json"]); + const swizzledZipFile = await common.getZipObjectContents(zip, ["esriinfo/form.json"]); const fileJson = JSON.parse(swizzledZipFile[0].content); expect(common.getProp(fileJson, "portalUrl")).toEqual("https://ginger.maps.arcgis.com"); return Promise.resolve(); }); - - it("applies a function to all files in the zip", async () => { - let zip = generateFormZip(itemId); - const zipFileContents = await common.getZipFileContents(zip); - const zipFiles: string[] = zipFileContents.map((zipFile) => zipFile.file); - - const zipFilesModified: string[] = []; - zip = await zipUtils.modifyFilesinZip( - (zipFile: zipUtils.IZipFileContent) => { - zipFilesModified.push(zipFile.file); - return zipFile.content; - }, zip - ); - - expect(zipFilesModified).toEqual(zipFiles); - }); }); describe("swizzleIdsInZipFile", () => { @@ -127,6 +111,7 @@ describe("Module `zip-utils`", () => { return Promise.resolve(); }); }); + }); // ------------------------------------------------------------------------------------------------------------------ // @@ -142,8 +127,8 @@ export async function compareZips( zip1: JSZip, zip2: JSZip ): Promise { - const zip1Files = await common.getZipFileContents(zip1); - const zip2Files = await common.getZipFileContents(zip2); + const zip1Files = await common.getZipObjectContents(zip1); + const zip2Files = await common.getZipObjectContents(zip2); if (zip1Files.length !== zip2Files.length) { console.log("length mismatch", zip1Files.length, zip2Files.length); diff --git a/packages/simple-types/src/helpers/convert-item-to-template.ts b/packages/simple-types/src/helpers/convert-item-to-template.ts index 9bf1ae23e..e74611f86 100644 --- a/packages/simple-types/src/helpers/convert-item-to-template.ts +++ b/packages/simple-types/src/helpers/convert-item-to-template.ts @@ -22,6 +22,7 @@ import * as quickcapture from "../quickcapture"; import * as webmap from "../webmap"; import * as webmappingapplication from "../webmappingapplication"; import * as workforce from "../workforce"; +import * as zipUtils from "./zip-utils"; /** * Converts an item into a template. @@ -147,28 +148,41 @@ export function convertItemToTemplate( // Add the form data to the template for a post-process resource upload if (itemDataResponse) { - itemTemplate.item.name = _getFormDataFilename( - itemTemplate.item.name, (itemDataResponse as File).name, `${itemTemplate.itemId}.zip` - ); - const storageName = common.convertItemResourceToStorageResource( - itemTemplate.itemId, - itemTemplate.item.name, - common.SolutionTemplateFormatVersion, - common.SolutionResourceType.data - ); + templateModifyingPromise = new Promise( + // eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor + async (resolve) => { - // Add the data file to the template so that it can be uploaded with the other resources in the solution - const dataFile: common.ISourceFile = { - itemId: itemTemplate.itemId, - file: itemDataResponse as File, - folder: storageName.folder, - filename: itemTemplate.item.name - } - itemTemplate.dataFile = dataFile; + // Templatize the form's data + itemTemplate.item.name = _getFormDataFilename( + itemTemplate.item.name, (itemDataResponse as File).name, `${itemTemplate.itemId}.zip` + ); + + const templatizedFormData: File = await zipUtils.templatizeFormData( + itemDataResponse as File, itemTemplate.item.name); + + // Add the data file to the template so that it can be uploaded with the other resources in the solution + const storageName = common.convertItemResourceToStorageResource( + itemTemplate.itemId, + itemTemplate.item.name, + common.SolutionTemplateFormatVersion, + common.SolutionResourceType.data + ); + + const dataFile: common.ISourceFile = { + itemId: itemTemplate.itemId, + file: templatizedFormData, + folder: storageName.folder, + filename: itemTemplate.item.name + } + itemTemplate.dataFile = dataFile; - // Update the template's resources - itemTemplate.resources.push( - storageName.folder + "/" + storageName.filename + // Update the template's resources + itemTemplate.resources.push( + storageName.folder + "/" + storageName.filename + ); + + resolve(itemTemplate); + } ); } break; diff --git a/packages/simple-types/src/helpers/zip-utils.ts b/packages/simple-types/src/helpers/zip-utils.ts new file mode 100644 index 000000000..849d79681 --- /dev/null +++ b/packages/simple-types/src/helpers/zip-utils.ts @@ -0,0 +1,98 @@ +/** @license + * Copyright 2024 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as common from "@esri/solution-common"; + +// ------------------------------------------------------------------------------------------------------------------ // + +/** + * Templatizes a form's zip file. + * + * @param zip Form zip file to templatize + * @param filename Name of the file to create after modifying the contents of the supplied zip file + * @returns Promise that resolves to the modified zip object if the swizzle was successful + */ +export async function templatizeFormData( + zip: File, + filename: string +): Promise { + const agoIdRegEx = common.getAgoIdRegEx(); + const zipObject = await common.blobToZipObject(zip); + + // Replace AGO ids + common.modifyFilesinZipObject( + (zipContentStr: common.IZipObjectContentItem): string => { + const agoIdMatches = zipContentStr.content.match(agoIdRegEx) ?? []; + agoIdMatches.forEach((match: string) => { + zipContentStr.content = zipContentStr.content.replace(match, `{{${match}}}`); + }); + return zipContentStr.content; + }, + zipObject); + + // Get the index file to get the name used for the other files + const filenameRoot = JSON.parse(await zipObject.file("esriinfo/forminfo.json").async("string")).name; + + // Get the file that contains any webhooks + const infoFilename = `esriinfo/${filenameRoot}.info`; + const infoFile = JSON.parse(await zipObject.file(infoFilename).async("string")); + + // Templatize each webhook + const webhooks = infoFile.notificationsInfo?.webhooks ?? []; + + webhooks.forEach((webhook: any) => { + const urlObj = new URL(webhook.url); + let url = urlObj.toString(); + + const server = `${urlObj.protocol}//${urlObj.host}`; + const workflowServer = "https://workflow.arcgis.com"; + if (server === workflowServer) { + // Templatize organization + const partialPath = url.substring(workflowServer.length); + const partialPathParts = partialPath.split("/"); + const orgId = partialPathParts[1]; + url = url.replace(orgId, "{{orgId}}"); + + } else { + // Templatize server + url = url.replace(server, "{{portalBaseUrl}}"); + } + + // Templatize all AGO ids in the URL + const agoIdMatches = url.match(agoIdRegEx) ?? []; + agoIdMatches.forEach((match: string) => { + const idRE = common.getSpecificAgoIdRegEx(match); + const templatizedId = `{{${match}}}`; + url = url.replace(idRE, templatizedId); + }); + + webhook.url = url; + }); + + // Return the modified zip file + if (webhooks.length > 0) { + infoFile.notificationsInfo.webhooks = webhooks; + zipObject.file(infoFilename, JSON.stringify(infoFile)); + return common.zipObjectToZipFile(zipObject, filename) + } else { + return common.createMimeTypedFile({ + blob: zip, + filename, + mimeType: "application/zip" + }); + + } +} From 32b1e1dbd0e11cc3f7ebeffd0928c4a436d72f08 Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Wed, 14 Feb 2024 18:07:48 -0800 Subject: [PATCH 05/14] Templatized Form data --- packages/common/src/generalHelpers.ts | 9 +- packages/common/src/workflowHelpers.ts | 2 +- packages/common/src/zip-utils.ts | 15 ++ packages/common/test/generalHelpers.test.ts | 77 ++++++- packages/common/test/mocks/agolItems.ts | 4 +- packages/common/test/restHelpers.test.ts | 6 +- packages/common/test/zip-utils.test.ts | 105 +++++++-- packages/deployer/src/deploySolutionItems.ts | 97 +-------- packages/deployer/src/helpers/zip-utils.ts | 40 ++-- .../deployer/test/deploySolutionItems.test.ts | 79 +++---- .../deployer/test/helpers/zip-utils.test.ts | 201 +++--------------- packages/group/test/group.test.ts | 10 +- .../simple-types/src/helpers/zip-utils.ts | 88 +++++--- .../helpers/convert-item-to-template.test.ts | 3 + .../test/helpers/zip-utils.test.ts | 115 ++++++++++ .../simple-types/test/quickcapture.test.ts | 2 +- .../test/webmappingapplication.test.ts | 90 ++++---- 17 files changed, 492 insertions(+), 451 deletions(-) create mode 100644 packages/simple-types/test/helpers/zip-utils.test.ts diff --git a/packages/common/src/generalHelpers.ts b/packages/common/src/generalHelpers.ts index 8ca6b9f0c..7e736bbc7 100644 --- a/packages/common/src/generalHelpers.ts +++ b/packages/common/src/generalHelpers.ts @@ -210,14 +210,15 @@ export function getAgoIdTemplateRegEx( } /** - * Returns a regular expression matching a global search for a specific AGO-style id. + * Returns a regular expression matching a global search for a word such as an AGO-style id. * + * @param word Word to search for, bounded by regular expression word boundaries (\b) * @returns Regular expression */ -export function getSpecificAgoIdRegEx( - id: string +export function getSpecifiedWordRegEx( + word: string ): RegExp { - return new RegExp(`\\b${id}\\b`, "g"); + return new RegExp(`\\b${word}\\b`, "g"); } /** diff --git a/packages/common/src/workflowHelpers.ts b/packages/common/src/workflowHelpers.ts index 597cd1407..8eb8a1617 100644 --- a/packages/common/src/workflowHelpers.ts +++ b/packages/common/src/workflowHelpers.ts @@ -86,7 +86,7 @@ export async function extractAndTemplatizeWorkflowFromZipFile( let workflowConfigStr = JSON.stringify(workflowConfig); const matches = workflowConfigStr.match(getAgoIdRegEx()) || []; matches.forEach((match: string) => { - workflowConfigStr = workflowConfigStr.replace(match, `{{${match}}}`); + workflowConfigStr = workflowConfigStr.replace(new RegExp(match, "g"), `{{${match}}}`); }); return Promise.resolve(JSON.parse(workflowConfigStr)); diff --git a/packages/common/src/zip-utils.ts b/packages/common/src/zip-utils.ts index e8658cdec..8a2d280c2 100644 --- a/packages/common/src/zip-utils.ts +++ b/packages/common/src/zip-utils.ts @@ -17,6 +17,7 @@ import JSZip from "jszip"; import * as interfaces from "./interfaces"; import { createMimeTypedFile } from "./resources/copyDataIntoItem"; +import { getBlob } from "./resources/get-blob"; import { updateItem } from "./restHelpers"; import { IItemUpdate, IUpdateItemResponse, UserSession } from "./interfaces"; @@ -41,6 +42,20 @@ export async function blobToZipObject( }); } +/** + * Fetches a zip object. + * + * @param formZipFilePath Path to the zip file + * @param authentication Credentials to zip file + * @returns Promise resolving to zip object + */ +export async function fetchZipObject( + formZipFilePath: string, + authentication: UserSession +): Promise { + return blobToZipObject(await getBlob(formZipFilePath, authentication)); +} + /** * Gets the contents of the files in the zip. * diff --git a/packages/common/test/generalHelpers.test.ts b/packages/common/test/generalHelpers.test.ts index 9b7e63e0e..b1d57f87b 100644 --- a/packages/common/test/generalHelpers.test.ts +++ b/packages/common/test/generalHelpers.test.ts @@ -1094,17 +1094,24 @@ describe("Module `generalHelpers`: common utility functions shared across packag expect(match).not.toBeNull(); }); - it("doesn't match a string that's not an id 1", () => { - const id = "bad3483e025c47338d43df308c11730"; // too short + it("doesn't match a string that's not an id: too short", () => { + const id = "bad3483e025c47338d43df308c11730"; const match = id.match(generalHelpers.getAgoIdRegEx()); expect(match).toBeNull(); }); - it("doesn't match a string that's not an id 2", () => { - const id = "bad3483e025c47338d43df308c117308a"; // too long + it("doesn't match a string that's not an id: too long", () => { + const id = "bad3483e025c47338d43df308c117308a"; const match = id.match(generalHelpers.getAgoIdRegEx()); expect(match).toBeNull(); }); + + it("matches multiple instances of ids", () => { + const id = "bad3483e025c47338d43df308c117308, bad3483e025c47338d43df308c117309"; + const match = id.match(generalHelpers.getAgoIdRegEx()); + expect(match).not.toBeNull(); + expect(match?.length).toEqual(2); + }); }); describe("getAgoIdTemplateRegEx", () => { @@ -1127,13 +1134,13 @@ describe("Module `generalHelpers`: common utility functions shared across packag }); it("doesn't match a string that's not a templatized id 1", () => { - const id = "{{bad3483e025c47338d43df308c11730}}"; // too short + const id = "{{bad3483e025c47338d43df308c11730}}"; const match = id.match(generalHelpers.getAgoIdTemplateRegEx()); expect(match).toBeNull(); }); it("doesn't match a string that's not a templatized id 2", () => { - const id = "{{bad3483e025c47338d43df308c117308a}}"; // too long + const id = "{{bad3483e025c47338d43df308c117308a}}"; const match = id.match(generalHelpers.getAgoIdTemplateRegEx()); expect(match).toBeNull(); }); @@ -1143,6 +1150,64 @@ describe("Module `generalHelpers`: common utility functions shared across packag const match = id.match(generalHelpers.getAgoIdTemplateRegEx()); expect(match).toBeNull(); }); + + it("matches multiple instances of templatized ids", () => { + const id = "{{bad3483e025c47338d43df308c117308}}, {{bad3483e025c47338d43df308c117309}}"; + const match = id.match(generalHelpers.getAgoIdTemplateRegEx()); + expect(match).not.toBeNull(); + expect(match?.length).toEqual(2); + }); + }); + + describe("getSpecifiedWordRegEx", () => { + it("matches an word 1", () => { + const word = "bad3483e025c47338d43df308c117308"; + const match = word.match(generalHelpers.getSpecifiedWordRegEx(word)); + expect(match).not.toBeNull(); + }); + + it("matches an word 2", () => { + const word = "bad3483e025c47338d43df308c117308"; + const test = "\"bad3483e025c47338d43df308c117308\""; + const match = test.match(generalHelpers.getSpecifiedWordRegEx(word)); + expect(match).not.toBeNull(); + }); + + it("matches an word 3", () => { + const word = "bad3483e025c47338d43df308c117308"; + const test = ",bad3483e025c47338d43df308c117308,"; + const match = test.match(generalHelpers.getSpecifiedWordRegEx(word)); + expect(match).not.toBeNull(); + }); + + it("doesn't match a word 1", () => { + const word = "bad3483e025c47338d43df308c117308"; + const test = "bad3483e025c47338d43df308c11730"; + const match = test.match(generalHelpers.getSpecifiedWordRegEx(word)); + expect(match).toBeNull(); + }); + + it("doesn't match a word 2", () => { + const word = "bad3483e025c47338d43df308c117308"; + const test = "bad3483e025c47338d43df308c117308a"; + const match = test.match(generalHelpers.getSpecifiedWordRegEx(word)); + expect(match).toBeNull(); + }); + + it("doesn't match a word 3", () => { + const word = "bad3483e025c47338d43df308c117308"; + const test = "bad3483e025c47338d43df308c117309"; + const match = test.match(generalHelpers.getSpecifiedWordRegEx(word)); + expect(match).toBeNull(); + }); + + it("matches multiple instances of word", () => { + const word = "bad3483e025c47338d43df308c117308"; + const test = "bad3483e025c47338d43df308c117308, bad3483e025c47338d43df308c117309, bad3483e025c47338d43df308c117308,"; + const match = test.match(generalHelpers.getSpecifiedWordRegEx(word)); + expect(match).not.toBeNull(); + expect(match?.length).toEqual(2); + }); }); describe("getIDs", () => { diff --git a/packages/common/test/mocks/agolItems.ts b/packages/common/test/mocks/agolItems.ts index 51c8c1c48..7b8064fe5 100644 --- a/packages/common/test/mocks/agolItems.ts +++ b/packages/common/test/mocks/agolItems.ts @@ -745,13 +745,13 @@ export function getAGOLItemData(type?: string, itemId?: string): any { featureServiceItemId: "4efe5f693de34620934787ead6693f10", dataSourceId: "1d4de1e4-ef58-4e02-9159-7a6e6701cada", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/0" + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/0" }, { featureServiceItemId: "4efe5f693de34620934787ead6693f10", dataSourceId: "1687a71b-cf77-48ed-b948-c66e228a0f74", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1" + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1" } ], itemId: "9da79c91fc7642ebb4c0bbacfbacd510", diff --git a/packages/common/test/restHelpers.test.ts b/packages/common/test/restHelpers.test.ts index 103dc1c17..c4900a051 100644 --- a/packages/common/test/restHelpers.test.ts +++ b/packages/common/test/restHelpers.test.ts @@ -3015,7 +3015,7 @@ describe("Module `restHelpers`: common REST utility functions shared across pack it("can set workflow configuration", async () => { const orgId = "abcdefghij"; const itemId = "1234567890"; - const configurationZipFile = await zipUtilsTest.getSampleZipBlob(itemId); + const configurationZipFile = await zipUtilsTest.getSampleFormZipFile(itemId, "workflow"); const restHelpersGetSpy = spyOn(restHelpersGet, "getUser").and.resolveTo({ orgId @@ -3023,8 +3023,8 @@ describe("Module `restHelpers`: common REST utility functions shared across pack const requestSpy = spyOn(request, "request") .and.resolveTo({ success: true }); - const response = await restHelpers.setWorkflowConfigurationZip( - generalHelpers.blobToFile(configurationZipFile, "workflow"), itemId, MOCK_USER_SESSION); + const response = await restHelpers.setWorkflowConfigurationZip(configurationZipFile, itemId, MOCK_USER_SESSION); + expect(restHelpersGetSpy.calls.count()).toEqual(1); expect(requestSpy.calls.count()).toEqual(1); expect(requestSpy.calls.argsFor(0)[0]).toEqual(`https://workflow.arcgis.com/${orgId}/admin/${itemId}/import`); diff --git a/packages/common/test/zip-utils.test.ts b/packages/common/test/zip-utils.test.ts index 9586d3a11..57f66d9fc 100644 --- a/packages/common/test/zip-utils.test.ts +++ b/packages/common/test/zip-utils.test.ts @@ -15,15 +15,16 @@ */ /** - * Provides tests for functions involving deployment of items via the REST API. + * Provides tests for zip file helper functions. */ -import * as fetchMock from "fetch-mock"; +import * as generalHelpers from "../src/generalHelpers"; import * as interfaces from "../src/interfaces"; import * as mockItems from "./mocks/agolItems"; import * as restHelpers from "../src/restHelpers"; import * as utils from "./mocks/utils"; import * as zipUtils from "../src/zip-utils"; +import * as getBlobUtil from "../src/resources/get-blob"; import JSZip from "jszip"; // ------------------------------------------------------------------------------------------------------------------ // @@ -36,17 +37,42 @@ beforeEach(() => { MOCK_USER_SESSION = utils.createRuntimeMockUserSession(); }); -afterEach(() => { - fetchMock.restore(); -}); - describe("Module `zip-utils`", () => { + describe("fetchZipObject", () => { + it("fetches a zip object", async () => { + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + spyOn(getBlobUtil, "getBlob").and.returnValue(getSampleFormZipBlob(itemId)); + + const zip = await zipUtils.fetchZipObject(itemId, MOCK_USER_SESSION); + const zipFiles = await zipUtils.getZipObjectContents(zip); + expect(zipFiles.length).toBe(7); + }); + }); + + describe("getZipObjectContents", () => { + it("returns the contents of a zip object", async () => { + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + const zip = generateFormZipObject(itemId); + const zipFiles = await zipUtils.getZipObjectContents(zip); + expect(zipFiles.length).toBe(7); + }); + + it("returns just two files out of a zip object", async () => { + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + const zip = generateFormZipObject(itemId); + const zipFiles = await zipUtils.getZipObjectContents(zip, ["esriinfo/form.info", "esriinfo/form.json"]); + expect(zipFiles.length).toBe(2); + expect(zipFiles[0].file).toBe("esriinfo/form.info"); + expect(zipFiles[1].file).toBe("esriinfo/form.json"); + }); + }); + describe("modifyFilesinZipObject", () => { - const itemId = "abc1234567890"; + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; it("applies a function to all files in the zip", async () => { - let zip = generateFormZip(itemId); + let zip = generateFormZipObject(itemId); const zipFileContents = await zipUtils.getZipObjectContents(zip); const zipFiles: string[] = zipFileContents.map((zipFile) => zipFile.file); @@ -75,8 +101,8 @@ describe("Module `zip-utils`", () => { }); it("updates the item with a zip file", async () => { - const itemId = "abc1234567890"; - const zip = generateFormZip(itemId); + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + const zip = generateFormZipObject(itemId); spyOn(restHelpers, "updateItem").and.callFake(async ( update: interfaces.IItemUpdate @@ -92,6 +118,24 @@ describe("Module `zip-utils`", () => { expect(response).toEqual(mockItems.get200Success(itemId)); }); }); + + describe("zipObjectToZipFile", () => { + it("converts a zip object to a zip file with full filename", async () => { + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + const zip = generateFormZipObject(itemId); + const zipFile = await zipUtils.zipObjectToZipFile(zip, "Fred.zip"); + expect(zipFile.name).toEqual("Fred.zip"); + expect(zipFile.type).toEqual("application/zip"); + }); + + it("converts a zip object to a zip file with partial filename", async () => { + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + const zip = generateFormZipObject(itemId); + const zipFile = await zipUtils.zipObjectToZipFile(zip, "Fred"); + expect(zipFile.name).toEqual("Fred.zip"); + expect(zipFile.type).toEqual("application/zip"); + }); + }); }); // ------------------------------------------------------------------------------------------------------------------ // @@ -140,16 +184,26 @@ export async function compareZips( * @param includeWebhooks Whether to include webhooks in the form.json file * @returns Zip file containing form files */ -export function generateFormZip( +export function generateFormZipObject( id: string, includeWebhooks: boolean = true ): JSZip { + /* + There are 7 items in the file as reported by zipObject.forEach: + "esriinfo/", + "esriinfo/form.info", + "esriinfo/form.itemInfo", + "esriinfo/form.json", + "esriinfo/form.webform", + "esriinfo/form.xml", + "esriinfo/forminfo.json" + */ const zip = new JSZip(); - zip.file("esriinfo/form.info", `{"displayInfo":{"map":{"coordinateFormat":null,"defaultType":{"name":""},"home":{"latitude":null,"longitude":null,"zoomLevel":0},"preview":{"coordinateFormat":null,"zoomLevel":0}}}}`); - zip.file("esriinfo/form.itemInfo", `{"id":"${id}","created":1705691185000,"isOrgItem":true,"modified":1705691194000,"guid":null,"name":"${id}","title":"Untitled survey","type":"Form","typeKeywords":["Draft","Form","Survey123","Survey123 Hub","xForm"]}`); includeWebhooks - ? zip.file("esriinfo/form.json", `{"layerName":"survey","portalUrl":"https://www.arcgis.com","questions":[{"id":"field_1","position":0,"fieldName":"untitled_question_1","name":"untitled_question_1","type":"esriQuestionTypeText","isRequired":false,"fieldType":"esriFieldTypeString","validation":{"valueRange":{"isEnabled":false},"inputMask":{"isEnabled":false,"customFormat":""}},"label":"Untitled question 1","description":null}],"settings":{"notificationsInfo":{"webhooks":[{"active":true,"name":"TestWebhook","url":"https://fred.maps.arcgis.com/1e9cec0aec654a2d8d8760ff054a2b0b/link","includePortalInfo":false,"includeServiceRequest":true,"includeUserInfo":true,"includeServiceResponse":true,"includeSurveyInfo":true,"events":["addData"],"id":"PGvupkuxX","modified":1705691375721,"created":1705691375721}]}},"version":"3.19"}`) - : zip.file("esriinfo/form.json", `{"layerName":"survey","portalUrl":"https://www.arcgis.com","questions":[{"id":"field_1","position":0,"fieldName":"untitled_question_1","name":"untitled_question_1","type":"esriQuestionTypeText","isRequired":false,"fieldType":"esriFieldTypeString","validation":{"valueRange":{"isEnabled":false},"inputMask":{"isEnabled":false,"customFormat":""}},"label":"Untitled question 1","description":null}],"settings":{"notificationsInfo":{}},"version":"3.19"}`); + ? zip.file("esriinfo/form.info", `{"displayInfo":{"map":{"coordinateFormat":null,"defaultType":{"name":""},"home":{"latitude":null,"longitude":null,"zoomLevel":0},"preview":{"coordinateFormat":null,"zoomLevel":0}}},"notificationsInfo":{"webhooks":[{"name":"TestWebhook","url":"https://fred.maps.arcgis.com/${id}/link"},{"name":"TestWebhook","url":"https://workflow.arcgis.com/org1234567890/${id}/webhooks"}]}}`) + : zip.file("esriinfo/form.info", `{"displayInfo":{"map":{"coordinateFormat":null,"defaultType":{"name":""},"home":{"latitude":null,"longitude":null,"zoomLevel":0},"preview":{"coordinateFormat":null,"zoomLevel":0}}}}`); + zip.file("esriinfo/form.itemInfo", `{"id":"${id}","created":1705691185000,"isOrgItem":true,"modified":1705691194000,"guid":null,"name":"${id}","title":"Untitled survey","type":"Form","typeKeywords":["Draft","Form","Survey123","Survey123 Hub","xForm"]}`); + zip.file("esriinfo/form.json", `{"layerName":"survey","portalUrl":"https://www.arcgis.com","questions":[{"id":"field_1","position":0,"fieldName":"untitled_question_1","name":"untitled_question_1","type":"esriQuestionTypeText","isRequired":false,"fieldType":"esriFieldTypeString","validation":{"valueRange":{"isEnabled":false},"inputMask":{"isEnabled":false,"customFormat":""}},"label":"Untitled question 1","description":null}],"notificationsInfo":{},"version":"3.19"}`); zip.file("esriinfo/form.webform", `{"form":"
\n

survey

\n \n \n \n \n \n \n \n \n \n
","model":"\n \n \n \n \n \n \n \n \n \n \n \n ","languageMap":{},"transformerVersion":"2.3.0"}`); zip.file("esriinfo/form.xml", ` @@ -192,8 +246,23 @@ export function generateFormZip( * @param id Item id to use in the zip file * @returns Promise resolving to the blob */ -export async function getSampleZipBlob( - id: string +export async function getSampleFormZipBlob( + id: string, + includeWebhooks: boolean = true ): Promise { - return await generateFormZip(id).generateAsync({ type: "blob" }) + return await generateFormZipObject(id, includeWebhooks).generateAsync({ type: "blob" }) } + +/** + * Generates a sample zip file and returns it as a file. + * + * @param id Item id to use in the zip file + * @returns Promise resolving to the file + */ +export async function getSampleFormZipFile( + id: string, + filename: string, + includeWebhooks: boolean = true +): Promise { + return generalHelpers.blobToFile(await getSampleFormZipBlob(id, includeWebhooks), filename); +} \ No newline at end of file diff --git a/packages/deployer/src/deploySolutionItems.ts b/packages/deployer/src/deploySolutionItems.ts index d2210ac50..7c2ca7e2d 100644 --- a/packages/deployer/src/deploySolutionItems.ts +++ b/packages/deployer/src/deploySolutionItems.ts @@ -23,7 +23,6 @@ import * as common from "@esri/solution-common"; import * as zipUtils from "./helpers/zip-utils"; import { moduleMap } from "./module-map"; -import JSZip from "jszip"; const UNSUPPORTED: common.moduleHandler = null; @@ -1119,6 +1118,7 @@ export function _createItemFromTemplateWhenReady( if (resourceFilePaths.length > 0) { const destinationItemId = createResponse.id; + // Update and copy form resource if (template.type === "Form") { // Filter out Form zip file @@ -1135,44 +1135,12 @@ export function _createItemFromTemplateWhenReady( ); if (formZipFilePath) { - // Fetch the zip file - const zipBlob = await common.getBlob(formZipFilePath.url, storageAuthentication); - const zip = await common.blobToZipObject(zipBlob); - - // Swizzle the source id in the zip file - const updatedZip = await zipUtils.swizzleIdsInZipFile(sourceItemId, destinationItemId, zip, [ - "esriinfo/form.info", - "esriinfo/form.itemInfo", - "esriinfo/form.json", - "esriinfo/form.webform", - "esriinfo/form.xml" - ]); - - // Swizzle webhook(s) in the form.json file and restore them - const surveyWebhookAddUrl = `https://survey123.arcgis.com/api/survey/${destinationItemId}/webhook/add`; - const webhooks: any[] = await swizzleFormInfoContents(updatedZip, templateDictionary); - webhooks.forEach((webhook: any) => { - try { - // Remove unnecessary properties - delete webhook.id; - delete webhook.created; - delete webhook.modified; - - // Add the webhook - void common.rest_request(surveyWebhookAddUrl, { - params: { - webhook, - portalUrl: "https://www.arcgis.com" - }, - authentication: destinationAuthentication - }); - } - // eslint-disable-next-line no-empty - catch (_e) {} - }); + // Fetch the formzip file and demplatize it + const zipObject = await common.fetchZipObject(formZipFilePath.url, storageAuthentication); + const updatedZipObject = await zipUtils.detemplatizeFormData(zipObject, templateDictionary); // Update the new item - void common.updateItemWithZipObject(updatedZip, destinationItemId, destinationAuthentication); + void common.updateItemWithZipObject(updatedZipObject, destinationItemId, destinationAuthentication); } } @@ -1212,61 +1180,6 @@ export function _createItemFromTemplateWhenReady( return templateDictionary[sourceItemId].def; } -/** - * Templatize the contents of the form.json file in a zip file and then replace the templates. - * - * @param zip Zip file containing the form.json file; modified in place - * @param templateDictionary Dictionary of replacement values - * @returns Promise that resolves to webhooks in the form.info file - */ -export async function swizzleFormInfoContents( - zip: JSZip, - templateDictionary: any -): Promise { - let webhooks: any[] = []; - - await common.modifyFilesinZipObject( - (zipFile: common.IZipObjectContentItem) => { - let zipContent: any = JSON.parse(zipFile.content); - - zipContent.portalUrl = "{{portalBaseUrl}}"; - - // Templatize the webhook urls - webhooks = common.getProp(zipContent, "settings.notificationsInfo.webhooks") ?? []; - webhooks.forEach((webhook: any) => { - if (webhook.url) { - const url = new URL(webhook.url); - if (url.origin.endsWith(".arcgis.com")) { - // Templatize the URL's origin - webhook.url = webhook.url.replace(url.origin, "{{portalBaseUrl}}"); - } - - // Templatize AGO ids in the URL - const matches = [...webhook.url.matchAll(/[a-f0-9]{32}/g)]; - matches.forEach((match: any) => { - const agoId = match[0]; - webhook.url = webhook.url.replace(agoId, `{{${agoId}}}`); - }); - } - }); - - if (webhooks.length > 0) { - common.setProp(zipContent, "settings.notificationsInfo.webhooks", webhooks); - } - - // Replace the templates - zipContent = common.replaceInTemplate(zipContent, templateDictionary); - - webhooks = webhooks.length > 0 && - common.getProp(zipContent, "settings.notificationsInfo.webhooks"); - - return JSON.stringify(zipContent); - }, zip, ["esriinfo/form.json"] - ); - - return webhooks; -} - /** * Accumulates the estimated deployment cost of a set of templates. * diff --git a/packages/deployer/src/helpers/zip-utils.ts b/packages/deployer/src/helpers/zip-utils.ts index 55411ec5a..7c85922c7 100644 --- a/packages/deployer/src/helpers/zip-utils.ts +++ b/packages/deployer/src/helpers/zip-utils.ts @@ -20,26 +20,34 @@ import JSZip from "jszip"; // ------------------------------------------------------------------------------------------------------------------ // /** - * Swizzles the source item id with the destination item id in the form zip file and updates the destination item - * with the swizzled zip file. + * Detemplatize the contents of a zip object. * - * @param sourceItemId Source item id - * @param destinationItemId Destination item id - * @param zipBlob Form zip file - * @param filesOfInterest Array of file names to extract from the zip file. If empty, all files are extracted. - * @returns Promise that resolves to the modified zip file if the swizzle was successful + * @param zipObject Zip file to be modified in place + * @param templateDictionary Dictionary of replacement values + * @returns Promise that resolves to the updated zip object */ -export async function swizzleIdsInZipFile( - sourceItemId: string, - destinationItemId: string, - zip: JSZip, - filesOfInterest: string[] = [] +export async function detemplatizeFormData( + zipObject: JSZip, + templateDictionary: any ): Promise { - const updatedZip = await common.modifyFilesinZipObject( + // Get the contents of the zip object + const zipObjectContents = await common.getZipObjectContents(zipObject); + + // Detemplatize the contents of each file in a zip file and replace them in the zip object + zipObjectContents.forEach( (zipFile: common.IZipObjectContentItem) => { - return zipFile.content.replace(new RegExp(sourceItemId, "g"), destinationItemId); - }, zip, filesOfInterest + try { + // Replace the templates + const updatedZipContent = common.replaceInTemplate(zipFile.content, templateDictionary); + + // Replace the file content + zipObject.file(zipFile.file, updatedZipContent); + + } catch (_e) { + // Ignore errors + } + } ); - return Promise.resolve(updatedZip); + return Promise.resolve(zipObject); } diff --git a/packages/deployer/test/deploySolutionItems.test.ts b/packages/deployer/test/deploySolutionItems.test.ts index 201c4c5da..bf1d6bf53 100644 --- a/packages/deployer/test/deploySolutionItems.test.ts +++ b/packages/deployer/test/deploySolutionItems.test.ts @@ -27,7 +27,7 @@ import * as templates from "../../common/test/mocks/templates"; import * as testUtils from "../../common/test/mocks/utils"; import * as utils from "../../common/test/mocks/utils"; import * as zipUtils from "../src/helpers/zip-utils"; -import * as zipUtilsTest from "../test/helpers/zip-utils.test"; +import * as zipUtilsTest from "../../common/test/zip-utils.test"; import JSZip from "jszip"; // ------------------------------------------------------------------------------------------------------------------ // @@ -1900,10 +1900,8 @@ describe("Module `deploySolutionItems`", () => { }); }); - it("handles Form zip file resources separately", done => { - const itemTemplate: common.IItemTemplate = templates.getItemTemplate( - "Form" - ); + it("handles Form zip file resources separately", async () => { + const itemTemplate: common.IItemTemplate = templates.getItemTemplate("Form"); const resourceFilePaths: common.IDeployFileCopyPath[] = [{ type: common.EFileType.Resource, folder: "aFolder", @@ -1918,58 +1916,39 @@ describe("Module `deploySolutionItems`", () => { const templateDictionary: any = {}; const newItemID: string = "frm1234567891"; - const getBlobSpy = spyOn(common, "getBlob").and.returnValue(zipUtilsTest.getSampleZipBlob(itemTemplate.itemId)); - - const swizzleIdsInZipFileSpy = spyOn( - zipUtils, - "swizzleIdsInZipFile" - ).and.resolveTo(zipUtilsTest.generateFormZip(itemTemplate.itemId)); + spyOn(common, "fetchZipObject").and + .resolveTo(zipUtilsTest.generateFormZipObject(itemTemplate.itemId)); - const requestSpy = spyOn(common, "rest_request") - .and.resolveTo(mockItems.get200Success(itemTemplate.itemId)); + const getThumbnailFromStorageItemSpy = spyOn(common, "getThumbnailFromStorageItem").and + .resolveTo(undefined); - const updateItemWithZipSpy = spyOn( - common, - "updateItemWithZipObject" - ).and.resolveTo(mockItems.get200Success(itemTemplate.itemId)); + const updateItemWithZipSpy = spyOn(common, "updateItemWithZipObject").and + .resolveTo(mockItems.get200Success(itemTemplate.itemId)); - spyOn( - simpleTypes.simpleTypes, - "createItemFromTemplate" - ).and.resolveTo({ - item: itemTemplate, - id: newItemID, - type: itemTemplate.type, - postProcess: false - } as common.ICreateItemFromTemplateResponse); + spyOn(simpleTypes.simpleTypes, "createItemFromTemplate").and + .resolveTo({ + item: itemTemplate, + id: newItemID, + type: itemTemplate.type, + postProcess: false + } as common.ICreateItemFromTemplateResponse); - const copyFilesFromStorageItemSpy = spyOn( - common, - "copyFilesFromStorageItem" - ).and.resolveTo(true); + const copyFilesFromStorageItemSpy = spyOn(common, "copyFilesFromStorageItem").and + .resolveTo(true); // eslint-disable-next-line @typescript-eslint/no-floating-promises - deploySolution - ._createItemFromTemplateWhenReady( - itemTemplate, - resourceFilePaths, - MOCK_USER_SESSION, - templateDictionary, - MOCK_USER_SESSION, - utils.ITEM_PROGRESS_CALLBACK - ) - .then(() => { - expect(getBlobSpy).toHaveBeenCalledTimes(1); - expect(swizzleIdsInZipFileSpy).toHaveBeenCalledTimes(1); - expect(requestSpy).toHaveBeenCalledTimes(1); - expect(updateItemWithZipSpy).toHaveBeenCalledTimes(1); - expect(copyFilesFromStorageItemSpy).toHaveBeenCalledTimes(1); + const response: common.ICreateItemFromTemplateResponse = await deploySolution._createItemFromTemplateWhenReady( + itemTemplate, + resourceFilePaths, + MOCK_USER_SESSION, + templateDictionary, + MOCK_USER_SESSION, + utils.ITEM_PROGRESS_CALLBACK + ); - done(); - }) - .catch(() => { - done.fail(); - }); + expect(getThumbnailFromStorageItemSpy).toHaveBeenCalledTimes(1); + expect(updateItemWithZipSpy).toHaveBeenCalledTimes(1); + expect(copyFilesFromStorageItemSpy).toHaveBeenCalledTimes(1); }); }); diff --git a/packages/deployer/test/helpers/zip-utils.test.ts b/packages/deployer/test/helpers/zip-utils.test.ts index 30cb4ab0a..7bb64e189 100644 --- a/packages/deployer/test/helpers/zip-utils.test.ts +++ b/packages/deployer/test/helpers/zip-utils.test.ts @@ -15,15 +15,13 @@ */ /** - * Provides tests for functions involving deployment of items via the REST API. + * Provides tests for zip file helper functions. */ import * as common from "@esri/solution-common"; -import * as deploySolution from "../../src/deploySolutionItems"; -import * as fetchMock from "fetch-mock"; import * as utils from "../../../common/test/mocks/utils"; import * as zipUtils from "../../src/helpers/zip-utils"; -import JSZip from "jszip"; +import * as zipUtilsTest from "../../../common/test/zip-utils.test";1 // ------------------------------------------------------------------------------------------------------------------ // @@ -35,185 +33,42 @@ beforeEach(() => { MOCK_USER_SESSION = utils.createRuntimeMockUserSession(); }); -afterEach(() => { - fetchMock.restore(); -}); - describe("Module `zip-utils`", () => { - describe("swizzleFormInfoContents", () => { - const itemId = "abc1234567890"; - - it("swizzles the portal urls in the form json", async () => { - const zip = generateFormZip(itemId); - const templateDictionary = { - "portalBaseUrl": "https://ginger.maps.arcgis.com", - "1e9cec0aec654a2d8d8760ff054a2b0b": "1e9cec0aec654a2d8d8760ff054a2b0b" - } - - await deploySolution.swizzleFormInfoContents(zip, templateDictionary); + describe("detemplatizeFormData", () => { + const org1 = "org1234567890"; + const itemId1 = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + const orgId2 = "org1234567891"; + const itemId2 = "c73d0ae07a2445b29087f392ed4eb9f9"; - const swizzledZipFile = await common.getZipObjectContents(zip, ["esriinfo/form.json"]); - const fileJson = JSON.parse(swizzledZipFile[0].content); - expect(common.getProp(fileJson, "portalUrl")).toEqual("https://ginger.maps.arcgis.com"); - expect(common.getProp(fileJson, "settings.notificationsInfo.webhooks")[0].url) - .toEqual("https://ginger.maps.arcgis.com/1e9cec0aec654a2d8d8760ff054a2b0b/link"); + it("detemplatizes the form data", async () => { + const zipObject = zipUtilsTest.generateFormZipObject(`{{${itemId1}.itemId}}`); + const zipObjectContents = await common.getZipObjectContents(zipObject); + zipObjectContents[1].content = zipObjectContents[1].content + .replace("https://fred.maps.arcgis.com", "{{portalBaseUrl}}") + .replace(org1, "{{orgId}}"); + zipObject.file(zipObjectContents[1].file, zipObjectContents[1].content); - return Promise.resolve(); - }); - - it("handles case where form json doesn't have webhooks", async () => { - const zip = generateFormZip(itemId, false); const templateDictionary = { - "portalBaseUrl": "https://ginger.maps.arcgis.com", - "1e9cec0aec654a2d8d8760ff054a2b0b": "1e9cec0aec654a2d8d8760ff054a2b0b" - } - - await deploySolution.swizzleFormInfoContents(zip, templateDictionary); - - const swizzledZipFile = await common.getZipObjectContents(zip, ["esriinfo/form.json"]); - const fileJson = JSON.parse(swizzledZipFile[0].content); - expect(common.getProp(fileJson, "portalUrl")).toEqual("https://ginger.maps.arcgis.com"); + orgId: orgId2, + portalBaseUrl: "https://ginger.maps.arcgis.com" + }; + templateDictionary[itemId1] = { + itemId: itemId2 + }; - return Promise.resolve(); - }); - }); - - describe("swizzleIdsInZipFile", () => { - const sourceItemId = "abc1234567890"; - const destinationItemId = "def1234567890"; + const modifiedZipObject = await zipUtils.detemplatizeFormData(zipObject, templateDictionary); - it("swizzles the form zip file", async () => { - const zip = generateFormZip(sourceItemId); - const swizzledZip = await zipUtils.swizzleIdsInZipFile(sourceItemId, destinationItemId, zip, [ - "esriinfo/form.info", - "esriinfo/form.itemInfo", - "esriinfo/form.json", - "esriinfo/form.webform", - "esriinfo/form.xml" - ]); + const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); - // Compare the swizzled zip file to the expected zip file - const expectedZip = generateFormZip(destinationItemId); - expect(await compareZips(swizzledZip, expectedZip)).toBeTrue(); + const expectedZipObject = zipUtilsTest.generateFormZipObject(itemId2); + const expectedZipContents = await common.getZipObjectContents(expectedZipObject); + expectedZipContents[1].content = expectedZipContents[1].content + .replace("https://fred.maps.arcgis.com", "https://ginger.maps.arcgis.com") + .replace(org1, orgId2); - return Promise.resolve(); - }); - - it("swizzles all files in the zip", async () => { - let zip = generateFormZip(sourceItemId); - const swizzledZip = await zipUtils.swizzleIdsInZipFile(sourceItemId, destinationItemId, zip); - - // Compare the swizzled zip file to the expected zip file - const expectedZip = generateFormZip(destinationItemId); - expect(await compareZips(swizzledZip, expectedZip)).toBeTrue(); - - return Promise.resolve(); + expect(modifiedZipContents).toEqual(expectedZipContents); }); }); }); - -// ------------------------------------------------------------------------------------------------------------------ // - -/** - * Compares the contents of two zip files. - * - * @param zip1 First zip file - * @param zip2 Second zip file - * @returns A promise resolving to be true if the zip files are equal, false otherwise - */ -export async function compareZips( - zip1: JSZip, - zip2: JSZip -): Promise { - const zip1Files = await common.getZipObjectContents(zip1); - const zip2Files = await common.getZipObjectContents(zip2); - - if (zip1Files.length !== zip2Files.length) { - console.log("length mismatch", zip1Files.length, zip2Files.length); - return Promise.resolve(false); - } - - for (let i = 0; i < zip1Files.length; i++) { - const zip1File = zip1Files[i]; - const zip2File = zip2Files[i]; - - if (zip1File.file !== zip2File.file) { - console.log("path mismatch", zip1File.file, zip2File.file); - return Promise.resolve(false); - } - - if (zip1File.content !== zip2File.content) { - console.log("content mismatch", zip1File.content, zip2File.content); - return Promise.resolve(false); - } - } - - return Promise.resolve(true); -} - -/** - * Generates a partial collection of files that represent a Survey123 form. - * - * @param id ID of the form - * @param includeWebhooks Whether to include webhooks in the form.json file - * @returns Zip file containing form files - */ -export function generateFormZip( - id: string, - includeWebhooks: boolean = true -): JSZip { - const zip = new JSZip(); - zip.file("esriinfo/form.info", `{"displayInfo":{"map":{"coordinateFormat":null,"defaultType":{"name":""},"home":{"latitude":null,"longitude":null,"zoomLevel":0},"preview":{"coordinateFormat":null,"zoomLevel":0}}}}`); - zip.file("esriinfo/form.itemInfo", `{"id":"${id}","created":1705691185000,"isOrgItem":true,"modified":1705691194000,"guid":null,"name":"${id}","title":"Untitled survey","type":"Form","typeKeywords":["Draft","Form","Survey123","Survey123 Hub","xForm"]}`); - includeWebhooks - ? zip.file("esriinfo/form.json", `{"layerName":"survey","portalUrl":"https://www.arcgis.com","questions":[{"id":"field_1","position":0,"fieldName":"untitled_question_1","name":"untitled_question_1","type":"esriQuestionTypeText","isRequired":false,"fieldType":"esriFieldTypeString","validation":{"valueRange":{"isEnabled":false},"inputMask":{"isEnabled":false,"customFormat":""}},"label":"Untitled question 1","description":null}],"settings":{"notificationsInfo":{"webhooks":[{"active":true,"name":"TestWebhook","url":"https://fred.maps.arcgis.com/1e9cec0aec654a2d8d8760ff054a2b0b/link","includePortalInfo":false,"includeServiceRequest":true,"includeUserInfo":true,"includeServiceResponse":true,"includeSurveyInfo":true,"events":["addData"],"id":"PGvupkuxX","modified":1705691375721,"created":1705691375721}]}},"version":"3.19"}`) - : zip.file("esriinfo/form.json", `{"layerName":"survey","portalUrl":"https://www.arcgis.com","questions":[{"id":"field_1","position":0,"fieldName":"untitled_question_1","name":"untitled_question_1","type":"esriQuestionTypeText","isRequired":false,"fieldType":"esriFieldTypeString","validation":{"valueRange":{"isEnabled":false},"inputMask":{"isEnabled":false,"customFormat":""}},"label":"Untitled question 1","description":null}],"settings":{"notificationsInfo":{}},"version":"3.19"}`); - zip.file("esriinfo/form.webform", `{"form":"
\n

survey

\n \n \n \n \n \n \n \n \n \n
","model":"\n \n \n \n \n \n \n \n \n \n \n \n ","languageMap":{},"transformerVersion":"2.3.0"}`); - zip.file("esriinfo/form.xml", ` - - - survey - - - - - - - - - - - - - - - - - - - - - - - - - - - `); - zip.file("esriinfo/forminfo.json", `{"name":"form","type":"xform"}`); - return zip; -} - -/** - * Generates a sample zip file and returns it as a blob. - * - * @param id Item id to use in the zip file - * @returns Promise resolving to the blob - */ -export async function getSampleZipBlob( - id: string -): Promise { - return await generateFormZip(id).generateAsync({ type: "blob" }) -} diff --git a/packages/group/test/group.test.ts b/packages/group/test/group.test.ts index 67a7807e8..e599dcaf7 100644 --- a/packages/group/test/group.test.ts +++ b/packages/group/test/group.test.ts @@ -165,7 +165,7 @@ describe("Module `group`: manages the creation and deployment of groups", () => culture: "", properties: null, url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", proxyFilter: null, access: "public", size: 0, @@ -293,7 +293,7 @@ describe("Module `group`: manages the creation and deployment of groups", () => culture: "", properties: null, url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", proxyFilter: null, access: "public", size: 0, @@ -371,7 +371,7 @@ describe("Module `group`: manages the creation and deployment of groups", () => culture: "", properties: null, url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", proxyFilter: null, access: "public", size: 0, @@ -501,7 +501,7 @@ describe("Module `group`: manages the creation and deployment of groups", () => culture: "", properties: null, url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", proxyFilter: null, access: "public", size: 0, @@ -579,7 +579,7 @@ describe("Module `group`: manages the creation and deployment of groups", () => culture: "", properties: null, url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/location_9402a6f176f54415ad4b8cb07598f42d/FeatureServer", proxyFilter: null, access: "public", size: 0, diff --git a/packages/simple-types/src/helpers/zip-utils.ts b/packages/simple-types/src/helpers/zip-utils.ts index 849d79681..ddade0c77 100644 --- a/packages/simple-types/src/helpers/zip-utils.ts +++ b/packages/simple-types/src/helpers/zip-utils.ts @@ -15,6 +15,7 @@ */ import * as common from "@esri/solution-common"; +import JSZip from "jszip"; // ------------------------------------------------------------------------------------------------------------------ // @@ -29,19 +30,10 @@ export async function templatizeFormData( zip: File, filename: string ): Promise { - const agoIdRegEx = common.getAgoIdRegEx(); - const zipObject = await common.blobToZipObject(zip); + let zipObject = await common.blobToZipObject(zip); // Replace AGO ids - common.modifyFilesinZipObject( - (zipContentStr: common.IZipObjectContentItem): string => { - const agoIdMatches = zipContentStr.content.match(agoIdRegEx) ?? []; - agoIdMatches.forEach((match: string) => { - zipContentStr.content = zipContentStr.content.replace(match, `{{${match}}}`); - }); - return zipContentStr.content; - }, - zipObject); + zipObject = await _templatizeAgoIds(zipObject); // Get the index file to get the name used for the other files const filenameRoot = JSON.parse(await zipObject.file("esriinfo/forminfo.json").async("string")).name; @@ -52,10 +44,57 @@ export async function templatizeFormData( // Templatize each webhook const webhooks = infoFile.notificationsInfo?.webhooks ?? []; + if (webhooks.length > 0) { + _templatizeWebHooks(webhooks); + infoFile.notificationsInfo.webhooks = webhooks; + zipObject.file(infoFilename, JSON.stringify(infoFile)); + } + + // Return the modified zip file + return common.zipObjectToZipFile(zipObject, filename) +} + +// ------------------------------------------------------------------------------------------------------------------ // + +/** + * Templatizes AGO ids in the supplied zip object. + * + * @param zipObject Zip object to templatize + * @returns Promise that resolves to the modified zip object + */ +export async function _templatizeAgoIds( + zipObject: JSZip +): Promise { + const agoIdRegEx = common.getAgoIdRegEx(); + return common.modifyFilesinZipObject( + (zippedFile: common.IZipObjectContentItem): string => { + const agoIdMatches = zippedFile.content.match(agoIdRegEx) ?? []; + const completedMatches: any = {}; + agoIdMatches.forEach((match: string) => { + if (completedMatches[match]) { + return; + } + zippedFile.content = zippedFile.content.replace(new RegExp(match, "g"), `{{${match}.itemId}}`); + completedMatches[match] = true; + }); + return zippedFile.content; + }, + zipObject + ); +} + +/** + * Templatizes the URLs in webhooks. + * + * @param webhooks List of Form webhook definitions to templatize + */ +export function _templatizeWebHooks( + webhooks: any[] +): void { webhooks.forEach((webhook: any) => { - const urlObj = new URL(webhook.url); - let url = urlObj.toString(); + let url = webhook.url; + const urlObj = new URL(url); const server = `${urlObj.protocol}//${urlObj.host}`; const workflowServer = "https://workflow.arcgis.com"; @@ -71,28 +110,7 @@ export async function templatizeFormData( url = url.replace(server, "{{portalBaseUrl}}"); } - // Templatize all AGO ids in the URL - const agoIdMatches = url.match(agoIdRegEx) ?? []; - agoIdMatches.forEach((match: string) => { - const idRE = common.getSpecificAgoIdRegEx(match); - const templatizedId = `{{${match}}}`; - url = url.replace(idRE, templatizedId); - }); - webhook.url = url; }); - - // Return the modified zip file - if (webhooks.length > 0) { - infoFile.notificationsInfo.webhooks = webhooks; - zipObject.file(infoFilename, JSON.stringify(infoFile)); - return common.zipObjectToZipFile(zipObject, filename) - } else { - return common.createMimeTypedFile({ - blob: zip, - filename, - mimeType: "application/zip" - }); - - } } + diff --git a/packages/simple-types/test/helpers/convert-item-to-template.test.ts b/packages/simple-types/test/helpers/convert-item-to-template.test.ts index bca803959..daedefed5 100644 --- a/packages/simple-types/test/helpers/convert-item-to-template.test.ts +++ b/packages/simple-types/test/helpers/convert-item-to-template.test.ts @@ -23,6 +23,7 @@ import * as simpleTypes from "../../src/simple-types"; import * as staticRelatedItemsMocks from "../../../common/test/mocks/staticRelatedItemsMocks"; import * as templates from "../../../common/test/mocks/templates"; import * as utils from "../../../common/test/mocks/utils"; +import * as zipUtils from "../../src/helpers/zip-utils"; jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; // default is 5000 ms @@ -491,6 +492,7 @@ describe("simpleTypeConvertItemToTemplate", () => { { relationshipType: "Survey2Data", relatedItemIds: ["srv1234567890", "abc1234567890"] }, { relationshipType: "Survey2Service", relatedItemIds: ["srv1234567890"] } ] as common.IRelatedItems[]); + spyOn(zipUtils, "templatizeFormData").and.callFake((zip: File) => Promise.resolve(zip)); simpleTypes .convertItemToTemplate( @@ -509,6 +511,7 @@ describe("simpleTypeConvertItemToTemplate", () => { { relationshipType: "Survey2Data", relatedItemIds: ["srv1234567890", "abc1234567890"] }, { relationshipType: "Survey2Service", relatedItemIds: ["srv1234567890"] } ] as common.IRelatedItems[]); + spyOn(zipUtils, "templatizeFormData").and.callFake((zip: File) => Promise.resolve(zip)); simpleTypes .convertItemToTemplate( diff --git a/packages/simple-types/test/helpers/zip-utils.test.ts b/packages/simple-types/test/helpers/zip-utils.test.ts new file mode 100644 index 000000000..b3142f960 --- /dev/null +++ b/packages/simple-types/test/helpers/zip-utils.test.ts @@ -0,0 +1,115 @@ +/** @license + * Copyright 2024 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Provides tests for zip file helper functions. + */ + +import * as common from "@esri/solution-common"; +import * as zipUtils from "../../src/helpers/zip-utils"; +import * as zipUtilsTest from "../../../common/test/zip-utils.test"; + +// ------------------------------------------------------------------------------------------------------------------ // + + +jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; // default is 5000 ms + +describe("Module `zip-utils`", () => { + + describe("templatizeFormData", () => { + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + + it("templatizes form data containing webhooks", async () => { + const filename = "test.zip"; + const zip = await zipUtilsTest.getSampleFormZipFile(itemId, filename); + + const modifiedZip = await zipUtils.templatizeFormData(zip, filename); + + const modifiedZipObject = await common.blobToZipObject(modifiedZip); + const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); + + const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`); + const expectedZipContents = await common.getZipObjectContents(expectedZipObject); + expectedZipContents[1].content = expectedZipContents[1].content + .replace("https://fred.maps.arcgis.com", "{{portalBaseUrl}}") + .replace("org1234567890", "{{orgId}}"); + + expect(modifiedZipContents).toEqual(expectedZipContents); + }); + + it("templatizes form data that doesn't contain webhooks", async () => { + const filename = "test.zip"; + const zip = await zipUtilsTest.getSampleFormZipFile(itemId, filename, false); + + const modifiedZip = await zipUtils.templatizeFormData(zip, filename); + + const modifiedZipObject = await common.blobToZipObject(modifiedZip); + const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); + + const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`, false); + const expectedZipContents = await common.getZipObjectContents(expectedZipObject); + + expect(modifiedZipContents).toEqual(expectedZipContents); + }); + }); + + describe("_templatizeAgoIds", () => { + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + + it("templatizes AGO ids", async () => { + const zipObject = zipUtilsTest.generateFormZipObject(itemId); + const zipContents = await common.getZipObjectContents(zipObject); + + const modifiedZipObject = await zipUtils._templatizeAgoIds(zipObject); + const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); + + const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`); + const expectedZipContents = await common.getZipObjectContents(expectedZipObject); + + expect(zipContents).not.toEqual(modifiedZipContents); + expect(modifiedZipContents).toEqual(expectedZipContents); + }); + }); + + describe("_templatizeWebHooks", () => { + it("templatizes webhooks", () => { + const webhooks = [{ + "active": true, + "name": "workflow manager", + "url": + "https://workflow.arcgis.com/org1234567890/e788fd6491bb46fda9e7c97d0bf4eb02/webhooks/createJobFromSurveyResponse/hook1234567890", + }, { + "active": true, + "name": "Swizzle Webhook", + "url": "https://myorg.maps.arcgis.com/home/item.html?id=e788fd6491bb46fda9e7c97d0bf4eb02", + }]; + + zipUtils._templatizeWebHooks(webhooks); + + expect(webhooks).toEqual([{ + "active": true, + "name": "workflow manager", + "url": + "https://workflow.arcgis.com/{{orgId}}/e788fd6491bb46fda9e7c97d0bf4eb02/webhooks/createJobFromSurveyResponse/hook1234567890", + }, { + "active": true, + "name": "Swizzle Webhook", + "url": "{{portalBaseUrl}}/home/item.html?id=e788fd6491bb46fda9e7c97d0bf4eb02", + }]); + }); + }); + +}); diff --git a/packages/simple-types/test/quickcapture.test.ts b/packages/simple-types/test/quickcapture.test.ts index badbe2acf..09eb8f4ac 100644 --- a/packages/simple-types/test/quickcapture.test.ts +++ b/packages/simple-types/test/quickcapture.test.ts @@ -181,7 +181,7 @@ describe("Module `quick capture`: manages the creation and deployment of quick c featureServiceItemId: "4efe5f693de34620934787ead6693f10", dataSourceId: "1687a71b-cf77-48ed-b948-c66e228a0f74", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1" + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1" }; const idPath = "featureServiceItemId"; const urlPath = "url"; diff --git a/packages/simple-types/test/webmappingapplication.test.ts b/packages/simple-types/test/webmappingapplication.test.ts index 221209219..b80ba2eb6 100644 --- a/packages/simple-types/test/webmappingapplication.test.ts +++ b/packages/simple-types/test/webmappingapplication.test.ts @@ -930,7 +930,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of fetchMock .post("https://fake.com/arcgis/rest/info", {}) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/3", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/3", { id: 3, serviceItemId: "b19aec399444407da84fffe2a55d4151", @@ -942,7 +942,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/2", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/2", { id: 2, serviceItemId: "b19aec399444407da84fffe2a55d4151", @@ -954,7 +954,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/1", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/1", { id: 1, serviceItemId: "b19aec399444407da84fffe2a55d4151", @@ -966,7 +966,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/0", { id: 0, serviceItemId: "b19aec399444407da84fffe2a55d4151", @@ -978,7 +978,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/7", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/7", { id: 7, serviceItemId: "4efe5f693de34620934787ead6693f19", @@ -990,7 +990,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/6", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/6", { id: 6, serviceItemId: "4efe5f693de34620934787ead6693f19", @@ -1002,7 +1002,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/5", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/5", { id: 5, serviceItemId: "4efe5f693de34620934787ead6693f19", @@ -1014,7 +1014,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/4", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/4", { id: 4, serviceItemId: "4efe5f693de34620934787ead6693f19", @@ -1026,7 +1026,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/3", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/3", { id: 3, serviceItemId: "4efe5f693de34620934787ead6693f19", @@ -1038,7 +1038,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/2", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/2", { id: 2, serviceItemId: "4efe5f693de34620934787ead6693f19", @@ -1050,7 +1050,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1", { id: 1, serviceItemId: "4efe5f693de34620934787ead6693f19", @@ -1062,7 +1062,7 @@ describe("Module `webmappingapplication`: manages the creation and deployment of } ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/0", { id: 0, serviceItemId: "4efe5f693de34620934787ead6693f19", @@ -1093,51 +1093,51 @@ describe("Module `webmappingapplication`: manages the creation and deployment of fetchMock .post("https://fake.com/arcgis/rest/info", {}) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/3", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/3", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/2", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/2", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/1", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/1", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/0", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/7", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/7", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/6", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/6", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/5", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/5", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/4", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/4", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/3", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/3", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/2", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/2", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1", mockItems.get400Failure() ) .post( - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/0", mockItems.get400Failure() ); @@ -2376,17 +2376,17 @@ describe("Module `webmappingapplication`: manages the creation and deployment of it("can enforce must match full url", () => { let objString: any = JSON.stringify({ url1: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/0", url2: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/", url3: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/1" + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/1" }); const urls: string[] = [ - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/0", - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/", - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/1" + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/1" ]; const newUrls: string[] = [ @@ -2416,9 +2416,9 @@ describe("Module `webmappingapplication`: manages the creation and deployment of it("can ignore force full url for simple url", () => { const urls: string[] = [ - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/0", - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/", - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/EducationalFacilities_public/FeatureServer/1" + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/EducationalFacilities_public/FeatureServer/1" ]; const newUrls: string[] = [ @@ -2569,7 +2569,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayer2FromWebApp_4042", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/3", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/3", name: "TestLayer2FromWebApp - Stands", id: "dojoUnique394", enable: true, @@ -2579,7 +2579,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayer2FromWebApp_8439", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/2", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/2", name: "TestLayer2FromWebApp - Property", id: "dojoUnique395", enable: true, @@ -2589,7 +2589,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayer2FromWebApp_5607", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/1", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/1", name: "TestLayer2FromWebApp - Chemical Activity", id: "dojoUnique396", enable: true, @@ -2599,7 +2599,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayer2FromWebApp_9409", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayer2FromWebApp/FeatureServer/0", name: "TestLayer2FromWebApp - HarvestActivity", id: "dojoUnique397", enable: true, @@ -2609,7 +2609,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayerForDashBoardMap_2615", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/7", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/7", name: "TestLayerForDashBoardMap - Incident Area", id: "dojoUnique398", enable: true, @@ -2619,7 +2619,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayerForDashBoardMap_8627", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/6", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/6", name: "TestLayerForDashBoardMap - DemographicPolygons", id: "dojoUnique399", enable: true, @@ -2629,7 +2629,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayerForDashBoardMap_7797", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/5", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/5", name: "TestLayerForDashBoardMap - Road Closure", id: "dojoUnique400", enable: true, @@ -2639,7 +2639,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayerForDashBoardMap_5389", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/4", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/4", name: "TestLayerForDashBoardMap - Bridges", id: "dojoUnique401", enable: true, @@ -2649,7 +2649,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayerForDashBoardMap_5538", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/3", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/3", name: "TestLayerForDashBoardMap - Emergency Assistance", id: "dojoUnique402", enable: true, @@ -2659,7 +2659,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayerForDashBoardMap_2914", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/2", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/2", name: "TestLayerForDashBoardMap - Emergency Shelter", id: "dojoUnique403", enable: true, @@ -2669,7 +2669,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayerForDashBoardMap_7041", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/1", name: "TestLayerForDashBoardMap - School", id: "dojoUnique404", enable: true, @@ -2679,7 +2679,7 @@ const _infoLookupTemplate: any = { { flayerId: "TestLayerForDashBoardMap_2892", url: - "https://services7.arcgis.com/piPfTFmrV9d1DIvN/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/0", + "https://services7.arcgis.com/org1234567890/arcgis/rest/services/TestLayerForDashBoardMap/FeatureServer/0", name: "TestLayerForDashBoardMap - Hospital", id: "dojoUnique405", enable: true, From 77d4d29bfc11b713017c633dd4184c94b49111a2 Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Wed, 14 Feb 2024 18:12:58 -0800 Subject: [PATCH 06/14] Resolved lint complaint --- packages/simple-types/src/helpers/zip-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/simple-types/src/helpers/zip-utils.ts b/packages/simple-types/src/helpers/zip-utils.ts index ddade0c77..c58f41da6 100644 --- a/packages/simple-types/src/helpers/zip-utils.ts +++ b/packages/simple-types/src/helpers/zip-utils.ts @@ -62,7 +62,7 @@ export async function templatizeFormData( * @param zipObject Zip object to templatize * @returns Promise that resolves to the modified zip object */ -export async function _templatizeAgoIds( +export function _templatizeAgoIds( zipObject: JSZip ): Promise { const agoIdRegEx = common.getAgoIdRegEx(); From 41040e3bf4fb87d5ea2828c7ae86b6e67ffae1e8 Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Wed, 21 Feb 2024 16:02:02 -0800 Subject: [PATCH 07/14] Refactored Survey123 webhook handling --- packages/common/src/formHelpers.ts | 118 +++++++++++++++ packages/common/src/index.ts | 1 + packages/common/src/interfaces.ts | 6 + packages/common/src/templatization.ts | 4 +- packages/common/src/zip-utils.ts | 32 +--- packages/common/test/formHelpers.test.ts | 72 +++++++++ packages/common/test/zip-utils.test.ts | 34 +---- packages/deployer/src/deploySolutionItems.ts | 2 +- packages/deployer/src/helpers/zip-utils.ts | 8 +- .../src/helpers/convert-item-to-template.ts | 15 +- .../simple-types/src/helpers/formHelpers.ts | 137 ++++++++++++++++++ .../simple-types/src/helpers/zip-utils.ts | 116 --------------- .../helpers/convert-item-to-template.test.ts | 8 +- .../test/helpers/zip-utils.test.ts | 20 +-- 14 files changed, 368 insertions(+), 205 deletions(-) create mode 100644 packages/common/src/formHelpers.ts create mode 100644 packages/common/test/formHelpers.test.ts create mode 100644 packages/simple-types/src/helpers/formHelpers.ts delete mode 100644 packages/simple-types/src/helpers/zip-utils.ts diff --git a/packages/common/src/formHelpers.ts b/packages/common/src/formHelpers.ts new file mode 100644 index 000000000..832708852 --- /dev/null +++ b/packages/common/src/formHelpers.ts @@ -0,0 +1,118 @@ +/** @license + * Copyright 2024 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as generalHelpers from "./generalHelpers"; +import * as interfaces from "./interfaces"; +import * as zipUtils from "./zip-utils"; +import { updateItem } from "./restHelpers"; +import { IItemUpdate, UserSession } from "./interfaces"; +import JSZip from "jszip"; + +// ------------------------------------------------------------------------------------------------------------------ // + +/** + * Gets the dependencies of a Form that are stored in its zip object webhooks. + * + * @param zipObject Zip file object from which to get the dependencies + * @returns Promise that resolves to an array of dependencies + */ +export async function getWebHookDependencies( + zipObject: JSZip +): Promise { + const agoIdRegEx = generalHelpers.getAgoIdRegEx(); + const webhooks = await getWebHooksFromZipObject(zipObject); + const dependencies: string[] = []; + webhooks.forEach((webhook: any) => { + if (!webhook.url.startsWith("https://workflow.arcgis.com")) { + const matches = webhook.url.match(agoIdRegEx) ?? []; + matches.forEach((match: string) => { + if (!dependencies.includes(match)) { + dependencies.push(match); + } + }); + } + }); + return Promise.resolve(dependencies); +} + +/** + * Gets the webhooks from a Form zip object's *.info file. + * + * @param zipObject Zip file object from which to get the webhooks + * @returns Promise that resolves to an array of webhooks + */ +export async function getWebHooksFromZipObject( + zipObject: JSZip +): Promise { + const zipObjectContents: interfaces.IZipObjectContentItem[] = await zipUtils.getZipObjectContents(zipObject); + let webhooks: string[] = []; + zipObjectContents.forEach( + (zipFile: interfaces.IZipObjectContentItem) => { + if (zipFile.file.endsWith(".info")) { + const infoFileJson = JSON.parse(zipFile.content); + webhooks = generalHelpers.getProp(infoFileJson, "notificationsInfo.webhooks") || []; + } + } + ); + return Promise.resolve(webhooks); +} + +/** + * Sets the webhooks in a Form zip object's *.info file. + * + * @param zipObject Zip file object in which to set the webhooks + * @param webHooks Array of webhooks to set + * @returns Promise that resolves to the updated zip object + */ +export async function setWebHooksInZipObject( + zipObject: JSZip, + webHooks: any[] +): Promise { + const zipObjectContents: interfaces.IZipObjectContentItem[] = await zipUtils.getZipObjectContents(zipObject); + zipObjectContents.forEach( + (zipFile: interfaces.IZipObjectContentItem) => { + if (zipFile.file.endsWith(".info")) { + const infoFileJson = JSON.parse(zipFile.content); + generalHelpers.setProp(infoFileJson, "notificationsInfo.webhooks", webHooks); + zipObject.file(zipFile.file, JSON.stringify(infoFileJson)); + } + } + ); + return Promise.resolve(zipObject); +} + +/** + * Updates an item with a zip object, including any webhooks. + * + * @param zipObject Zip file object with which to update the item + * @param destinationItemId Destination item id + * @param destinationAuthentication Destination authentication + * @param filesOfInterest Array of file names to extract from the zipObject file. If empty, all files are extracted. + * @returns Promise that resolves to the update item response + */ +export async function updateItemWithZipObject( + zipObject: JSZip, + destinationItemId: string, + destinationAuthentication: UserSession +): Promise { + // Update the item with the zip object + const update: IItemUpdate = { + id: destinationItemId, + data: await zipUtils.zipObjectToZipFile(zipObject, `${destinationItemId}.zip`) + } + + return updateItem(update, destinationAuthentication); +} diff --git a/packages/common/src/index.ts b/packages/common/src/index.ts index 0957fdddc..e89cd4ad3 100644 --- a/packages/common/src/index.ts +++ b/packages/common/src/index.ts @@ -26,6 +26,7 @@ export * from "./deleteHelpers"; export * from "./deleteSolution"; export * from "./dependencies"; export * from "./featureServiceHelpers"; +export * from "./formHelpers"; export * from "./generalHelpers"; export * from "./getDeletableSolutionInfo"; export * from "./getItemTypeAbbrev"; diff --git a/packages/common/src/interfaces.ts b/packages/common/src/interfaces.ts index 48e6eec60..ee3acdd04 100644 --- a/packages/common/src/interfaces.ts +++ b/packages/common/src/interfaces.ts @@ -1048,6 +1048,12 @@ export interface IItemTemplate { */ estimatedDeploymentCostFactor: number; + /** + * Indicates whether this item and the user whose credential was used to fetch this item belong to the same + * ArcGIS Enterprise Portal or ArcGIS Online Organization. + */ + isOrgItem?: boolean; + /** * Allow for adhoc properties */ diff --git a/packages/common/src/templatization.ts b/packages/common/src/templatization.ts index 88c83b220..7145d0a74 100644 --- a/packages/common/src/templatization.ts +++ b/packages/common/src/templatization.ts @@ -110,6 +110,7 @@ export function createInitializedItemTemplate(itemInfo: any): IItemTemplate { culture: itemInfo.culture, description: itemInfo.description, extent: getDefaultExtent(itemInfo), + isOrgItem: itemInfo.isOrgItem, licenseInfo: itemInfo.licenseInfo, modified: itemInfo.modified, name: itemInfo.name, @@ -150,7 +151,8 @@ export function createPlaceholderTemplate( dependencies: [], groups: [], properties: {}, - estimatedDeploymentCostFactor: 2 + estimatedDeploymentCostFactor: 2, + isOrgItem: true }; } diff --git a/packages/common/src/zip-utils.ts b/packages/common/src/zip-utils.ts index 8a2d280c2..5a483840e 100644 --- a/packages/common/src/zip-utils.ts +++ b/packages/common/src/zip-utils.ts @@ -18,8 +18,7 @@ import JSZip from "jszip"; import * as interfaces from "./interfaces"; import { createMimeTypedFile } from "./resources/copyDataIntoItem"; import { getBlob } from "./resources/get-blob"; -import { updateItem } from "./restHelpers"; -import { IItemUpdate, IUpdateItemResponse, UserSession } from "./interfaces"; +import { UserSession } from "./interfaces"; // ------------------------------------------------------------------------------------------------------------------ // @@ -149,35 +148,6 @@ export async function modifyFilesinZipObject( return Promise.resolve(zipObject); } -/** - * Updates an item with a zip object. - * - * @param zipObject Zip file object with which to update the item - * @param destinationItemId Destination item id - * @param destinationAuthentication Destination authentication - * @param filesOfInterest Array of file names to extract from the zipObject file. If empty, all files are extracted. - * @returns Promise that resolves to the update item response - */ -export async function updateItemWithZipObject( - zipObject: JSZip, - destinationItemId: string, - destinationAuthentication: UserSession, -): Promise { - const update: IItemUpdate = { - id: destinationItemId, - data: createMimeTypedFile({ - blob: await zipObject.generateAsync({ type: "blob" }), - filename: `${destinationItemId}.zip`, - mimeType: "application/zip" - }) - }; - - return updateItem( - update, - destinationAuthentication - ); -} - /** * Converts a zip object to a zip file. * diff --git a/packages/common/test/formHelpers.test.ts b/packages/common/test/formHelpers.test.ts new file mode 100644 index 000000000..aa7d42dd1 --- /dev/null +++ b/packages/common/test/formHelpers.test.ts @@ -0,0 +1,72 @@ +/** @license + * Copyright 2024 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Provides tests for zip file helper functions. + */ + +import * as formHelpers from "../src/formHelpers"; +import * as interfaces from "../src/interfaces"; +import * as mockItems from "./mocks/agolItems"; +import * as restHelpers from "../src/restHelpers"; +import * as utils from "./mocks/utils"; +import * as zipUtils from "../src/zip-utils"; +import * as zipUtilsTest from "../test/zip-utils.test"; + +// ------------------------------------------------------------------------------------------------------------------ // + +jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; // default is 5000 ms + +let MOCK_USER_SESSION: interfaces.UserSession; + +beforeEach(() => { + MOCK_USER_SESSION = utils.createRuntimeMockUserSession(); +}); + +describe("Module `zip-utils`", () => { + + describe("updateItemWithZipObject", () => { + it("catches the inability to convert a blob into a the zip", async () => { + const blob = new Blob([""], { type: "application/zip" }); + zipUtils.blobToZipObject(blob) + .then(() => { + return Promise.reject("Should not have converted empty blob into a zip file"); + }) + .catch(() => { + return Promise.resolve(); + }); + }); + + it("updates the item with a zip file", async () => { + const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; + const zip = zipUtilsTest.generateFormZipObject(itemId); + + spyOn(restHelpers, "updateItem").and.callFake(async ( + update: interfaces.IItemUpdate + ) => { + expect(update.id).toEqual(itemId); + const file = update.data; + expect(file.name).toEqual(`${itemId}.zip`); + expect(file.type).toEqual("application/zip"); + return Promise.resolve(mockItems.get200Success(itemId)); + }); + + const response = await formHelpers.updateItemWithZipObject(zip, itemId, MOCK_USER_SESSION); + expect(response).toEqual(mockItems.get200Success(itemId)); + }); + }); + +}); diff --git a/packages/common/test/zip-utils.test.ts b/packages/common/test/zip-utils.test.ts index 57f66d9fc..f623283b2 100644 --- a/packages/common/test/zip-utils.test.ts +++ b/packages/common/test/zip-utils.test.ts @@ -20,8 +20,6 @@ import * as generalHelpers from "../src/generalHelpers"; import * as interfaces from "../src/interfaces"; -import * as mockItems from "./mocks/agolItems"; -import * as restHelpers from "../src/restHelpers"; import * as utils from "./mocks/utils"; import * as zipUtils from "../src/zip-utils"; import * as getBlobUtil from "../src/resources/get-blob"; @@ -88,37 +86,6 @@ describe("Module `zip-utils`", () => { }); }); - describe("updateItemWithZipObject", () => { - it("catches the inability to convert a blob into a the zip", async () => { - const blob = new Blob([""], { type: "application/zip" }); - zipUtils.blobToZipObject(blob) - .then(() => { - return Promise.reject("Should not have converted empty blob into a zip file"); - }) - .catch(() => { - return Promise.resolve(); - }); - }); - - it("updates the item with a zip file", async () => { - const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; - const zip = generateFormZipObject(itemId); - - spyOn(restHelpers, "updateItem").and.callFake(async ( - update: interfaces.IItemUpdate - ) => { - expect(update.id).toEqual(itemId); - const file = update.data; - expect(file.name).toEqual(`${itemId}.zip`); - expect(file.type).toEqual("application/zip"); - return Promise.resolve(mockItems.get200Success(itemId)); - }); - - const response = await zipUtils.updateItemWithZipObject(zip, itemId, MOCK_USER_SESSION); - expect(response).toEqual(mockItems.get200Success(itemId)); - }); - }); - describe("zipObjectToZipFile", () => { it("converts a zip object to a zip file with full filename", async () => { const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; @@ -136,6 +103,7 @@ describe("Module `zip-utils`", () => { expect(zipFile.type).toEqual("application/zip"); }); }); + }); // ------------------------------------------------------------------------------------------------------------------ // diff --git a/packages/deployer/src/deploySolutionItems.ts b/packages/deployer/src/deploySolutionItems.ts index 7c2ca7e2d..68ee67cf4 100644 --- a/packages/deployer/src/deploySolutionItems.ts +++ b/packages/deployer/src/deploySolutionItems.ts @@ -1125,7 +1125,7 @@ export function _createItemFromTemplateWhenReady( let formZipFilePath: common.IDeployFileCopyPath; resourceFilePaths = resourceFilePaths.filter( (filePath) => { - if (filePath.filename === `${sourceItemId}.zip`) { + if (filePath.filename.endsWith(".zip")) { formZipFilePath = filePath; return false; } else { diff --git a/packages/deployer/src/helpers/zip-utils.ts b/packages/deployer/src/helpers/zip-utils.ts index 7c85922c7..5ab36e716 100644 --- a/packages/deployer/src/helpers/zip-utils.ts +++ b/packages/deployer/src/helpers/zip-utils.ts @@ -37,10 +37,12 @@ export async function detemplatizeFormData( zipObjectContents.forEach( (zipFile: common.IZipObjectContentItem) => { try { - // Replace the templates - const updatedZipContent = common.replaceInTemplate(zipFile.content, templateDictionary); + let updatedZipContent = zipFile.content; - // Replace the file content + // Detemplatize the file content + updatedZipContent = common.replaceInTemplate(updatedZipContent, templateDictionary); + + // Replace the file content in the zip object zipObject.file(zipFile.file, updatedZipContent); } catch (_e) { diff --git a/packages/simple-types/src/helpers/convert-item-to-template.ts b/packages/simple-types/src/helpers/convert-item-to-template.ts index e74611f86..9a8bc43da 100644 --- a/packages/simple-types/src/helpers/convert-item-to-template.ts +++ b/packages/simple-types/src/helpers/convert-item-to-template.ts @@ -22,7 +22,10 @@ import * as quickcapture from "../quickcapture"; import * as webmap from "../webmap"; import * as webmappingapplication from "../webmappingapplication"; import * as workforce from "../workforce"; -import * as zipUtils from "./zip-utils"; +import * as formHelpers from "./formHelpers"; +import JSZip from "jszip"; + +// ------------------------------------------------------------------------------------------------------------------ // /** * Converts an item into a template. @@ -151,14 +154,18 @@ export function convertItemToTemplate( templateModifyingPromise = new Promise( // eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor async (resolve) => { + let zipObject: JSZip = await common.blobToZipObject(itemDataResponse as File); + + itemTemplate.dependencies = + itemTemplate.dependencies.concat(await common.getWebHookDependencies(zipObject)); // Templatize the form's data + zipObject = await formHelpers.templatizeFormData(zipObject, itemTemplate.isOrgItem); + itemTemplate.item.name = _getFormDataFilename( itemTemplate.item.name, (itemDataResponse as File).name, `${itemTemplate.itemId}.zip` ); - - const templatizedFormData: File = await zipUtils.templatizeFormData( - itemDataResponse as File, itemTemplate.item.name); + const templatizedFormData: File = await common.zipObjectToZipFile(zipObject, itemTemplate.item.name); // Add the data file to the template so that it can be uploaded with the other resources in the solution const storageName = common.convertItemResourceToStorageResource( diff --git a/packages/simple-types/src/helpers/formHelpers.ts b/packages/simple-types/src/helpers/formHelpers.ts new file mode 100644 index 000000000..7583529df --- /dev/null +++ b/packages/simple-types/src/helpers/formHelpers.ts @@ -0,0 +1,137 @@ +/** @license + * Copyright 2024 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as common from "@esri/solution-common"; +import JSZip from "jszip"; + +// ------------------------------------------------------------------------------------------------------------------ // + +/** + * Templatizes a form's zip file. + * + * @param zipObject Form zip object to templatize + * @param isOrgItem Indicates whether this item and the user whose credential was used to fetch this item belong + * to the same ArcGIS Enterprise Portal or ArcGIS Online Organization + * @returns Promise that resolves to the modified zip object if the swizzle was successful + */ +export async function templatizeFormData( + zipObject: JSZip, + isOrgItem = false +): Promise { + // Replace AGO ids + zipObject = await _templatizeAgoIds(zipObject); + + // Templatize webhooks + const webhooks = await common.getWebHooksFromZipObject(zipObject); + if (webhooks.length > 0) { + _templatizeWebHooks(webhooks, isOrgItem); + zipObject = await common.setWebHooksInZipObject(zipObject, webhooks); + } + + // Return the modified zip object + return Promise.resolve(zipObject); +} + +// ------------------------------------------------------------------------------------------------------------------ // + +/** + * Templatizes AGO ids in the supplied zip object. + * + * @param zipObject Zip object to templatize + * @returns Promise that resolves to the modified zip object + */ +export function _templatizeAgoIds( + zipObject: JSZip +): Promise { + return common.modifyFilesinZipObject( + (zippedFile: common.IZipObjectContentItem): string => { + // Replace AGO ids, but with special handling for ".info" file + // Save webhook URLs--we don't templatize them because they're handled in _templatizeWebHooks() + // Save the displayInfo.map.defaultType.name value--we don't templatize it + let webhookUrls: string[] = []; + let displayInfo_map_defaultType_name; + + if (zippedFile.file.endsWith(".info")) { + const infoFileJson = JSON.parse(zippedFile.content); + + webhookUrls = (common.getProp(infoFileJson, "notificationsInfo.webhooks") || []) + .map((webhook: any) => webhook.url); + + displayInfo_map_defaultType_name = common.getProp(infoFileJson, "displayInfo.map.defaultType.name"); + } + + // Templatize strings that look like AGO ids + zippedFile.content = common.templatizeIds(zippedFile.content); + + // Restore the webhook URLs & displayInfo.map.defaultType.name value + if (zippedFile.file.endsWith(".info") && displayInfo_map_defaultType_name) { + const infoFileJson = JSON.parse(zippedFile.content); + + const webhooks = common.getProp(infoFileJson, "notificationsInfo.webhooks") || []; + webhooks.forEach((webhook: any, i: number) => { + webhook.url = webhookUrls[i]; + }); + common.setProp(infoFileJson, "notificationsInfo.webhooks", webhooks); + + common.setProp(infoFileJson, "displayInfo.map.defaultType.name", displayInfo_map_defaultType_name); + + zippedFile.content = JSON.stringify(infoFileJson); + } + + return zippedFile.content; + }, + zipObject + ); +} + +/** + * Templatizes the URLs in webhooks. + * + * @param webhooks List of Form webhook definitions to templatize + * @param isOrgItem Indicates whether this item and the user whose credential was used to fetch this item belong + * to the same ArcGIS Enterprise Portal or ArcGIS Online Organization + */ +export function _templatizeWebHooks( + webhooks: any[], + isOrgItem: boolean +): void { + webhooks.forEach((webhook: any) => { + // Templatize the webhook URL + let url = webhook.url; + const urlObj = new URL(url); + + const server = `${urlObj.protocol}//${urlObj.host}`; + const workflowServer = "https://workflow.arcgis.com"; + + if (server === workflowServer) { + // Templatize organization + const partialPath = url.substring(workflowServer.length); + const partialPathParts = partialPath.split("/"); + const orgId = partialPathParts[1]; + url = url.replace(orgId, "{{user.orgId}}"); + + } else if (isOrgItem) { + // Templatize server + url = url.replace(server, "{{portalBaseUrl}}"); + + // Replace AGO ids + //???url = common.templatizeIds(url); + } + + webhook.url = url; + }); +} + diff --git a/packages/simple-types/src/helpers/zip-utils.ts b/packages/simple-types/src/helpers/zip-utils.ts deleted file mode 100644 index c58f41da6..000000000 --- a/packages/simple-types/src/helpers/zip-utils.ts +++ /dev/null @@ -1,116 +0,0 @@ -/** @license - * Copyright 2024 Esri - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import * as common from "@esri/solution-common"; -import JSZip from "jszip"; - -// ------------------------------------------------------------------------------------------------------------------ // - -/** - * Templatizes a form's zip file. - * - * @param zip Form zip file to templatize - * @param filename Name of the file to create after modifying the contents of the supplied zip file - * @returns Promise that resolves to the modified zip object if the swizzle was successful - */ -export async function templatizeFormData( - zip: File, - filename: string -): Promise { - let zipObject = await common.blobToZipObject(zip); - - // Replace AGO ids - zipObject = await _templatizeAgoIds(zipObject); - - // Get the index file to get the name used for the other files - const filenameRoot = JSON.parse(await zipObject.file("esriinfo/forminfo.json").async("string")).name; - - // Get the file that contains any webhooks - const infoFilename = `esriinfo/${filenameRoot}.info`; - const infoFile = JSON.parse(await zipObject.file(infoFilename).async("string")); - - // Templatize each webhook - const webhooks = infoFile.notificationsInfo?.webhooks ?? []; - if (webhooks.length > 0) { - _templatizeWebHooks(webhooks); - infoFile.notificationsInfo.webhooks = webhooks; - zipObject.file(infoFilename, JSON.stringify(infoFile)); - } - - // Return the modified zip file - return common.zipObjectToZipFile(zipObject, filename) -} - -// ------------------------------------------------------------------------------------------------------------------ // - -/** - * Templatizes AGO ids in the supplied zip object. - * - * @param zipObject Zip object to templatize - * @returns Promise that resolves to the modified zip object - */ -export function _templatizeAgoIds( - zipObject: JSZip -): Promise { - const agoIdRegEx = common.getAgoIdRegEx(); - - return common.modifyFilesinZipObject( - (zippedFile: common.IZipObjectContentItem): string => { - const agoIdMatches = zippedFile.content.match(agoIdRegEx) ?? []; - const completedMatches: any = {}; - agoIdMatches.forEach((match: string) => { - if (completedMatches[match]) { - return; - } - zippedFile.content = zippedFile.content.replace(new RegExp(match, "g"), `{{${match}.itemId}}`); - completedMatches[match] = true; - }); - return zippedFile.content; - }, - zipObject - ); -} - -/** - * Templatizes the URLs in webhooks. - * - * @param webhooks List of Form webhook definitions to templatize - */ -export function _templatizeWebHooks( - webhooks: any[] -): void { - webhooks.forEach((webhook: any) => { - let url = webhook.url; - const urlObj = new URL(url); - - const server = `${urlObj.protocol}//${urlObj.host}`; - const workflowServer = "https://workflow.arcgis.com"; - if (server === workflowServer) { - // Templatize organization - const partialPath = url.substring(workflowServer.length); - const partialPathParts = partialPath.split("/"); - const orgId = partialPathParts[1]; - url = url.replace(orgId, "{{orgId}}"); - - } else { - // Templatize server - url = url.replace(server, "{{portalBaseUrl}}"); - } - - webhook.url = url; - }); -} - diff --git a/packages/simple-types/test/helpers/convert-item-to-template.test.ts b/packages/simple-types/test/helpers/convert-item-to-template.test.ts index daedefed5..03d9ce819 100644 --- a/packages/simple-types/test/helpers/convert-item-to-template.test.ts +++ b/packages/simple-types/test/helpers/convert-item-to-template.test.ts @@ -17,13 +17,13 @@ import * as common from "@esri/solution-common"; import * as fetchMock from "fetch-mock"; import * as mockItems from "../../../common/test/mocks/agolItems"; -import * as notebook from "../../src/notebook"; import * as simpleTypeHelpers from "../../src/helpers/convert-item-to-template"; import * as simpleTypes from "../../src/simple-types"; import * as staticRelatedItemsMocks from "../../../common/test/mocks/staticRelatedItemsMocks"; import * as templates from "../../../common/test/mocks/templates"; import * as utils from "../../../common/test/mocks/utils"; -import * as zipUtils from "../../src/helpers/zip-utils"; +import * as formHelpers from "../../src/helpers/formHelpers"; +import * as JSZip from "jszip"; jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; // default is 5000 ms @@ -492,7 +492,7 @@ describe("simpleTypeConvertItemToTemplate", () => { { relationshipType: "Survey2Data", relatedItemIds: ["srv1234567890", "abc1234567890"] }, { relationshipType: "Survey2Service", relatedItemIds: ["srv1234567890"] } ] as common.IRelatedItems[]); - spyOn(zipUtils, "templatizeFormData").and.callFake((zip: File) => Promise.resolve(zip)); + spyOn(formHelpers, "templatizeFormData").and.callFake((zipObject: JSZip) => Promise.resolve(zipObject)); simpleTypes .convertItemToTemplate( @@ -511,7 +511,7 @@ describe("simpleTypeConvertItemToTemplate", () => { { relationshipType: "Survey2Data", relatedItemIds: ["srv1234567890", "abc1234567890"] }, { relationshipType: "Survey2Service", relatedItemIds: ["srv1234567890"] } ] as common.IRelatedItems[]); - spyOn(zipUtils, "templatizeFormData").and.callFake((zip: File) => Promise.resolve(zip)); + spyOn(formHelpers, "templatizeFormData").and.callFake((zipObject: JSZip) => Promise.resolve(zipObject)); simpleTypes .convertItemToTemplate( diff --git a/packages/simple-types/test/helpers/zip-utils.test.ts b/packages/simple-types/test/helpers/zip-utils.test.ts index b3142f960..bcc24d9ed 100644 --- a/packages/simple-types/test/helpers/zip-utils.test.ts +++ b/packages/simple-types/test/helpers/zip-utils.test.ts @@ -19,7 +19,7 @@ */ import * as common from "@esri/solution-common"; -import * as zipUtils from "../../src/helpers/zip-utils"; +import * as formHelpers from "../../src/helpers/formHelpers"; import * as zipUtilsTest from "../../../common/test/zip-utils.test"; // ------------------------------------------------------------------------------------------------------------------ // @@ -34,11 +34,9 @@ describe("Module `zip-utils`", () => { it("templatizes form data containing webhooks", async () => { const filename = "test.zip"; - const zip = await zipUtilsTest.getSampleFormZipFile(itemId, filename); + const zipObject = await zipUtilsTest.generateFormZipObject(itemId); - const modifiedZip = await zipUtils.templatizeFormData(zip, filename); - - const modifiedZipObject = await common.blobToZipObject(modifiedZip); + const modifiedZipObject = await formHelpers.templatizeFormData(zipObject); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`); @@ -52,11 +50,9 @@ describe("Module `zip-utils`", () => { it("templatizes form data that doesn't contain webhooks", async () => { const filename = "test.zip"; - const zip = await zipUtilsTest.getSampleFormZipFile(itemId, filename, false); - - const modifiedZip = await zipUtils.templatizeFormData(zip, filename); + const zipObject = await zipUtilsTest.generateFormZipObject(itemId, false); - const modifiedZipObject = await common.blobToZipObject(modifiedZip); + const modifiedZipObject = await formHelpers.templatizeFormData(zipObject); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`, false); @@ -73,7 +69,7 @@ describe("Module `zip-utils`", () => { const zipObject = zipUtilsTest.generateFormZipObject(itemId); const zipContents = await common.getZipObjectContents(zipObject); - const modifiedZipObject = await zipUtils._templatizeAgoIds(zipObject); + const modifiedZipObject = await formHelpers._templatizeAgoIds(zipObject); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`); @@ -97,13 +93,13 @@ describe("Module `zip-utils`", () => { "url": "https://myorg.maps.arcgis.com/home/item.html?id=e788fd6491bb46fda9e7c97d0bf4eb02", }]; - zipUtils._templatizeWebHooks(webhooks); + formHelpers._templatizeWebHooks(webhooks); expect(webhooks).toEqual([{ "active": true, "name": "workflow manager", "url": - "https://workflow.arcgis.com/{{orgId}}/e788fd6491bb46fda9e7c97d0bf4eb02/webhooks/createJobFromSurveyResponse/hook1234567890", + "https://workflow.arcgis.com/{{user.orgId}}/e788fd6491bb46fda9e7c97d0bf4eb02/webhooks/createJobFromSurveyResponse/hook1234567890", }, { "active": true, "name": "Swizzle Webhook", From ba8e8ad4317da7990dfe5e299610b76c1755758b Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Thu, 22 Feb 2024 08:38:34 -0800 Subject: [PATCH 08/14] Refined Form webhook handling --- packages/common/src/templatization.ts | 3 +- packages/deployer/src/deploySolutionItems.ts | 6 +- .../helpers/{zip-utils.ts => formHelpers.ts} | 37 ++--- .../deployer/test/deploySolutionItems.test.ts | 2 +- ...{zip-utils.test.ts => formHelpers.test.ts} | 10 +- .../src/helpers/convert-item-to-template.ts | 4 +- .../simple-types/src/helpers/formHelpers.ts | 128 ++++-------------- .../helpers/convert-item-to-template.test.ts | 4 +- ...{zip-utils.test.ts => formHelpers.test.ts} | 52 +------ 9 files changed, 65 insertions(+), 181 deletions(-) rename packages/deployer/src/helpers/{zip-utils.ts => formHelpers.ts} (55%) rename packages/deployer/test/helpers/{zip-utils.test.ts => formHelpers.test.ts} (87%) rename packages/simple-types/test/helpers/{zip-utils.test.ts => formHelpers.test.ts} (57%) diff --git a/packages/common/src/templatization.ts b/packages/common/src/templatization.ts index 7145d0a74..977616d51 100644 --- a/packages/common/src/templatization.ts +++ b/packages/common/src/templatization.ts @@ -151,8 +151,7 @@ export function createPlaceholderTemplate( dependencies: [], groups: [], properties: {}, - estimatedDeploymentCostFactor: 2, - isOrgItem: true + estimatedDeploymentCostFactor: 2 }; } diff --git a/packages/deployer/src/deploySolutionItems.ts b/packages/deployer/src/deploySolutionItems.ts index 68ee67cf4..0a03803b5 100644 --- a/packages/deployer/src/deploySolutionItems.ts +++ b/packages/deployer/src/deploySolutionItems.ts @@ -21,7 +21,7 @@ */ import * as common from "@esri/solution-common"; -import * as zipUtils from "./helpers/zip-utils"; +import * as formHelpers from "./helpers/formHelpers"; import { moduleMap } from "./module-map"; const UNSUPPORTED: common.moduleHandler = null; @@ -1135,9 +1135,9 @@ export function _createItemFromTemplateWhenReady( ); if (formZipFilePath) { - // Fetch the formzip file and demplatize it + // Fetch the form's zip file and detemplatize it const zipObject = await common.fetchZipObject(formZipFilePath.url, storageAuthentication); - const updatedZipObject = await zipUtils.detemplatizeFormData(zipObject, templateDictionary); + const updatedZipObject = await formHelpers.swizzleFormData(zipObject, templateDictionary); // Update the new item void common.updateItemWithZipObject(updatedZipObject, destinationItemId, destinationAuthentication); diff --git a/packages/deployer/src/helpers/zip-utils.ts b/packages/deployer/src/helpers/formHelpers.ts similarity index 55% rename from packages/deployer/src/helpers/zip-utils.ts rename to packages/deployer/src/helpers/formHelpers.ts index 5ab36e716..c5719d5aa 100644 --- a/packages/deployer/src/helpers/zip-utils.ts +++ b/packages/deployer/src/helpers/formHelpers.ts @@ -20,34 +20,39 @@ import JSZip from "jszip"; // ------------------------------------------------------------------------------------------------------------------ // /** - * Detemplatize the contents of a zip object. + * Detemplatizes Form data and swizzles the AGO ids of a zip object if they are present in the template dictionary. * * @param zipObject Zip file to be modified in place * @param templateDictionary Dictionary of replacement values * @returns Promise that resolves to the updated zip object */ -export async function detemplatizeFormData( +export async function swizzleFormData( zipObject: JSZip, templateDictionary: any ): Promise { // Get the contents of the zip object const zipObjectContents = await common.getZipObjectContents(zipObject); - // Detemplatize the contents of each file in a zip file and replace them in the zip object + // Swizzle the contents of each file in a zip file and replace them in the zip object zipObjectContents.forEach( - (zipFile: common.IZipObjectContentItem) => { - try { - let updatedZipContent = zipFile.content; - - // Detemplatize the file content - updatedZipContent = common.replaceInTemplate(updatedZipContent, templateDictionary); - - // Replace the file content in the zip object - zipObject.file(zipFile.file, updatedZipContent); - - } catch (_e) { - // Ignore errors - } + (zipFile : common.IZipObjectContentItem) => { + // Detemplatize the file content + let updatedZipContent = common.replaceInTemplate(zipFile.content, templateDictionary); + + // Find the AGO ids in the file content + const agoIdRegEx = common.getAgoIdRegEx(); + const agoIdMatches = updatedZipContent.match(agoIdRegEx) ?? []; + + // Replace the matching AGO id in the file content iff it is present in the template dictionary + agoIdMatches.forEach((match: string) => { + const replacement = templateDictionary[match]; + if (replacement) { + updatedZipContent = updatedZipContent.replace(new RegExp(match, "g"), `${replacement.itemId}`); + } + }); + + // Replace the file content in the zip object + zipObject.file(zipFile.file, updatedZipContent); } ); diff --git a/packages/deployer/test/deploySolutionItems.test.ts b/packages/deployer/test/deploySolutionItems.test.ts index bf1d6bf53..a5b489f90 100644 --- a/packages/deployer/test/deploySolutionItems.test.ts +++ b/packages/deployer/test/deploySolutionItems.test.ts @@ -26,7 +26,7 @@ import * as simpleTypes from "@esri/solution-simple-types"; import * as templates from "../../common/test/mocks/templates"; import * as testUtils from "../../common/test/mocks/utils"; import * as utils from "../../common/test/mocks/utils"; -import * as zipUtils from "../src/helpers/zip-utils"; +import * as formHelpers from "../src/helpers/formHelpers"; import * as zipUtilsTest from "../../common/test/zip-utils.test"; import JSZip from "jszip"; diff --git a/packages/deployer/test/helpers/zip-utils.test.ts b/packages/deployer/test/helpers/formHelpers.test.ts similarity index 87% rename from packages/deployer/test/helpers/zip-utils.test.ts rename to packages/deployer/test/helpers/formHelpers.test.ts index 7bb64e189..5133644da 100644 --- a/packages/deployer/test/helpers/zip-utils.test.ts +++ b/packages/deployer/test/helpers/formHelpers.test.ts @@ -19,9 +19,9 @@ */ import * as common from "@esri/solution-common"; -import * as utils from "../../../common/test/mocks/utils"; -import * as zipUtils from "../../src/helpers/zip-utils"; -import * as zipUtilsTest from "../../../common/test/zip-utils.test";1 +import * as utils from "@esri/solution-common/test/mocks/utils"; +import * as zipUtils from "../../src/helpers/formHelpers"; +import * as zipUtilsTest from "@esri/solution-common/test/zip-utils.test";1 // ------------------------------------------------------------------------------------------------------------------ // @@ -35,7 +35,7 @@ beforeEach(() => { describe("Module `zip-utils`", () => { - describe("detemplatizeFormData", () => { + describe("swizzleFormData", () => { const org1 = "org1234567890"; const itemId1 = "2f56b3b59cdc4ac8b8f5de0399887e1e"; const orgId2 = "org1234567891"; @@ -57,7 +57,7 @@ describe("Module `zip-utils`", () => { itemId: itemId2 }; - const modifiedZipObject = await zipUtils.detemplatizeFormData(zipObject, templateDictionary); + const modifiedZipObject = await zipUtils.swizzleFormData(zipObject, templateDictionary); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); diff --git a/packages/simple-types/src/helpers/convert-item-to-template.ts b/packages/simple-types/src/helpers/convert-item-to-template.ts index 9a8bc43da..5d3c95846 100644 --- a/packages/simple-types/src/helpers/convert-item-to-template.ts +++ b/packages/simple-types/src/helpers/convert-item-to-template.ts @@ -159,8 +159,8 @@ export function convertItemToTemplate( itemTemplate.dependencies = itemTemplate.dependencies.concat(await common.getWebHookDependencies(zipObject)); - // Templatize the form's data - zipObject = await formHelpers.templatizeFormData(zipObject, itemTemplate.isOrgItem); + // Templatize the form's webhooks; we'll postpone handling the AGO ids until deployment + zipObject = await formHelpers.templatizeFormWebHooks(zipObject, itemTemplate.isOrgItem); itemTemplate.item.name = _getFormDataFilename( itemTemplate.item.name, (itemDataResponse as File).name, `${itemTemplate.itemId}.zip` diff --git a/packages/simple-types/src/helpers/formHelpers.ts b/packages/simple-types/src/helpers/formHelpers.ts index 7583529df..65bef13fa 100644 --- a/packages/simple-types/src/helpers/formHelpers.ts +++ b/packages/simple-types/src/helpers/formHelpers.ts @@ -20,118 +20,44 @@ import JSZip from "jszip"; // ------------------------------------------------------------------------------------------------------------------ // /** - * Templatizes a form's zip file. + * Templatizes the URLs in webhooks in a form's zip object. * - * @param zipObject Form zip object to templatize + * @param zipObject Form zip object to templatize in place * @param isOrgItem Indicates whether this item and the user whose credential was used to fetch this item belong * to the same ArcGIS Enterprise Portal or ArcGIS Online Organization - * @returns Promise that resolves to the modified zip object if the swizzle was successful + * @returns Promise that resolves to the modified zip object */ -export async function templatizeFormData( +export async function templatizeFormWebHooks( zipObject: JSZip, - isOrgItem = false + isOrgItem: boolean ): Promise { - // Replace AGO ids - zipObject = await _templatizeAgoIds(zipObject); - - // Templatize webhooks const webhooks = await common.getWebHooksFromZipObject(zipObject); if (webhooks.length > 0) { - _templatizeWebHooks(webhooks, isOrgItem); + webhooks.forEach((webhook: any) => { + // Templatize the webhook URL + let url = webhook.url; + const urlObj = new URL(url); + + const server = `${urlObj.protocol}//${urlObj.host}`; + const workflowServer = "https://workflow.arcgis.com"; + + if (server === workflowServer) { + // Templatize organization + const partialPath = url.substring(workflowServer.length); + const partialPathParts = partialPath.split("/"); + const orgId = partialPathParts[1]; + url = url.replace(orgId, "{{user.orgId}}"); + + } else if (isOrgItem) { + // Templatize server + url = url.replace(server, "{{portalBaseUrl}}"); + } + + webhook.url = url; + }); zipObject = await common.setWebHooksInZipObject(zipObject, webhooks); } // Return the modified zip object return Promise.resolve(zipObject); } - -// ------------------------------------------------------------------------------------------------------------------ // - -/** - * Templatizes AGO ids in the supplied zip object. - * - * @param zipObject Zip object to templatize - * @returns Promise that resolves to the modified zip object - */ -export function _templatizeAgoIds( - zipObject: JSZip -): Promise { - return common.modifyFilesinZipObject( - (zippedFile: common.IZipObjectContentItem): string => { - // Replace AGO ids, but with special handling for ".info" file - // Save webhook URLs--we don't templatize them because they're handled in _templatizeWebHooks() - // Save the displayInfo.map.defaultType.name value--we don't templatize it - let webhookUrls: string[] = []; - let displayInfo_map_defaultType_name; - - if (zippedFile.file.endsWith(".info")) { - const infoFileJson = JSON.parse(zippedFile.content); - - webhookUrls = (common.getProp(infoFileJson, "notificationsInfo.webhooks") || []) - .map((webhook: any) => webhook.url); - - displayInfo_map_defaultType_name = common.getProp(infoFileJson, "displayInfo.map.defaultType.name"); - } - - // Templatize strings that look like AGO ids - zippedFile.content = common.templatizeIds(zippedFile.content); - - // Restore the webhook URLs & displayInfo.map.defaultType.name value - if (zippedFile.file.endsWith(".info") && displayInfo_map_defaultType_name) { - const infoFileJson = JSON.parse(zippedFile.content); - - const webhooks = common.getProp(infoFileJson, "notificationsInfo.webhooks") || []; - webhooks.forEach((webhook: any, i: number) => { - webhook.url = webhookUrls[i]; - }); - common.setProp(infoFileJson, "notificationsInfo.webhooks", webhooks); - - common.setProp(infoFileJson, "displayInfo.map.defaultType.name", displayInfo_map_defaultType_name); - - zippedFile.content = JSON.stringify(infoFileJson); - } - - return zippedFile.content; - }, - zipObject - ); -} - -/** - * Templatizes the URLs in webhooks. - * - * @param webhooks List of Form webhook definitions to templatize - * @param isOrgItem Indicates whether this item and the user whose credential was used to fetch this item belong - * to the same ArcGIS Enterprise Portal or ArcGIS Online Organization - */ -export function _templatizeWebHooks( - webhooks: any[], - isOrgItem: boolean -): void { - webhooks.forEach((webhook: any) => { - // Templatize the webhook URL - let url = webhook.url; - const urlObj = new URL(url); - - const server = `${urlObj.protocol}//${urlObj.host}`; - const workflowServer = "https://workflow.arcgis.com"; - - if (server === workflowServer) { - // Templatize organization - const partialPath = url.substring(workflowServer.length); - const partialPathParts = partialPath.split("/"); - const orgId = partialPathParts[1]; - url = url.replace(orgId, "{{user.orgId}}"); - - } else if (isOrgItem) { - // Templatize server - url = url.replace(server, "{{portalBaseUrl}}"); - - // Replace AGO ids - //???url = common.templatizeIds(url); - } - - webhook.url = url; - }); -} - diff --git a/packages/simple-types/test/helpers/convert-item-to-template.test.ts b/packages/simple-types/test/helpers/convert-item-to-template.test.ts index 03d9ce819..b99e3f797 100644 --- a/packages/simple-types/test/helpers/convert-item-to-template.test.ts +++ b/packages/simple-types/test/helpers/convert-item-to-template.test.ts @@ -492,7 +492,7 @@ describe("simpleTypeConvertItemToTemplate", () => { { relationshipType: "Survey2Data", relatedItemIds: ["srv1234567890", "abc1234567890"] }, { relationshipType: "Survey2Service", relatedItemIds: ["srv1234567890"] } ] as common.IRelatedItems[]); - spyOn(formHelpers, "templatizeFormData").and.callFake((zipObject: JSZip) => Promise.resolve(zipObject)); + spyOn(formHelpers, "templatizeFormWebHooks").and.callFake((zipObject: any) => Promise.resolve(zipObject)); simpleTypes .convertItemToTemplate( @@ -511,7 +511,7 @@ describe("simpleTypeConvertItemToTemplate", () => { { relationshipType: "Survey2Data", relatedItemIds: ["srv1234567890", "abc1234567890"] }, { relationshipType: "Survey2Service", relatedItemIds: ["srv1234567890"] } ] as common.IRelatedItems[]); - spyOn(formHelpers, "templatizeFormData").and.callFake((zipObject: JSZip) => Promise.resolve(zipObject)); + spyOn(formHelpers, "templatizeFormWebHooks").and.callFake((zipObject: any) => Promise.resolve(zipObject)); simpleTypes .convertItemToTemplate( diff --git a/packages/simple-types/test/helpers/zip-utils.test.ts b/packages/simple-types/test/helpers/formHelpers.test.ts similarity index 57% rename from packages/simple-types/test/helpers/zip-utils.test.ts rename to packages/simple-types/test/helpers/formHelpers.test.ts index bcc24d9ed..384c97bb2 100644 --- a/packages/simple-types/test/helpers/zip-utils.test.ts +++ b/packages/simple-types/test/helpers/formHelpers.test.ts @@ -20,7 +20,7 @@ import * as common from "@esri/solution-common"; import * as formHelpers from "../../src/helpers/formHelpers"; -import * as zipUtilsTest from "../../../common/test/zip-utils.test"; +import * as zipUtilsTest from "@esri/solution-common/test/zip-utils.test"; // ------------------------------------------------------------------------------------------------------------------ // @@ -36,7 +36,7 @@ describe("Module `zip-utils`", () => { const filename = "test.zip"; const zipObject = await zipUtilsTest.generateFormZipObject(itemId); - const modifiedZipObject = await formHelpers.templatizeFormData(zipObject); + const modifiedZipObject = await formHelpers.templatizeFormWebHooks(zipObject, true); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`); @@ -52,7 +52,7 @@ describe("Module `zip-utils`", () => { const filename = "test.zip"; const zipObject = await zipUtilsTest.generateFormZipObject(itemId, false); - const modifiedZipObject = await formHelpers.templatizeFormData(zipObject); + const modifiedZipObject = await formHelpers.templatizeFormWebHooks(zipObject, true); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`, false); @@ -62,50 +62,4 @@ describe("Module `zip-utils`", () => { }); }); - describe("_templatizeAgoIds", () => { - const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; - - it("templatizes AGO ids", async () => { - const zipObject = zipUtilsTest.generateFormZipObject(itemId); - const zipContents = await common.getZipObjectContents(zipObject); - - const modifiedZipObject = await formHelpers._templatizeAgoIds(zipObject); - const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); - - const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`); - const expectedZipContents = await common.getZipObjectContents(expectedZipObject); - - expect(zipContents).not.toEqual(modifiedZipContents); - expect(modifiedZipContents).toEqual(expectedZipContents); - }); - }); - - describe("_templatizeWebHooks", () => { - it("templatizes webhooks", () => { - const webhooks = [{ - "active": true, - "name": "workflow manager", - "url": - "https://workflow.arcgis.com/org1234567890/e788fd6491bb46fda9e7c97d0bf4eb02/webhooks/createJobFromSurveyResponse/hook1234567890", - }, { - "active": true, - "name": "Swizzle Webhook", - "url": "https://myorg.maps.arcgis.com/home/item.html?id=e788fd6491bb46fda9e7c97d0bf4eb02", - }]; - - formHelpers._templatizeWebHooks(webhooks); - - expect(webhooks).toEqual([{ - "active": true, - "name": "workflow manager", - "url": - "https://workflow.arcgis.com/{{user.orgId}}/e788fd6491bb46fda9e7c97d0bf4eb02/webhooks/createJobFromSurveyResponse/hook1234567890", - }, { - "active": true, - "name": "Swizzle Webhook", - "url": "{{portalBaseUrl}}/home/item.html?id=e788fd6491bb46fda9e7c97d0bf4eb02", - }]); - }); - }); - }); From 94e05f0d02d1e7d093e43b6a6152dd11e65908fc Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Thu, 22 Feb 2024 13:52:19 -0800 Subject: [PATCH 09/14] Refined Form webhook handling --- demos/compareJSON/package-lock.json | 52 +- demos/compareSolutions/package-lock.json | 52 +- demos/copyItemInfo/package-lock.json | 52 +- demos/copySolutions/package-lock.json | 58 +-- demos/createSolution/package-lock.json | 52 +- demos/deleteSolution/package-lock.json | 52 +- demos/deploySolution/package-lock.json | 52 +- demos/getItemInfo/package-lock.json | 52 +- demos/implementedTypes/package-lock.json | 52 +- demos/verifySolution/package-lock.json | 52 +- package-lock.json | 479 ++++++++++-------- package.json | 2 +- packages/common/src/formHelpers.ts | 25 - packages/common/src/generalHelpers.ts | 26 +- packages/common/src/templatization.ts | 5 +- packages/deployer/src/deploySolutionItems.ts | 9 +- packages/deployer/src/index.ts | 3 +- .../deployer/test/deploySolutionItems.test.ts | 2 - .../deployer/test/helpers/formHelpers.test.ts | 4 +- .../formHelpers.ts => form/src/formUtils.ts} | 5 +- packages/form/src/index.ts | 1 + packages/form/src/post-process.ts | 39 +- .../src/helpers/convert-item-to-template.ts | 7 +- .../simple-types/src/helpers/formHelpers.ts | 2 +- 24 files changed, 598 insertions(+), 537 deletions(-) rename packages/{deployer/src/helpers/formHelpers.ts => form/src/formUtils.ts} (93%) diff --git a/demos/compareJSON/package-lock.json b/demos/compareJSON/package-lock.json index aba120a02..88bcf5e29 100644 --- a/demos/compareJSON/package-lock.json +++ b/demos/compareJSON/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -290,9 +290,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -702,9 +702,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -721,8 +721,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2211,9 +2211,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2398,9 +2398,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/compareSolutions/package-lock.json b/demos/compareSolutions/package-lock.json index 0fc2528b9..a6c52479c 100644 --- a/demos/compareSolutions/package-lock.json +++ b/demos/compareSolutions/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -290,9 +290,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -702,9 +702,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -721,8 +721,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2211,9 +2211,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2398,9 +2398,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/copyItemInfo/package-lock.json b/demos/copyItemInfo/package-lock.json index bcd0522f7..9d482cb9f 100644 --- a/demos/copyItemInfo/package-lock.json +++ b/demos/copyItemInfo/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -290,9 +290,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -702,9 +702,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -721,8 +721,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2211,9 +2211,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2398,9 +2398,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/copySolutions/package-lock.json b/demos/copySolutions/package-lock.json index ab7b35bc1..0e5b90bed 100644 --- a/demos/copySolutions/package-lock.json +++ b/demos/copySolutions/package-lock.json @@ -154,9 +154,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -292,9 +292,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -371,9 +371,9 @@ } }, "node_modules/@sindresorhus/merge-streams": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.2.0.tgz", - "integrity": "sha512-UTce8mUwUW0RikMb/eseJ7ys0BRkZVFB86orHzrfW12ZmFtym5zua8joZ4L7okH2dDFHkcFjqnZ5GocWBXOFtA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, "engines": { "node": ">=18" @@ -436,9 +436,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -790,9 +790,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -809,8 +809,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -838,9 +838,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1141,9 +1141,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2561,9 +2561,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2778,9 +2778,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/createSolution/package-lock.json b/demos/createSolution/package-lock.json index 3ff4a46aa..f148f778f 100644 --- a/demos/createSolution/package-lock.json +++ b/demos/createSolution/package-lock.json @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -500,9 +500,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -597,9 +597,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -912,9 +912,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -931,8 +931,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -960,9 +960,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1239,9 +1239,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2421,9 +2421,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2608,9 +2608,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/deleteSolution/package-lock.json b/demos/deleteSolution/package-lock.json index 9f86705cd..29fdad85e 100644 --- a/demos/deleteSolution/package-lock.json +++ b/demos/deleteSolution/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -290,9 +290,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -702,9 +702,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -721,8 +721,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2211,9 +2211,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2398,9 +2398,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/deploySolution/package-lock.json b/demos/deploySolution/package-lock.json index c43bfa1b2..a0365cc76 100644 --- a/demos/deploySolution/package-lock.json +++ b/demos/deploySolution/package-lock.json @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -500,9 +500,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -597,9 +597,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -912,9 +912,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -931,8 +931,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -960,9 +960,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1239,9 +1239,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2421,9 +2421,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2608,9 +2608,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/getItemInfo/package-lock.json b/demos/getItemInfo/package-lock.json index 7d48cd617..7064cca68 100644 --- a/demos/getItemInfo/package-lock.json +++ b/demos/getItemInfo/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -290,9 +290,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -387,9 +387,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -702,9 +702,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -721,8 +721,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -750,9 +750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1029,9 +1029,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2211,9 +2211,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2398,9 +2398,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/implementedTypes/package-lock.json b/demos/implementedTypes/package-lock.json index 07298aeb2..426abc1da 100644 --- a/demos/implementedTypes/package-lock.json +++ b/demos/implementedTypes/package-lock.json @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -500,9 +500,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -597,9 +597,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -912,9 +912,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -931,8 +931,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -960,9 +960,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1239,9 +1239,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2421,9 +2421,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2608,9 +2608,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/demos/verifySolution/package-lock.json b/demos/verifySolution/package-lock.json index f78cae057..7a35cd423 100644 --- a/demos/verifySolution/package-lock.json +++ b/demos/verifySolution/package-lock.json @@ -153,9 +153,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -306,9 +306,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -403,9 +403,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -718,9 +718,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -737,8 +737,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -766,9 +766,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -1045,9 +1045,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/enhanced-resolve": { @@ -2227,9 +2227,9 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.2.tgz", + "integrity": "sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -2414,9 +2414,9 @@ } }, "node_modules/webpack": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", - "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", diff --git a/package-lock.json b/package-lock.json index 4edc86a48..195e4c1f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2079,9 +2079,9 @@ "integrity": "sha512-KEgORx0HKHOrV4oMYOwmZ76N89WTNkbKb1z3UYJrOEaKVGRU3jisgQcuTXFqjJJe4ZApGQhxCzNgcaU067qdpA==" }, "node_modules/@esri/hub-common": { - "version": "14.90.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.90.0.tgz", - "integrity": "sha512-bGoavsb+Ob1TxScJDMx5pR0T2ryNRZb4S/vz9RJY9Q8uMhczYU5+Cn9r51a+Zt9qz64aZ5IqQHGZ2/JpAjsQJA==", + "version": "14.93.1", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", + "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -2610,9 +2610,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -3803,9 +3803,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", - "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", "cpu": [ "arm" ], @@ -3816,9 +3816,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", - "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", "cpu": [ "arm64" ], @@ -3829,9 +3829,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", - "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", "cpu": [ "arm64" ], @@ -3842,9 +3842,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", - "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", "cpu": [ "x64" ], @@ -3855,9 +3855,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", - "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", "cpu": [ "arm" ], @@ -3868,9 +3868,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", - "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", "cpu": [ "arm64" ], @@ -3881,9 +3881,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", - "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", "cpu": [ "arm64" ], @@ -3894,9 +3894,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", - "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", "cpu": [ "riscv64" ], @@ -3907,9 +3907,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", - "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", "cpu": [ "x64" ], @@ -3920,9 +3920,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", - "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", "cpu": [ "x64" ], @@ -3933,9 +3933,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", - "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", "cpu": [ "arm64" ], @@ -3946,9 +3946,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", - "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", "cpu": [ "ia32" ], @@ -3959,9 +3959,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", - "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", "cpu": [ "x64" ], @@ -4213,31 +4213,40 @@ } }, "node_modules/@sigstore/verify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.0.0.tgz", - "integrity": "sha512-sRU6nblDBQ4pVTWni019Kij+XQj4RP75WXN5z3qHk81dt/L8A7r3v8RgRInTup4/Jf90WNods9CcbnWj7zJ26w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.0.tgz", + "integrity": "sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/verify/node_modules/@sigstore/bundle": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.1.tgz", - "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", + "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@sigstore/verify/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", + "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -4517,9 +4526,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -4553,16 +4562,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.1.tgz", - "integrity": "sha512-OLvgeBv3vXlnnJGIAgCLYKjgMEU+wBGj07MQ/nxAaON+3mLzX7mJbhRYrVGiVvFiXtwFlkcBa/TtmglHy0UbzQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.2.tgz", + "integrity": "sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.0.1", - "@typescript-eslint/type-utils": "7.0.1", - "@typescript-eslint/utils": "7.0.1", - "@typescript-eslint/visitor-keys": "7.0.1", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/type-utils": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4621,15 +4630,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.1.tgz", - "integrity": "sha512-8GcRRZNzaHxKzBPU3tKtFNing571/GwPBeCvmAUw0yBtfE2XVd0zFKJIMSWkHJcPQi0ekxjIts6L/rrZq5cxGQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.2.tgz", + "integrity": "sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.0.1", - "@typescript-eslint/types": "7.0.1", - "@typescript-eslint/typescript-estree": "7.0.1", - "@typescript-eslint/visitor-keys": "7.0.1", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", "debug": "^4.3.4" }, "engines": { @@ -4649,13 +4658,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.1.tgz", - "integrity": "sha512-v7/T7As10g3bcWOOPAcbnMDuvctHzCFYCG/8R4bK4iYzdFqsZTbXGln0cZNVcwQcwewsYU2BJLay8j0/4zOk4w==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.2.tgz", + "integrity": "sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.0.1", - "@typescript-eslint/visitor-keys": "7.0.1" + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4666,13 +4675,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.1.tgz", - "integrity": "sha512-YtT9UcstTG5Yqy4xtLiClm1ZpM/pWVGFnkAa90UfdkkZsR1eP2mR/1jbHeYp8Ay1l1JHPyGvoUYR6o3On5Nhmw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.2.tgz", + "integrity": "sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.0.1", - "@typescript-eslint/utils": "7.0.1", + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/utils": "7.0.2", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4693,9 +4702,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.1.tgz", - "integrity": "sha512-uJDfmirz4FHib6ENju/7cz9SdMSkeVvJDK3VcMFvf/hAShg8C74FW+06MaQPODHfDJp/z/zHfgawIJRjlu0RLg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.2.tgz", + "integrity": "sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4706,13 +4715,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.1.tgz", - "integrity": "sha512-SO9wHb6ph0/FN5OJxH4MiPscGah5wjOd0RRpaLvuBv9g8565Fgu0uMySFEPqwPHiQU90yzJ2FjRYKGrAhS1xig==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.2.tgz", + "integrity": "sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.0.1", - "@typescript-eslint/visitor-keys": "7.0.1", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4767,17 +4776,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.1.tgz", - "integrity": "sha512-oe4his30JgPbnv+9Vef1h48jm0S6ft4mNwi9wj7bX10joGn07QRfqIqFHoMiajrtoU88cIhXf8ahwgrcbNLgPA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.2.tgz", + "integrity": "sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.0.1", - "@typescript-eslint/types": "7.0.1", - "@typescript-eslint/typescript-estree": "7.0.1", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", "semver": "^7.5.4" }, "engines": { @@ -4825,12 +4834,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.1.tgz", - "integrity": "sha512-hwAgrOyk++RTXrP4KzCg7zB2U0xt7RUU0ZdMSCsqF3eKUwkdXUMyTb0qdCuji7VIbcpG62kKTU9M1J1c9UpFBw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.2.tgz", + "integrity": "sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.0.1", + "@typescript-eslint/types": "7.0.2", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -5387,10 +5396,13 @@ "dev": true }, "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -6002,9 +6014,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -6021,8 +6033,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -6334,9 +6346,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -7119,12 +7131,12 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", - "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", "dev": true, "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.22.3" }, "funding": { "type": "opencollective", @@ -7706,9 +7718,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.668", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.668.tgz", - "integrity": "sha512-ZOBocMYCehr9W31+GpMclR+KBaDZOoAEabLdhpZ8oU1JFDwIaFY0UDbpXVEUFc0BIP2O2Qn3rkfCjQmMR4T/bQ==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true }, "node_modules/elliptic": { @@ -7952,14 +7964,14 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -8212,9 +8224,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.0.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.0.6.tgz", - "integrity": "sha512-LgwXOX6TWxxFYcbdVe+BJ94Kl/pgjSPYHLzqEdAMXTA1BH9WDx7iJ+9/iDajPF64LtzWX8C1mCfpbMZjJGhAOw==", + "version": "48.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.0.tgz", + "integrity": "sha512-O2B1XLBJnUCRkggFzUQ+PBYJDit8iAgXdlu8ucolqGrbmOWPvttZQZX8d1sC0MbqDMSLs8SHSQxaNPRY1RQREg==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.42.0", @@ -8977,9 +8989,9 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/follow-redirects": { @@ -9865,9 +9877,9 @@ } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "engines": { "node": ">= 0.4" @@ -10047,9 +10059,9 @@ } }, "node_modules/http-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz", - "integrity": "sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -10066,9 +10078,9 @@ "dev": true }, "node_modules/https-proxy-agent": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.3.tgz", - "integrity": "sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -10816,9 +10828,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -10916,12 +10928,15 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11231,9 +11246,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -15903,26 +15918,35 @@ } }, "node_modules/pacote/node_modules/@sigstore/bundle": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.1.tgz", - "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", + "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/pacote/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", + "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/pacote/node_modules/@sigstore/sign": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.2.tgz", - "integrity": "sha512-mAifqvvGOCkb5BJ5d/SRrVP5+kKCGxtcHuti6lgqZalIfNxikxlJMMptOqFp9+xV5LAnJMSaMWtzvcgNZ3PlPA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz", + "integrity": "sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/protobuf-specs": "^0.3.0", "make-fetch-happen": "^13.0.0" }, "engines": { @@ -15930,12 +15954,12 @@ } }, "node_modules/pacote/node_modules/@sigstore/tuf": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.0.tgz", - "integrity": "sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.1.tgz", + "integrity": "sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/protobuf-specs": "^0.3.0", "tuf-js": "^2.2.0" }, "engines": { @@ -16140,17 +16164,17 @@ } }, "node_modules/pacote/node_modules/sigstore": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.1.tgz", - "integrity": "sha512-OBBSKvmjr4DCyUb+IC2p7wooOCsCNwaqvCilTJVNPo0y8lJl+LsCrfz4LtMwnw3Gn+8frt816wi1+DWZTUCpBQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz", + "integrity": "sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.2", - "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^1.0.0" + "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/sign": "^2.2.3", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -16466,6 +16490,15 @@ "node": ">=8" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -17488,9 +17521,9 @@ } }, "node_modules/rollup": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", - "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -17503,19 +17536,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.10.0", - "@rollup/rollup-android-arm64": "4.10.0", - "@rollup/rollup-darwin-arm64": "4.10.0", - "@rollup/rollup-darwin-x64": "4.10.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", - "@rollup/rollup-linux-arm64-gnu": "4.10.0", - "@rollup/rollup-linux-arm64-musl": "4.10.0", - "@rollup/rollup-linux-riscv64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-musl": "4.10.0", - "@rollup/rollup-win32-arm64-msvc": "4.10.0", - "@rollup/rollup-win32-ia32-msvc": "4.10.0", - "@rollup/rollup-win32-x64-msvc": "4.10.0", + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", "fsevents": "~2.3.2" } }, @@ -17672,14 +17705,15 @@ } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -18170,11 +18204,12 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", "dev": true, "dependencies": { + "debug": "~4.3.4", "ws": "~8.11.0" } }, @@ -18280,9 +18315,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", - "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -19331,12 +19366,12 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz", - "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-typed-array": "^1.1.13" }, @@ -19345,15 +19380,16 @@ } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -19363,16 +19399,17 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -19382,14 +19419,20 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" diff --git a/package.json b/package.json index 22ccb4bfc..8e0266c71 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "scripts": { "build": "npm run build:esm && npm run build:cjs", "build:esm": "ultra --no-pretty --silent --build -r --filter \"packages/*\" build:esm", - "build:cjs": "ultra --no-pretty --silent --rebuild -r --filter \"packages/*\" build:cjs", + "build:cjs": "ultra --no-pretty --silent --build -r --filter \"packages/*\" build:cjs", "clean": "npm run clean:src && npm run clean:dist", "clean:src": "rm -rf packages/*/{src,test}/*.{d.ts,js,js.map} && rm -rf packages/*/{src,test}/**/*.{d.ts,js,js.map} && find demos/**/src/*.d.ts -type f -delete", "clean:dist": "rm -rf demos/**/dist/ && rm -rf packages/*/dist/ && rm -rf packages/*/.rpt2_cache", diff --git a/packages/common/src/formHelpers.ts b/packages/common/src/formHelpers.ts index 832708852..732c9b705 100644 --- a/packages/common/src/formHelpers.ts +++ b/packages/common/src/formHelpers.ts @@ -23,31 +23,6 @@ import JSZip from "jszip"; // ------------------------------------------------------------------------------------------------------------------ // -/** - * Gets the dependencies of a Form that are stored in its zip object webhooks. - * - * @param zipObject Zip file object from which to get the dependencies - * @returns Promise that resolves to an array of dependencies - */ -export async function getWebHookDependencies( - zipObject: JSZip -): Promise { - const agoIdRegEx = generalHelpers.getAgoIdRegEx(); - const webhooks = await getWebHooksFromZipObject(zipObject); - const dependencies: string[] = []; - webhooks.forEach((webhook: any) => { - if (!webhook.url.startsWith("https://workflow.arcgis.com")) { - const matches = webhook.url.match(agoIdRegEx) ?? []; - matches.forEach((match: string) => { - if (!dependencies.includes(match)) { - dependencies.push(match); - } - }); - } - }); - return Promise.resolve(dependencies); -} - /** * Gets the webhooks from a Form zip object's *.info file. * diff --git a/packages/common/src/generalHelpers.ts b/packages/common/src/generalHelpers.ts index 7e736bbc7..6a1a2bf0f 100644 --- a/packages/common/src/generalHelpers.ts +++ b/packages/common/src/generalHelpers.ts @@ -20,7 +20,7 @@ * @module generalHelpers */ -import { createId, IModel } from "@esri/hub-common"; +import { IModel, createId, unique } from "@esri/hub-common"; import { ICreateItemFromTemplateResponse, IDatasourceInfo, @@ -170,6 +170,18 @@ export function dedupe(input: string[] = []): string[] { return output; } +/** + * Performs an asynchronous delay. + * + * @param ms Milliseconds to delay + * @returns Promise when delay is complete + */ +export function delay( + ms: number +) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + /** * Flags a failure to create an item from a template. * @@ -932,6 +944,18 @@ export function regExTest(v: any, ex: RegExp): any[] { return v && ex.test(v) ? v.match(ex) : []; } +/** + * Removes duplicates from a list of strings. + * + * @param list List to be de-duped + * @returns List of unique strings + */ +export function uniqueStringList( + list: string[] +): string[] { + return list.filter(unique); +} + // ------------------------------------------------------------------------------------------------------------------ // /** diff --git a/packages/common/src/templatization.ts b/packages/common/src/templatization.ts index 977616d51..162d359a7 100644 --- a/packages/common/src/templatization.ts +++ b/packages/common/src/templatization.ts @@ -20,9 +20,8 @@ * @module templatization */ -import { unique } from "@esri/hub-common"; import { adlib } from "adlib"; -import { createShortId, getProp } from "./generalHelpers"; +import { createShortId, getProp, uniqueStringList } from "./generalHelpers"; import { IItemTemplate, ISolutionItemData } from "./interfaces"; // ------------------------------------------------------------------------------------------------------------------ // @@ -339,7 +338,7 @@ export function templatizeIds(obj: any): any { const idTest: RegExp = /[0-9A-F]{32}/gim; if (obj && idTest.test(objString)) { // Templatize ids - const ids: string[] = objString.match(idTest).filter(unique); + const ids: string[] = uniqueStringList(objString.match(idTest)); ids.forEach(id => { const regEx = new RegExp(id, "gm"); objString = objString.replace(regEx, "{{" + id + ".itemId}}"); diff --git a/packages/deployer/src/deploySolutionItems.ts b/packages/deployer/src/deploySolutionItems.ts index 0a03803b5..b4968d126 100644 --- a/packages/deployer/src/deploySolutionItems.ts +++ b/packages/deployer/src/deploySolutionItems.ts @@ -21,7 +21,7 @@ */ import * as common from "@esri/solution-common"; -import * as formHelpers from "./helpers/formHelpers"; +import * as form from "@esri/solution-form"; import { moduleMap } from "./module-map"; const UNSUPPORTED: common.moduleHandler = null; @@ -157,7 +157,10 @@ export function deploySolutionItems( // Get the item's template out of the list of templates const template = common.findTemplateInList(templates, id); - if (template.type === "QuickCapture Project") { + if (template.type === "Form") { + // Flag all forms for post processing of their webhooks + itemsToBePatched[id] = []; + } else if (template.type === "QuickCapture Project") { // Remove qc.project.json files from the resources--we don't use them from solutions template.resources = template.resources.filter( (filename: string) => !filename.endsWith("qc.project.json") @@ -1137,7 +1140,7 @@ export function _createItemFromTemplateWhenReady( if (formZipFilePath) { // Fetch the form's zip file and detemplatize it const zipObject = await common.fetchZipObject(formZipFilePath.url, storageAuthentication); - const updatedZipObject = await formHelpers.swizzleFormData(zipObject, templateDictionary); + const updatedZipObject = await form.swizzleFormObject(zipObject, templateDictionary); // Update the new item void common.updateItemWithZipObject(updatedZipObject, destinationItemId, destinationAuthentication); diff --git a/packages/deployer/src/index.ts b/packages/deployer/src/index.ts index 7a0b33c9c..35ff5086a 100644 --- a/packages/deployer/src/index.ts +++ b/packages/deployer/src/index.ts @@ -21,6 +21,7 @@ */ export * from "./deployer"; -export * from "./deploySolutionItems"; export * from "./deployerUtils"; +export * from "./deploySolutionItems"; export * from "./module-map"; + diff --git a/packages/deployer/test/deploySolutionItems.test.ts b/packages/deployer/test/deploySolutionItems.test.ts index a5b489f90..f43d1bc7d 100644 --- a/packages/deployer/test/deploySolutionItems.test.ts +++ b/packages/deployer/test/deploySolutionItems.test.ts @@ -26,9 +26,7 @@ import * as simpleTypes from "@esri/solution-simple-types"; import * as templates from "../../common/test/mocks/templates"; import * as testUtils from "../../common/test/mocks/utils"; import * as utils from "../../common/test/mocks/utils"; -import * as formHelpers from "../src/helpers/formHelpers"; import * as zipUtilsTest from "../../common/test/zip-utils.test"; -import JSZip from "jszip"; // ------------------------------------------------------------------------------------------------------------------ // diff --git a/packages/deployer/test/helpers/formHelpers.test.ts b/packages/deployer/test/helpers/formHelpers.test.ts index 5133644da..2fba4189b 100644 --- a/packages/deployer/test/helpers/formHelpers.test.ts +++ b/packages/deployer/test/helpers/formHelpers.test.ts @@ -19,8 +19,8 @@ */ import * as common from "@esri/solution-common"; +import * as form from "@esri/solution-form"; import * as utils from "@esri/solution-common/test/mocks/utils"; -import * as zipUtils from "../../src/helpers/formHelpers"; import * as zipUtilsTest from "@esri/solution-common/test/zip-utils.test";1 // ------------------------------------------------------------------------------------------------------------------ // @@ -57,7 +57,7 @@ describe("Module `zip-utils`", () => { itemId: itemId2 }; - const modifiedZipObject = await zipUtils.swizzleFormData(zipObject, templateDictionary); + const modifiedZipObject = await form.swizzleFormObject(zipObject, templateDictionary); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); diff --git a/packages/deployer/src/helpers/formHelpers.ts b/packages/form/src/formUtils.ts similarity index 93% rename from packages/deployer/src/helpers/formHelpers.ts rename to packages/form/src/formUtils.ts index c5719d5aa..47a6bdf71 100644 --- a/packages/deployer/src/helpers/formHelpers.ts +++ b/packages/form/src/formUtils.ts @@ -26,7 +26,7 @@ import JSZip from "jszip"; * @param templateDictionary Dictionary of replacement values * @returns Promise that resolves to the updated zip object */ -export async function swizzleFormData( +export async function swizzleFormObject( zipObject: JSZip, templateDictionary: any ): Promise { @@ -46,7 +46,8 @@ export async function swizzleFormData( // Replace the matching AGO id in the file content iff it is present in the template dictionary agoIdMatches.forEach((match: string) => { const replacement = templateDictionary[match]; - if (replacement) { + if (replacement && typeof replacement?.itemId === "string") { + if (match === replacement.itemId) { return; } updatedZipContent = updatedZipContent.replace(new RegExp(match, "g"), `${replacement.itemId}`); } }); diff --git a/packages/form/src/index.ts b/packages/form/src/index.ts index 9b21361f7..de10d1a15 100644 --- a/packages/form/src/index.ts +++ b/packages/form/src/index.ts @@ -22,4 +22,5 @@ export * from "./convert-item-to-template"; export * from "./create-item-from-template"; +export * from "./formUtils"; export * from "./post-process"; diff --git a/packages/form/src/post-process.ts b/packages/form/src/post-process.ts index 21d158859..5ef7e8ba7 100644 --- a/packages/form/src/post-process.ts +++ b/packages/form/src/post-process.ts @@ -20,13 +20,13 @@ * @module post-process */ -import { - UserSession, - IItemTemplate, - updateItemTemplateFromDictionary -} from "@esri/solution-common"; import { isHubFormTemplate } from "./helpers/is-hub-form-template"; import { postProcessHubSurvey } from "./helpers/post-process-survey"; +import * as common from "@esri/solution-common"; +import * as formUtils from "./formUtils"; +import JSZip from "jszip"; + +// ------------------------------------------------------------------------------------------------------------------ // /** * Form post-processing actions @@ -38,15 +38,33 @@ import { postProcessHubSurvey } from "./helpers/post-process-survey"; * @param {UserSession} authentication The destination session info * @returns Promise resolving to successfulness of update */ -export function postProcess( +export async function postProcess( itemId: string, type: string, itemInfos: any[], - template: IItemTemplate, - templates: IItemTemplate[], + template: common.IItemTemplate, + templates: common.IItemTemplate[], templateDictionary: any, - authentication: UserSession + authentication: common.UserSession ): Promise { + // Fetch the form's zip file + const formDataResponse = await common.getItemDataAsFile(itemId, "Form", authentication); + if (formDataResponse) { + const zipObject: JSZip = await common.blobToZipObject(formDataResponse); + + // Detemplatize it + const updatedZipObject = await formUtils.swizzleFormObject(zipObject, templateDictionary); + + // Update the form + void common.updateItemWithZipObject(updatedZipObject, itemId, authentication); + + } else { + // If the form data is not found, AGO is slow storing the data; try again + await common.delay(5000); + return postProcess(itemId, type, itemInfos, template, templates, templateDictionary, authentication); + } + + // If this is a Hub form, post-process it as such if (isHubFormTemplate(template)) { return postProcessHubSurvey( itemId, @@ -59,7 +77,8 @@ export function postProcess( ); } - return updateItemTemplateFromDictionary( + // Otherwise, just update the item's template + return common.updateItemTemplateFromDictionary( itemId, templateDictionary, authentication diff --git a/packages/simple-types/src/helpers/convert-item-to-template.ts b/packages/simple-types/src/helpers/convert-item-to-template.ts index 5d3c95846..efd9b6674 100644 --- a/packages/simple-types/src/helpers/convert-item-to-template.ts +++ b/packages/simple-types/src/helpers/convert-item-to-template.ts @@ -156,11 +156,8 @@ export function convertItemToTemplate( async (resolve) => { let zipObject: JSZip = await common.blobToZipObject(itemDataResponse as File); - itemTemplate.dependencies = - itemTemplate.dependencies.concat(await common.getWebHookDependencies(zipObject)); - - // Templatize the form's webhooks; we'll postpone handling the AGO ids until deployment - zipObject = await formHelpers.templatizeFormWebHooks(zipObject, itemTemplate.isOrgItem); + // Templatize the form's webhooks, + zipObject = await formHelpers.templatizeFormWebHooks(zipObject, itemTemplate.item.isOrgItem); itemTemplate.item.name = _getFormDataFilename( itemTemplate.item.name, (itemDataResponse as File).name, `${itemTemplate.itemId}.zip` diff --git a/packages/simple-types/src/helpers/formHelpers.ts b/packages/simple-types/src/helpers/formHelpers.ts index 65bef13fa..db462707b 100644 --- a/packages/simple-types/src/helpers/formHelpers.ts +++ b/packages/simple-types/src/helpers/formHelpers.ts @@ -22,7 +22,7 @@ import JSZip from "jszip"; /** * Templatizes the URLs in webhooks in a form's zip object. * - * @param zipObject Form zip object to templatize in place + * @param zipObject Form zip object to templatize; it is modified in place * @param isOrgItem Indicates whether this item and the user whose credential was used to fetch this item belong * to the same ArcGIS Enterprise Portal or ArcGIS Online Organization * @returns Promise that resolves to the modified zip object From 9e796990ab9fc428c3524f76a3d6984606836a68 Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Fri, 23 Feb 2024 14:59:00 -0800 Subject: [PATCH 10/14] Updated tests --- packages/common/src/templatization.ts | 4 +- packages/common/test/generalHelpers.test.ts | 9 + packages/common/test/templatization.test.ts | 66 ++++++- packages/common/test/zip-utils.test.ts | 2 + packages/form/src/formUtils.ts | 2 +- packages/form/test/formUtils.test.ts | 87 ++++++++ packages/form/test/post-process.test.ts | 186 +++++++++--------- .../helpers/convert-item-to-template.test.ts | 7 +- .../test/helpers/formHelpers.test.ts | 10 +- 9 files changed, 263 insertions(+), 110 deletions(-) create mode 100644 packages/form/test/formUtils.test.ts diff --git a/packages/common/src/templatization.ts b/packages/common/src/templatization.ts index 162d359a7..683318366 100644 --- a/packages/common/src/templatization.ts +++ b/packages/common/src/templatization.ts @@ -109,7 +109,6 @@ export function createInitializedItemTemplate(itemInfo: any): IItemTemplate { culture: itemInfo.culture, description: itemInfo.description, extent: getDefaultExtent(itemInfo), - isOrgItem: itemInfo.isOrgItem, licenseInfo: itemInfo.licenseInfo, modified: itemInfo.modified, name: itemInfo.name, @@ -123,6 +122,9 @@ export function createInitializedItemTemplate(itemInfo: any): IItemTemplate { typeKeywords: itemInfo.typeKeywords, url: itemInfo.url }; + if (typeof itemInfo.isOrgItem !== "undefined") { + itemTemplate.isOrgItem = itemInfo.isOrgItem; + } return itemTemplate; } diff --git a/packages/common/test/generalHelpers.test.ts b/packages/common/test/generalHelpers.test.ts index b1d57f87b..84191f6db 100644 --- a/packages/common/test/generalHelpers.test.ts +++ b/packages/common/test/generalHelpers.test.ts @@ -608,6 +608,15 @@ describe("Module `generalHelpers`: common utility functions shared across packag }); }); + describe("delay", () => { + it("should delay", async () => { + const start = Date.now(); + await generalHelpers.delay(1000); + const end = Date.now(); + expect(end - start).toBeGreaterThanOrEqual(1000); + }); + }); + describe("deleteProp", () => { it("should handle missing prop", () => { const testObject: any = {}; diff --git a/packages/common/test/templatization.test.ts b/packages/common/test/templatization.test.ts index 8815c36cf..e5ac4b9c4 100644 --- a/packages/common/test/templatization.test.ts +++ b/packages/common/test/templatization.test.ts @@ -27,6 +27,61 @@ import * as utils from "./mocks/utils"; // ------------------------------------------------------------------------------------------------------------------ // describe("Module `templatization`: common functions involving the adlib library", () => { + + describe("createInitializedItemTemplate", () => { + it("creates an initialized template that doesn't have the optional `isOrgItem` property", () => { + const template: interfaces.IItemTemplate = templatization.createInitializedItemTemplate( + { id: "fred", type: "Web Map" } + ); + template.key = ""; + + expect(template).toEqual({ + itemId: "fred", + type: "Web Map", + key: "", + item: { + accessInformation: undefined, + categories: undefined, + contentStatus: undefined, + created: undefined, + culture: undefined, + description: undefined, + extent: "{{solutionItemExtent}}", + id: "fred", + licenseInfo: undefined, + modified: undefined, + name: undefined, + origUrl: undefined, + properties: undefined, + snippet: undefined, + spatialReference: undefined, + tags: undefined, + thumbnail: undefined, + title: undefined, + type: "Web Map", + typeKeywords: undefined, + url: undefined, + }, + data: {}, + resources: [], + dependencies: [], + groups: [], + properties: {}, + estimatedDeploymentCostFactor: 2 + }); + }); + + it("creates an initialized template that has the optional `isOrgItem` property", () => { + const template: interfaces.IItemTemplate = templatization.createInitializedItemTemplate( + { id: "fred", type: "Web Map", description: "desc", properties: { a: "propA", b: "propB" }, isOrgItem: true } + ); + + expect(template.item.description).toEqual("desc"); + expect(template.item.properties).toEqual({ a: "propA", b: "propB" }); + expect(template.isOrgItem).toBeTruthy(); + }); + }); + describe("createInitializedGroupTemplate", () => { it("handles missing typeKeywords", () => { const template: interfaces.IItemTemplate = templatization.createInitializedGroupTemplate({ id: "fred" }); @@ -166,7 +221,7 @@ describe("Module `templatization`: common functions involving the adlib library" it("should handle an empty list", () => { const solnTemplates: interfaces.IItemTemplate[] = []; const id: string = ""; - const expected: interfaces.IItemTemplate = null; + const expected: any = null; // interfaces.IItemTemplate const actual = templatization.findTemplateInList(solnTemplates, id); expect(actual).toEqual(expected); @@ -180,7 +235,7 @@ describe("Module `templatization`: common functions involving the adlib library" "jkl" ]); const id: string = "xyz"; - const expected: interfaces.IItemTemplate = null; + const expected: any = null; // interfaces.IItemTemplate const actual = templatization.findTemplateInList(solnTemplates, id); expect(actual).toEqual(expected); @@ -429,9 +484,9 @@ describe("Module `templatization`: common functions involving the adlib library" describe("templatizeTerm", () => { it("should handle undefined context", () => { - const context: string = undefined; + const context: any = undefined; // string const term: string = "aTerm"; - const suffix: string = undefined; + const suffix: any = undefined; // string const expected: string = context; const actual = templatization.templatizeTerm(context, term, suffix); @@ -441,7 +496,7 @@ describe("Module `templatization`: common functions involving the adlib library" it("should handle default suffix", () => { const context: string = "a sentence with aTerm in it"; const term: string = "aTerm"; - const suffix: string = undefined; + const suffix: any = undefined; // string const expected: string = "a sentence with {{aTerm}} in it"; const actual = templatization.templatizeTerm(context, term, suffix); @@ -687,6 +742,7 @@ describe("Module `templatization`: common functions involving the adlib library" expect(templatizedObj).toEqual(expectedTemplatizedObj); }); }); + }); // ------------------------------------------------------------------------------------------------------------------ // diff --git a/packages/common/test/zip-utils.test.ts b/packages/common/test/zip-utils.test.ts index f623283b2..efcb75eda 100644 --- a/packages/common/test/zip-utils.test.ts +++ b/packages/common/test/zip-utils.test.ts @@ -165,6 +165,8 @@ export function generateFormZipObject( "esriinfo/form.webform", "esriinfo/form.xml", "esriinfo/forminfo.json" + + Note that the folder and forminfo.json files have constant names; the others can vary */ const zip = new JSZip(); includeWebhooks diff --git a/packages/form/src/formUtils.ts b/packages/form/src/formUtils.ts index 47a6bdf71..c4da0677e 100644 --- a/packages/form/src/formUtils.ts +++ b/packages/form/src/formUtils.ts @@ -46,7 +46,7 @@ export async function swizzleFormObject( // Replace the matching AGO id in the file content iff it is present in the template dictionary agoIdMatches.forEach((match: string) => { const replacement = templateDictionary[match]; - if (replacement && typeof replacement?.itemId === "string") { + if (typeof replacement?.itemId === "string") { if (match === replacement.itemId) { return; } updatedZipContent = updatedZipContent.replace(new RegExp(match, "g"), `${replacement.itemId}`); } diff --git a/packages/form/test/formUtils.test.ts b/packages/form/test/formUtils.test.ts new file mode 100644 index 000000000..dc9451b33 --- /dev/null +++ b/packages/form/test/formUtils.test.ts @@ -0,0 +1,87 @@ +/** @license + * Copyright 2024 Esri + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as common from "@esri/solution-common"; +import * as formUtils from "../src/formUtils"; +import * as utils from "../../common/test/mocks/utils"; +import * as zipUtilsTest from "../../common/test/zip-utils.test"; + +let MOCK_USER_SESSION: common.UserSession; + +beforeEach(() => { + MOCK_USER_SESSION = utils.createRuntimeMockUserSession(); +}); + +// ------------------------------------------------------------------------------------------------------------------ // + +describe("formUtils", () => { + + describe("swizzleFormObject", () => { + + it("swizzles a form object", async () => { + const zipObject = await zipUtilsTest.generateFormZipObject("0c01725576b640e4bd25a16721850000"); + const templateDictionary = { + "0c01725576b640e4bd25a16721850000": { + itemId: "0c01725576b640e4bd25a16721850001" + } + }; + + const resultingZipObject = await formUtils.swizzleFormObject(zipObject, templateDictionary); + const resultingZipContents = await common.getZipObjectContents(resultingZipObject); + + const expectedZipObject = await zipUtilsTest.generateFormZipObject("0c01725576b640e4bd25a16721850001"); + const expectedZipContents = await common.getZipObjectContents(expectedZipObject); + + expect(resultingZipContents).toEqual(expectedZipContents); + }); + + it("skips no-ops", async () => { + const zipObject = await zipUtilsTest.generateFormZipObject("0c01725576b640e4bd25a16721850000"); + const templateDictionary = { + "0c01725576b640e4bd25a16721850000": { + itemId: "0c01725576b640e4bd25a16721850000" + } + }; + + const resultingZipObject = await formUtils.swizzleFormObject(zipObject, templateDictionary); + const resultingZipContents = await common.getZipObjectContents(resultingZipObject); + + const expectedZipObject = await zipUtilsTest.generateFormZipObject("0c01725576b640e4bd25a16721850000"); + const expectedZipContents = await common.getZipObjectContents(expectedZipObject); + + expect(resultingZipContents).toEqual(expectedZipContents); + }); + + it("doesn't swizzle the wrong items", async () => { + const zipObject = await zipUtilsTest.generateFormZipObject("0c01725576b640e4bd25a16721850002"); + const templateDictionary = { + "0c01725576b640e4bd25a16721850000": { + itemId: "0c01725576b640e4bd25a16721850001" + } + }; + + const resultingZipObject = await formUtils.swizzleFormObject(zipObject, templateDictionary); + const resultingZipContents = await common.getZipObjectContents(resultingZipObject); + + const expectedZipObject = await zipUtilsTest.generateFormZipObject("0c01725576b640e4bd25a16721850002"); + const expectedZipContents = await common.getZipObjectContents(expectedZipObject); + + expect(resultingZipContents).toEqual(expectedZipContents); + }); + + }); + +}); diff --git a/packages/form/test/post-process.test.ts b/packages/form/test/post-process.test.ts index 0f8f1e280..605591fbf 100644 --- a/packages/form/test/post-process.test.ts +++ b/packages/form/test/post-process.test.ts @@ -14,14 +14,13 @@ * limitations under the License. */ -import { simpleTypes } from "@esri/solution-simple-types"; import * as common from "@esri/solution-common"; import * as postProcessor from "../src/post-process"; import * as utils from "../../common/test/mocks/utils"; -import * as fetchMock from "fetch-mock"; import * as templates from "../../common/test/mocks/templates"; import * as hubFormTemplateHelpers from "../src/helpers/is-hub-form-template"; import * as hubFormProcessingHelpers from "../src/helpers/post-process-survey"; +import * as zipUtilsTest from "../../common/test/zip-utils.test"; describe("postProcess", () => { let MOCK_USER_SESSION: common.UserSession; @@ -36,102 +35,101 @@ describe("postProcess", () => { templateDictionary = { key: "value" }; }); - afterEach(() => { - fetchMock.restore(); + it("should delegate to custom template post processing for Hub Survey templates", async () => { + const formId = "frm1234567890"; + const expectedResults = { success: true }; + + const getItemDataSpy = spyOn(common, "getItemDataAsFile").and.resolveTo(await zipUtilsTest.getSampleFormZipFile(formId, "form")); + const updateItemDataSpy = spyOn(common, "updateItemWithZipObject").and.resolveTo({ success: true }); + const isHubFormTemplateSpy = spyOn(hubFormTemplateHelpers, "isHubFormTemplate").and.returnValue(true); + const postProcessHubSurveySpy = spyOn(hubFormProcessingHelpers, "postProcessHubSurvey").and.resolveTo(expectedResults); + + const results = await postProcessor.postProcess( + template.id, + template.type, + itemInfos, + template, + [template], + templateDictionary, + MOCK_USER_SESSION + ); + + expect(getItemDataSpy.calls.count()).toBe(1); + expect(updateItemDataSpy.calls.count()).toBe(1); + expect(isHubFormTemplateSpy.calls.count()).toBe(1); + expect(isHubFormTemplateSpy.calls.first().args).toEqual([template]); + expect(postProcessHubSurveySpy.calls.count()).toBe(1); + expect(postProcessHubSurveySpy.calls.first().args).toEqual([ + template.id, + template.type, + itemInfos, + template, + [template], + templateDictionary, + MOCK_USER_SESSION + ]); + expect(results).toEqual(expectedResults); }); - it("should delegate to custom template post processing for Hub Survey templates", done => { - const expectedResults = { success: true }; - const postProcessHubSurveySpy = spyOn( - hubFormProcessingHelpers, - "postProcessHubSurvey" - ).and.resolveTo(expectedResults); - const isHubFormTemplateSpy = spyOn( - hubFormTemplateHelpers, - "isHubFormTemplate" - ).and.returnValue(true); - const progressCallback = jasmine.createSpy(); - postProcessor - .postProcess( - template.id, - template.type, - itemInfos, - template, - [template], - templateDictionary, - MOCK_USER_SESSION - ) - .then( - results => { - expect(isHubFormTemplateSpy.calls.count()).toBe(1); - expect(isHubFormTemplateSpy.calls.first().args).toEqual([template]); - expect(postProcessHubSurveySpy.calls.count()).toBe(1); - expect(postProcessHubSurveySpy.calls.first().args).toEqual([ - template.id, - template.type, - itemInfos, - template, - [template], - templateDictionary, - MOCK_USER_SESSION - ]); - expect(results).toEqual(expectedResults); - done(); - }, - e => { - done.fail(e); - } - ); + it("should delegate to common post processing for non-Hub Survey templates", async () => { + const formId = "frm1234567890"; + const expectedResults = utils.getSuccessResponse({ id: "itm1234567890" }); + + const getItemDataSpy = spyOn(common, "getItemDataAsFile").and.resolveTo(await zipUtilsTest.getSampleFormZipFile(formId, "form")); + const updateItemDataSpy = spyOn(common, "updateItemWithZipObject").and.resolveTo({ success: true }); + const isHubFormTemplateSpy = spyOn(hubFormTemplateHelpers, "isHubFormTemplate").and.returnValue(false); + const postProcessSpy = spyOn(common, "updateItemTemplateFromDictionary").and.resolveTo({ success: true, id: "itm1234567890" }); + + const results = await postProcessor.postProcess( + template.id, + template.type, + itemInfos, + template, + [template], + templateDictionary, + MOCK_USER_SESSION + ); + + expect(getItemDataSpy.calls.count()).toBe(1); + expect(updateItemDataSpy.calls.count()).toBe(1); + expect(isHubFormTemplateSpy.calls.count()).toBe(1); + expect(postProcessSpy.calls.count()).toBe(1); + expect(results).toEqual(expectedResults); }); - it("should delegate to common post processing for non-Hub Survey templates", () => { + it("should try again if the first attempt to update the item fails", async () => { + const formId = "frm1234567890"; const expectedResults = utils.getSuccessResponse({ id: "itm1234567890" }); - const isHubFormTemplateSpy = spyOn( - hubFormTemplateHelpers, - "isHubFormTemplate" - ).and.returnValue(false); - - template.item.id = template.itemId; - const updateUrl = - utils.PORTAL_SUBSET.restUrl + - "/content/users/casey/items/frm1234567890/update"; - fetchMock - .get( - utils.PORTAL_SUBSET.restUrl + - "/content/items/frm1234567890?f=json&token=fake-token", - template.item - ) - .post( - utils.PORTAL_SUBSET.restUrl + "/content/items/frm1234567890/data", - {} - ) - .post(updateUrl, utils.getSuccessResponse({ id: template.item.id })); - - spyOn(console, "log").and.callFake(() => {}); - return postProcessor - .postProcess( - template.itemId, - template.type, - itemInfos, - template, - [template], - templateDictionary, - MOCK_USER_SESSION - ) - .then(result => { - expect(result).toEqual( - utils.getSuccessResponse({ id: template.item.id }) - ); - - const callBody = fetchMock.calls(updateUrl)[0][1].body as string; - expect(callBody).toEqual( - "f=json&text=%7B%7D&id=frm1234567890&name=Name%20of%20an%20AGOL%20item&title=An%20AGOL%20item&" + - "type=Form&typeKeywords=JavaScript&description=Description%20of%20an%20AGOL%20item&tags=test&" + - "snippet=Snippet%20of%20an%20AGOL%20item&thumbnail=https%3A%2F%2Fmyorg.maps.arcgis.com%2F" + - "sharing%2Frest%2Fcontent%2Fitems%2Ffrm1234567890%2Finfo%2Fthumbnail%2Fago_downloaded.png&" + - "extent=%7B%7BsolutionItemExtent%7D%7D&categories=&accessInformation=Esri%2C%20Inc.&" + - "culture=en-us&url=&created=1520968147000&modified=1522178539000&token=fake-token" - ); - }); + let igetItemDataAsFile = 0; + + const getItemDataSpy = spyOn(common, "getItemDataAsFile").and.callFake(async (): Promise => { + if (igetItemDataAsFile === 0) { + igetItemDataAsFile++; + return Promise.resolve(null); + } else { + return await zipUtilsTest.getSampleFormZipFile(formId, "form"); + } + }); + const updateItemDataSpy = spyOn(common, "updateItemWithZipObject").and.resolveTo({ success: true }); + const isHubFormTemplateSpy = spyOn(hubFormTemplateHelpers, "isHubFormTemplate").and.returnValue(false); + const postProcessSpy = spyOn(common, "updateItemTemplateFromDictionary").and.resolveTo({ success: true, id: "itm1234567890" }); + + const results = await postProcessor.postProcess( + template.id, + template.type, + itemInfos, + template, + [template], + templateDictionary, + MOCK_USER_SESSION + ); + + expect(getItemDataSpy.calls.count()).toBe(2); + expect(updateItemDataSpy.calls.count()).toBe(1); + expect(isHubFormTemplateSpy.calls.count()).toBe(1); + expect(postProcessSpy.calls.count()).toBe(1); + expect(results).toEqual(expectedResults); + + }); }); diff --git a/packages/simple-types/test/helpers/convert-item-to-template.test.ts b/packages/simple-types/test/helpers/convert-item-to-template.test.ts index b99e3f797..9438bf144 100644 --- a/packages/simple-types/test/helpers/convert-item-to-template.test.ts +++ b/packages/simple-types/test/helpers/convert-item-to-template.test.ts @@ -485,7 +485,8 @@ describe("simpleTypeConvertItemToTemplate", () => { }; }; - it("should handle form item type with default filename for falsy item name", done => { + /* + fit("should handle form item type with default filename for falsy item name", done => { itemTemplate.item.name = null; spyOn(common, "getItemRelatedItemsInSameDirection").and.resolveTo([ @@ -504,7 +505,7 @@ describe("simpleTypeConvertItemToTemplate", () => { .then(verifyFormTemplate(done), done.fail); }); - it('should handle form item type with default filename for "undefined" string literal item name', done => { + fit('should handle form item type with default filename for "undefined" string literal item name', done => { itemTemplate.item.name = "undefined"; spyOn(common, "getItemRelatedItemsInSameDirection").and.resolveTo([ @@ -522,6 +523,7 @@ describe("simpleTypeConvertItemToTemplate", () => { ) .then(verifyFormTemplate(done), done.fail); }); + */ //??? it("should use the template's item name for the form data name", () => { const itemName = "itemName"; @@ -606,7 +608,6 @@ describe("simpleTypeConvertItemToTemplate", () => { describe("oic", () => { it("should handle OIC (Oriented Imagery Catalog)", done => { - const solutionItemId = "sln1234567890"; const item: any = mockItems.getAGOLItem("Oriented Imagery Catalog", undefined); const data: any = mockItems.getAGOLItemData("Oriented Imagery Catalog"); const service: any = mockItems.getAGOLService(); diff --git a/packages/simple-types/test/helpers/formHelpers.test.ts b/packages/simple-types/test/helpers/formHelpers.test.ts index 384c97bb2..a626882c9 100644 --- a/packages/simple-types/test/helpers/formHelpers.test.ts +++ b/packages/simple-types/test/helpers/formHelpers.test.ts @@ -27,35 +27,33 @@ import * as zipUtilsTest from "@esri/solution-common/test/zip-utils.test"; jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; // default is 5000 ms -describe("Module `zip-utils`", () => { +describe("Module `formHelpers`", () => { describe("templatizeFormData", () => { const itemId = "2f56b3b59cdc4ac8b8f5de0399887e1e"; it("templatizes form data containing webhooks", async () => { - const filename = "test.zip"; const zipObject = await zipUtilsTest.generateFormZipObject(itemId); const modifiedZipObject = await formHelpers.templatizeFormWebHooks(zipObject, true); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); - const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`); + const expectedZipObject = zipUtilsTest.generateFormZipObject(itemId); const expectedZipContents = await common.getZipObjectContents(expectedZipObject); expectedZipContents[1].content = expectedZipContents[1].content .replace("https://fred.maps.arcgis.com", "{{portalBaseUrl}}") - .replace("org1234567890", "{{orgId}}"); + .replace("org1234567890", "{{user.orgId}}"); expect(modifiedZipContents).toEqual(expectedZipContents); }); it("templatizes form data that doesn't contain webhooks", async () => { - const filename = "test.zip"; const zipObject = await zipUtilsTest.generateFormZipObject(itemId, false); const modifiedZipObject = await formHelpers.templatizeFormWebHooks(zipObject, true); const modifiedZipContents = await common.getZipObjectContents(modifiedZipObject); - const expectedZipObject = zipUtilsTest.generateFormZipObject(`{{${itemId}.itemId}}`, false); + const expectedZipObject = zipUtilsTest.generateFormZipObject(itemId, false); const expectedZipContents = await common.getZipObjectContents(expectedZipObject); expect(modifiedZipContents).toEqual(expectedZipContents); From 1d9c3f918afe0816ce82b7d5ccd975ff0309e980 Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Fri, 23 Feb 2024 17:06:43 -0800 Subject: [PATCH 11/14] Updated tests --- .../deployer/test/deploySolutionItems.test.ts | 72 +++++++++++++++++++ .../helpers/convert-item-to-template.test.ts | 58 +++++++-------- 2 files changed, 101 insertions(+), 29 deletions(-) diff --git a/packages/deployer/test/deploySolutionItems.test.ts b/packages/deployer/test/deploySolutionItems.test.ts index f43d1bc7d..80c8864f4 100644 --- a/packages/deployer/test/deploySolutionItems.test.ts +++ b/packages/deployer/test/deploySolutionItems.test.ts @@ -82,6 +82,78 @@ describe("Module `deploySolutionItems`", () => { ); }); + it("adds Forms to the itemsToBePatched queue", async () => { //??? TEST FAILS WHEN RUN WITH OTHER TESTS + const id: string = "aa4a6047326243b290f625e80ebe6531"; + const newItemID: string = "ba4a6047326243b290f625e80ebe6531"; + const type: string = "Form"; + + const url: string = + "https://apl.maps.arcgis.com/apps/Viewer/index.html?appid=map1234567890"; + const itemTemplate: common.IItemTemplate = templates.getItemTemplate( + type, + undefined, + url + ); + itemTemplate.item.thumbnail = null; + itemTemplate.itemId = id; + + const updatedItem = mockItems.getAGOLItem("Form"); + + const templateDictionary: any = { + user: mockItems.getAGOLUser("casey"), + portalBaseUrl: utils.PORTAL_SUBSET.portalUrl + }; + + fetchMock + .get( + utils.PORTAL_SUBSET.restUrl + + "/search?f=json&q=typekeywords%3Asource-" + + id + + "%20type%3AWeb%20Mapping%20Application%20owner%3Acasey&token=fake-token", + { + results: [] + } + ) + .get( + utils.PORTAL_SUBSET.restUrl + + "/search?f=json&q=tags%3Asource-" + + id + + "%20type%3AWeb%20Mapping%20Application%20owner%3Acasey&token=fake-token", + { + results: [] + } + ) + .post( + utils.PORTAL_SUBSET.restUrl + "/content/users/casey/addItem", + utils.getSuccessResponse({ id: newItemID }) + ) + .post( + utils.PORTAL_SUBSET.restUrl + + "/content/users/casey/items/" + + newItemID + + "/update", + utils.getSuccessResponse({ id: newItemID }) + ) + .get( + utils.PORTAL_SUBSET.restUrl + + "/content/items/" + + newItemID + + "?f=json&token=fake-token", + updatedItem + ); + + const result = await deploySolution.deploySolutionItems( + utils.PORTAL_URL, + "sln1234567890", + [itemTemplate], + MOCK_USER_SESSION, + templateDictionary, + "", + MOCK_USER_SESSION, + {} + ); + }); + it("reuse items but no items exist", done => { const id: string = "aa4a6047326243b290f625e80ebe6531"; const newItemID: string = "ba4a6047326243b290f625e80ebe6531"; diff --git a/packages/simple-types/test/helpers/convert-item-to-template.test.ts b/packages/simple-types/test/helpers/convert-item-to-template.test.ts index 9438bf144..9a085f00c 100644 --- a/packages/simple-types/test/helpers/convert-item-to-template.test.ts +++ b/packages/simple-types/test/helpers/convert-item-to-template.test.ts @@ -23,6 +23,7 @@ import * as staticRelatedItemsMocks from "../../../common/test/mocks/staticRelat import * as templates from "../../../common/test/mocks/templates"; import * as utils from "../../../common/test/mocks/utils"; import * as formHelpers from "../../src/helpers/formHelpers"; +import * as zipUtilsTest from "../../../common/test/zip-utils.test"; import * as JSZip from "jszip"; jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000; // default is 5000 ms @@ -476,54 +477,53 @@ describe("simpleTypeConvertItemToTemplate", () => { ); }); - const verifyFormTemplate = (done: DoneFn) => { - return (newItemTemplate: common.IItemTemplate) => { - delete (newItemTemplate as any).key; // key is randomly generated, and so is not testable - delete newItemTemplate.dataFile.file; // don't want to test File object - expect(newItemTemplate).toEqual(expectedTemplate); - done(); - }; - }; - - /* - fit("should handle form item type with default filename for falsy item name", done => { + it("should handle form item type with default filename for falsy item name", async () => { + const formId = "frm1234567890"; itemTemplate.item.name = null; spyOn(common, "getItemRelatedItemsInSameDirection").and.resolveTo([ { relationshipType: "Survey2Data", relatedItemIds: ["srv1234567890", "abc1234567890"] }, { relationshipType: "Survey2Service", relatedItemIds: ["srv1234567890"] } ] as common.IRelatedItems[]); + spyOn(common, "getItemDataAsFile") + .and.resolveTo(await zipUtilsTest.getSampleFormZipFile(formId, "frm1234567890.zip")); spyOn(formHelpers, "templatizeFormWebHooks").and.callFake((zipObject: any) => Promise.resolve(zipObject)); - simpleTypes - .convertItemToTemplate( - itemTemplate.item, - MOCK_USER_SESSION, - MOCK_USER_SESSION, - {} - ) - .then(verifyFormTemplate(done), done.fail); + const template = await simpleTypes.convertItemToTemplate( + itemTemplate.item, + MOCK_USER_SESSION, + MOCK_USER_SESSION, + {} + ); + + delete (template as any).key; // key is randomly generated, and so is not testable + delete template.dataFile.file; // don't want to test File object + expect(template).toEqual(expectedTemplate); }); - fit('should handle form item type with default filename for "undefined" string literal item name', done => { + it('should handle form item type with default filename for "undefined" string literal item name', async () => { + const formId = "frm1234567890"; itemTemplate.item.name = "undefined"; spyOn(common, "getItemRelatedItemsInSameDirection").and.resolveTo([ { relationshipType: "Survey2Data", relatedItemIds: ["srv1234567890", "abc1234567890"] }, { relationshipType: "Survey2Service", relatedItemIds: ["srv1234567890"] } ] as common.IRelatedItems[]); + spyOn(common, "getItemDataAsFile") + .and.resolveTo(await zipUtilsTest.getSampleFormZipFile(formId, "frm1234567890.zip")); spyOn(formHelpers, "templatizeFormWebHooks").and.callFake((zipObject: any) => Promise.resolve(zipObject)); - simpleTypes - .convertItemToTemplate( - itemTemplate.item, - MOCK_USER_SESSION, - MOCK_USER_SESSION, - {} - ) - .then(verifyFormTemplate(done), done.fail); + const template = await simpleTypes.convertItemToTemplate( + itemTemplate.item, + MOCK_USER_SESSION, + MOCK_USER_SESSION, + {} + ); + + delete (template as any).key; // key is randomly generated, and so is not testable + delete template.dataFile.file; // don't want to test File object + expect(template).toEqual(expectedTemplate); }); - */ //??? it("should use the template's item name for the form data name", () => { const itemName = "itemName"; From 4bd271a9347a9a6d6790f9d7e077d51cc5958e89 Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Mon, 26 Feb 2024 07:32:03 -0800 Subject: [PATCH 12/14] Fixed function doc --- packages/common/src/formHelpers.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/common/src/formHelpers.ts b/packages/common/src/formHelpers.ts index 732c9b705..6bdf0aa8b 100644 --- a/packages/common/src/formHelpers.ts +++ b/packages/common/src/formHelpers.ts @@ -75,7 +75,6 @@ export async function setWebHooksInZipObject( * @param zipObject Zip file object with which to update the item * @param destinationItemId Destination item id * @param destinationAuthentication Destination authentication - * @param filesOfInterest Array of file names to extract from the zipObject file. If empty, all files are extracted. * @returns Promise that resolves to the update item response */ export async function updateItemWithZipObject( From d5e5e40c825b694de62c38808b3bc994a1d3d5df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 15:41:55 +0000 Subject: [PATCH 13/14] Bump @esri/hub-common from 14.90.0 to 14.94.0 Bumps [@esri/hub-common](https://github.com/Esri/hub.js) from 14.90.0 to 14.94.0. - [Release notes](https://github.com/Esri/hub.js/releases) - [Changelog](https://github.com/Esri/hub.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/Esri/hub.js/compare/@esri/hub-common@14.90.0...@esri/hub-common@14.94.0) --- updated-dependencies: - dependency-name: "@esri/hub-common" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- demos/compareJSON/package-lock.json | 6 +++--- demos/compareSolutions/package-lock.json | 6 +++--- demos/copyItemInfo/package-lock.json | 6 +++--- demos/copySolutions/package-lock.json | 6 +++--- demos/createSolution/package-lock.json | 6 +++--- demos/deleteSolution/package-lock.json | 6 +++--- demos/deploySolution/package-lock.json | 6 +++--- demos/getItemInfo/package-lock.json | 6 +++--- demos/implementedTypes/package-lock.json | 6 +++--- demos/verifySolution/package-lock.json | 6 +++--- package-lock.json | 6 +++--- 11 files changed, 33 insertions(+), 33 deletions(-) diff --git a/demos/compareJSON/package-lock.json b/demos/compareJSON/package-lock.json index 88bcf5e29..69116489e 100644 --- a/demos/compareJSON/package-lock.json +++ b/demos/compareJSON/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/compareSolutions/package-lock.json b/demos/compareSolutions/package-lock.json index a6c52479c..d666689d4 100644 --- a/demos/compareSolutions/package-lock.json +++ b/demos/compareSolutions/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/copyItemInfo/package-lock.json b/demos/copyItemInfo/package-lock.json index 9d482cb9f..7ca4970c4 100644 --- a/demos/copyItemInfo/package-lock.json +++ b/demos/copyItemInfo/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/copySolutions/package-lock.json b/demos/copySolutions/package-lock.json index 0e5b90bed..fdbe1a871 100644 --- a/demos/copySolutions/package-lock.json +++ b/demos/copySolutions/package-lock.json @@ -154,9 +154,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/createSolution/package-lock.json b/demos/createSolution/package-lock.json index f148f778f..7c7be1d9c 100644 --- a/demos/createSolution/package-lock.json +++ b/demos/createSolution/package-lock.json @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/deleteSolution/package-lock.json b/demos/deleteSolution/package-lock.json index 29fdad85e..2c71e421b 100644 --- a/demos/deleteSolution/package-lock.json +++ b/demos/deleteSolution/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/deploySolution/package-lock.json b/demos/deploySolution/package-lock.json index a0365cc76..a6d72e85d 100644 --- a/demos/deploySolution/package-lock.json +++ b/demos/deploySolution/package-lock.json @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/getItemInfo/package-lock.json b/demos/getItemInfo/package-lock.json index 7064cca68..a6440ebf8 100644 --- a/demos/getItemInfo/package-lock.json +++ b/demos/getItemInfo/package-lock.json @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/implementedTypes/package-lock.json b/demos/implementedTypes/package-lock.json index 426abc1da..be0d4ad16 100644 --- a/demos/implementedTypes/package-lock.json +++ b/demos/implementedTypes/package-lock.json @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/verifySolution/package-lock.json b/demos/verifySolution/package-lock.json index 7a35cd423..cafbf57a9 100644 --- a/demos/verifySolution/package-lock.json +++ b/demos/verifySolution/package-lock.json @@ -153,9 +153,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/package-lock.json b/package-lock.json index 195e4c1f8..61ce4c975 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2079,9 +2079,9 @@ "integrity": "sha512-KEgORx0HKHOrV4oMYOwmZ76N89WTNkbKb1z3UYJrOEaKVGRU3jisgQcuTXFqjJJe4ZApGQhxCzNgcaU067qdpA==" }, "node_modules/@esri/hub-common": { - "version": "14.93.1", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.93.1.tgz", - "integrity": "sha512-8WzZERgw0wqShnsiY2/mjt2GtdHmGtVHN3W2KFu9lK+9e5bbqm0LR746Wo1PIIYnRQGuTD+xWy6wSbaxHGlc+A==", + "version": "14.94.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", + "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", From e937d0436d2db170e655f0cbb7ff180df547da2a Mon Sep 17 00:00:00 2001 From: Mike Tschudi Date: Mon, 4 Mar 2024 13:56:38 -0800 Subject: [PATCH 14/14] Dependabot updates --- demos/compareJSON/package-lock.json | 8 +- demos/compareJSON/package.json | 2 +- demos/compareSolutions/package-lock.json | 8 +- demos/compareSolutions/package.json | 2 +- demos/copyItemInfo/package-lock.json | 8 +- demos/copyItemInfo/package.json | 2 +- demos/copySolutions/package-lock.json | 8 +- demos/copySolutions/package.json | 2 +- demos/createSolution/package-lock.json | 8 +- demos/createSolution/package.json | 2 +- demos/deleteSolution/package-lock.json | 8 +- demos/deleteSolution/package.json | 2 +- demos/deploySolution/package-lock.json | 8 +- demos/deploySolution/package.json | 2 +- demos/getItemInfo/package-lock.json | 8 +- demos/getItemInfo/package.json | 2 +- demos/implementedTypes/package-lock.json | 8 +- demos/implementedTypes/package.json | 2 +- demos/verifySolution/package-lock.json | 8 +- demos/verifySolution/package.json | 2 +- package-lock.json | 362 ++++++++++++++++++----- package.json | 8 +- packages/common/package.json | 2 +- packages/creator/package.json | 2 +- packages/deployer/package.json | 2 +- packages/feature-layer/package.json | 2 +- packages/file/package.json | 2 +- packages/form/package.json | 2 +- packages/group/package.json | 2 +- packages/hub-types/package.json | 2 +- packages/simple-types/package.json | 2 +- packages/storymap/package.json | 2 +- packages/velocity/package.json | 2 +- packages/viewer/package.json | 2 +- packages/web-experience/package.json | 2 +- 35 files changed, 362 insertions(+), 134 deletions(-) diff --git a/demos/compareJSON/package-lock.json b/demos/compareJSON/package-lock.json index 69116489e..258766e0e 100644 --- a/demos/compareJSON/package-lock.json +++ b/demos/compareJSON/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/compareJSON/package.json b/demos/compareJSON/package.json index 013484156..2a462579c 100644 --- a/demos/compareJSON/package.json +++ b/demos/compareJSON/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/compareSolutions/package-lock.json b/demos/compareSolutions/package-lock.json index d666689d4..2dc82bb6f 100644 --- a/demos/compareSolutions/package-lock.json +++ b/demos/compareSolutions/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/compareSolutions/package.json b/demos/compareSolutions/package.json index c06429afa..6ff29d211 100644 --- a/demos/compareSolutions/package.json +++ b/demos/compareSolutions/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/copyItemInfo/package-lock.json b/demos/copyItemInfo/package-lock.json index 7ca4970c4..a7dbd3d0e 100644 --- a/demos/copyItemInfo/package-lock.json +++ b/demos/copyItemInfo/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/copyItemInfo/package.json b/demos/copyItemInfo/package.json index ebeffdde3..e1310a29e 100644 --- a/demos/copyItemInfo/package.json +++ b/demos/copyItemInfo/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/copySolutions/package-lock.json b/demos/copySolutions/package-lock.json index fdbe1a871..11c7fe2c8 100644 --- a/demos/copySolutions/package-lock.json +++ b/demos/copySolutions/package-lock.json @@ -18,7 +18,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -154,9 +154,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/copySolutions/package.json b/demos/copySolutions/package.json index 07c4316fb..68e560899 100644 --- a/demos/copySolutions/package.json +++ b/demos/copySolutions/package.json @@ -16,7 +16,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/createSolution/package-lock.json b/demos/createSolution/package-lock.json index 7c7be1d9c..7e6de0f1b 100644 --- a/demos/createSolution/package-lock.json +++ b/demos/createSolution/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/createSolution/package.json b/demos/createSolution/package.json index e8d10d2b4..fd9147473 100644 --- a/demos/createSolution/package.json +++ b/demos/createSolution/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/deleteSolution/package-lock.json b/demos/deleteSolution/package-lock.json index 2c71e421b..244191431 100644 --- a/demos/deleteSolution/package-lock.json +++ b/demos/deleteSolution/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/deleteSolution/package.json b/demos/deleteSolution/package.json index 51a3bc19c..03a621b54 100644 --- a/demos/deleteSolution/package.json +++ b/demos/deleteSolution/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/deploySolution/package-lock.json b/demos/deploySolution/package-lock.json index a6d72e85d..d9adcd63e 100644 --- a/demos/deploySolution/package-lock.json +++ b/demos/deploySolution/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/deploySolution/package.json b/demos/deploySolution/package.json index cd69c3ffb..dd22c14fa 100644 --- a/demos/deploySolution/package.json +++ b/demos/deploySolution/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/getItemInfo/package-lock.json b/demos/getItemInfo/package-lock.json index a6440ebf8..2f369949c 100644 --- a/demos/getItemInfo/package-lock.json +++ b/demos/getItemInfo/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -152,9 +152,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/getItemInfo/package.json b/demos/getItemInfo/package.json index bc5203a9e..d8f0e5281 100644 --- a/demos/getItemInfo/package.json +++ b/demos/getItemInfo/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/implementedTypes/package-lock.json b/demos/implementedTypes/package-lock.json index be0d4ad16..11cb860ac 100644 --- a/demos/implementedTypes/package-lock.json +++ b/demos/implementedTypes/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -165,9 +165,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/implementedTypes/package.json b/demos/implementedTypes/package.json index a70cd70aa..1e29f3622 100644 --- a/demos/implementedTypes/package.json +++ b/demos/implementedTypes/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/demos/verifySolution/package-lock.json b/demos/verifySolution/package-lock.json index cafbf57a9..1a86981f3 100644 --- a/demos/verifySolution/package-lock.json +++ b/demos/verifySolution/package-lock.json @@ -17,7 +17,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -153,9 +153,9 @@ "dev": true }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", diff --git a/demos/verifySolution/package.json b/demos/verifySolution/package.json index 82a305dd3..07c65dfc1 100644 --- a/demos/verifySolution/package.json +++ b/demos/verifySolution/package.json @@ -15,7 +15,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/package-lock.json b/package-lock.json index 61ce4c975..f475fc78d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,16 +26,16 @@ ], "devDependencies": { "@babel/core": "^7.23.7", - "@babel/preset-env": "^7.23.8", + "@babel/preset-env": "^7.24.0", "@babel/preset-typescript": "^7.23.3", "@babel/types": "^7.23.6", "@chiragrupani/karma-chromium-edge-launcher": "^2.3.1", "@types/node": "^20.11.16", - "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/eslint-plugin": "^7.1.1", "@typescript-eslint/parser": "^7.0.1", "babel-jest": "^29.7.0", "browserify-sign": "^4.2.2", - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsdoc": "^48.0.6", @@ -48,7 +48,7 @@ "karma": "^6.4.2", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", - "karma-firefox-launcher": "^2.1.2", + "karma-firefox-launcher": "^2.1.3", "karma-jasmine": "^5.1.0", "karma-jasmine-diff-reporter": "^3.0.0", "karma-safari-launcher": "^1.0.0", @@ -340,9 +340,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1307,14 +1307,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.23.3" }, @@ -1627,14 +1627,14 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz", + "integrity": "sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0", "@babel/helper-validator-option": "^7.23.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", @@ -1687,7 +1687,7 @@ "@babel/plugin-transform-new-target": "^7.23.3", "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.24.0", "@babel/plugin-transform-object-super": "^7.23.3", "@babel/plugin-transform-optional-catch-binding": "^7.23.4", "@babel/plugin-transform-optional-chaining": "^7.23.4", @@ -1992,9 +1992,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2079,9 +2079,9 @@ "integrity": "sha512-KEgORx0HKHOrV4oMYOwmZ76N89WTNkbKb1z3UYJrOEaKVGRU3jisgQcuTXFqjJJe4ZApGQhxCzNgcaU067qdpA==" }, "node_modules/@esri/hub-common": { - "version": "14.94.0", - "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.94.0.tgz", - "integrity": "sha512-imrWotfr1AcfxvO1Ku1s3gVZOMowqYA2a9sHX6wnKlmoN0TghXdnMfM6EzrQ7KdwGz4N4SDyoN+yfnjZZOpqkA==", + "version": "14.97.0", + "resolved": "https://registry.npmjs.org/@esri/hub-common/-/hub-common-14.97.0.tgz", + "integrity": "sha512-0MFyYA8hwH4Ghn/Lutae1jT+CXqyaVXHgVCa1snn7usrrmHR4o55hD8UGUZ7QMxsDygFmN72MIFYaFWDTRO5uQ==", "dev": true, "dependencies": { "@terraformer/arcgis": "^2.1.2", @@ -4541,9 +4541,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", - "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/yargs": { @@ -4562,16 +4562,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.2.tgz", - "integrity": "sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.1.1.tgz", + "integrity": "sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.0.2", - "@typescript-eslint/type-utils": "7.0.2", - "@typescript-eslint/utils": "7.0.2", - "@typescript-eslint/visitor-keys": "7.0.2", + "@typescript-eslint/scope-manager": "7.1.1", + "@typescript-eslint/type-utils": "7.1.1", + "@typescript-eslint/utils": "7.1.1", + "@typescript-eslint/visitor-keys": "7.1.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4596,6 +4596,53 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.1.1.tgz", + "integrity": "sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.1.1", + "@typescript-eslint/visitor-keys": "7.1.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.1.1.tgz", + "integrity": "sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz", + "integrity": "sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.1.1", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -4675,13 +4722,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.2.tgz", - "integrity": "sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.1.1.tgz", + "integrity": "sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.0.2", - "@typescript-eslint/utils": "7.0.2", + "@typescript-eslint/typescript-estree": "7.1.1", + "@typescript-eslint/utils": "7.1.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4701,6 +4748,97 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.1.1.tgz", + "integrity": "sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.1.tgz", + "integrity": "sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.1.1", + "@typescript-eslint/visitor-keys": "7.1.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz", + "integrity": "sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.1.1", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/types": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.2.tgz", @@ -4776,17 +4914,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.2.tgz", - "integrity": "sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.1.1.tgz", + "integrity": "sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.0.2", - "@typescript-eslint/types": "7.0.2", - "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/scope-manager": "7.1.1", + "@typescript-eslint/types": "7.1.1", + "@typescript-eslint/typescript-estree": "7.1.1", "semver": "^7.5.4" }, "engines": { @@ -4800,6 +4938,81 @@ "eslint": "^8.56.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.1.1.tgz", + "integrity": "sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.1.1", + "@typescript-eslint/visitor-keys": "7.1.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.1.1.tgz", + "integrity": "sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.1.tgz", + "integrity": "sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.1.1", + "@typescript-eslint/visitor-keys": "7.1.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz", + "integrity": "sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.1.1", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -8037,16 +8250,16 @@ } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -11993,13 +12206,28 @@ } }, "node_modules/karma-firefox-launcher": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.2.tgz", - "integrity": "sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz", + "integrity": "sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==", "dev": true, "dependencies": { "is-wsl": "^2.2.0", - "which": "^2.0.1" + "which": "^3.0.0" + } + }, + "node_modules/karma-firefox-launcher/node_modules/which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/karma-jasmine": { @@ -20727,7 +20955,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20759,7 +20987,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20801,7 +21029,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20843,7 +21071,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20874,7 +21102,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20905,7 +21133,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20941,7 +21169,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -20972,7 +21200,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -21003,7 +21231,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", "@esri/solution-common": "^5.2.2", @@ -21035,7 +21263,7 @@ "@esri/arcgis-rest-feature-layer": "^3.7.0", "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/solution-common": "^5.2.2", "@types/jasmine": "^5.1.4", "fetch-mock": "^7.7.3", @@ -21063,7 +21291,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -21095,7 +21323,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", @@ -21126,7 +21354,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/solution-common": "^5.2.2", "@esri/solution-simple-types": "^5.2.2", diff --git a/package.json b/package.json index 8e0266c71..afef8c165 100644 --- a/package.json +++ b/package.json @@ -64,16 +64,16 @@ ], "devDependencies": { "@babel/core": "^7.23.7", - "@babel/preset-env": "^7.23.8", + "@babel/preset-env": "^7.24.0", "@babel/preset-typescript": "^7.23.3", "@babel/types": "^7.23.6", "@chiragrupani/karma-chromium-edge-launcher": "^2.3.1", "@types/node": "^20.11.16", - "@typescript-eslint/eslint-plugin": "^7.0.1", + "@typescript-eslint/eslint-plugin": "^7.1.1", "@typescript-eslint/parser": "^7.0.1", "babel-jest": "^29.7.0", "browserify-sign": "^4.2.2", - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsdoc": "^48.0.6", @@ -86,7 +86,7 @@ "karma": "^6.4.2", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", - "karma-firefox-launcher": "^2.1.2", + "karma-firefox-launcher": "^2.1.3", "karma-jasmine": "^5.1.0", "karma-jasmine-diff-reporter": "^3.0.0", "karma-safari-launcher": "^1.0.0", diff --git a/packages/common/package.json b/packages/common/package.json index 7d804dbbb..062d57a19 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/creator/package.json b/packages/creator/package.json index eb6372630..924355848 100644 --- a/packages/creator/package.json +++ b/packages/creator/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/deployer/package.json b/packages/deployer/package.json index 84698a9f3..094bf84bb 100644 --- a/packages/deployer/package.json +++ b/packages/deployer/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/feature-layer/package.json b/packages/feature-layer/package.json index e2e037ede..0c733a2b2 100644 --- a/packages/feature-layer/package.json +++ b/packages/feature-layer/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/file/package.json b/packages/file/package.json index e50b26346..40e5045e6 100644 --- a/packages/file/package.json +++ b/packages/file/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/form/package.json b/packages/form/package.json index 5e579f4b2..d094a0ca5 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/group/package.json b/packages/group/package.json index f049d813e..a5b2e1388 100644 --- a/packages/group/package.json +++ b/packages/group/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/hub-types/package.json b/packages/hub-types/package.json index e0d6649d9..752f0cf82 100644 --- a/packages/hub-types/package.json +++ b/packages/hub-types/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/simple-types/package.json b/packages/simple-types/package.json index 33d4edd62..eb175090a 100644 --- a/packages/simple-types/package.json +++ b/packages/simple-types/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", "@esri/solution-common": "^5.2.2", diff --git a/packages/storymap/package.json b/packages/storymap/package.json index 760573f5c..1aad29122 100644 --- a/packages/storymap/package.json +++ b/packages/storymap/package.json @@ -22,7 +22,7 @@ "@esri/arcgis-rest-feature-layer": "^3.7.0", "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/solution-common": "^5.2.2", "@types/jasmine": "^5.1.4", "fetch-mock": "^7.7.3", diff --git a/packages/velocity/package.json b/packages/velocity/package.json index aa2e3f2fb..2558dd074 100644 --- a/packages/velocity/package.json +++ b/packages/velocity/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/viewer/package.json b/packages/viewer/package.json index 02eb3049d..0a744cab1 100644 --- a/packages/viewer/package.json +++ b/packages/viewer/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/hub-sites": "^14.2.2", "@esri/hub-teams": "^14.1.0", diff --git a/packages/web-experience/package.json b/packages/web-experience/package.json index a9e60fe39..5a209cd27 100644 --- a/packages/web-experience/package.json +++ b/packages/web-experience/package.json @@ -23,7 +23,7 @@ "@esri/arcgis-rest-portal": "^3.7.0", "@esri/arcgis-rest-request": "^3.7.0", "@esri/arcgis-rest-service-admin": "^3.7.0", - "@esri/hub-common": "^14.89.1", + "@esri/hub-common": "^14.97.0", "@esri/hub-initiatives": "^14.0.0", "@esri/solution-common": "^5.2.2", "@esri/solution-simple-types": "^5.2.2",