@dailephd/my-dev-kit-lab 0.3.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +46 -270
  2. package/dist/scripts/security/validate.js +177 -70
  3. package/dist/src/audits/codeRot/detectors/architectureDriftDetector.js +5 -2
  4. package/dist/src/audits/codeRot/detectors/securityValidationAssumptionRotDetector.js +5 -2
  5. package/dist/src/mobile/android/audit/androidFinding.js +68 -0
  6. package/dist/src/mobile/android/audit/checkResultBuilder.js +97 -0
  7. package/dist/src/mobile/android/audit/deepLinkAudit.js +183 -0
  8. package/dist/src/mobile/android/audit/exportedComponentAudit.js +183 -0
  9. package/dist/src/mobile/android/audit/intentFilterAudit.js +128 -0
  10. package/dist/src/mobile/android/audit/permissionAudit.js +142 -0
  11. package/dist/src/mobile/android/detect/androidTargetDetection.js +18 -0
  12. package/dist/src/mobile/android/detect/buildFileEvidence.js +36 -0
  13. package/dist/src/mobile/android/detect/classify.js +150 -0
  14. package/dist/src/mobile/android/detect/detectAndroidProject.js +252 -0
  15. package/dist/src/mobile/android/detect/settingsModules.js +60 -0
  16. package/dist/src/mobile/android/detect/sourceEvidence.js +92 -0
  17. package/dist/src/mobile/android/detect/traversal.js +79 -0
  18. package/dist/src/mobile/android/detect/versionCatalogEvidence.js +37 -0
  19. package/dist/src/mobile/android/detection.js +28 -0
  20. package/dist/src/mobile/android/gradle/gradleMetadataCheckResult.js +120 -0
  21. package/dist/src/mobile/android/gradle/moduleMetadataExtractor.js +137 -0
  22. package/dist/src/mobile/android/gradle/pluginVersionExtractor.js +40 -0
  23. package/dist/src/mobile/android/gradle/readAndroidGradleMetadata.js +210 -0
  24. package/dist/src/mobile/android/gradle/releaseMetadataSummary.js +64 -0
  25. package/dist/src/mobile/android/gradle/settingsMetadata.js +20 -0
  26. package/dist/src/mobile/android/gradle/types.js +1 -0
  27. package/dist/src/mobile/android/gradle/validate/executor.js +9 -0
  28. package/dist/src/mobile/android/gradle/validate/operationCheckResult.js +99 -0
  29. package/dist/src/mobile/android/gradle/validate/operations.js +68 -0
  30. package/dist/src/mobile/android/gradle/validate/planner.js +49 -0
  31. package/dist/src/mobile/android/gradle/validate/runOptionalGradleValidation.js +113 -0
  32. package/dist/src/mobile/android/gradle/validate/targetMutation.js +45 -0
  33. package/dist/src/mobile/android/gradle/validate/taskListParser.js +24 -0
  34. package/dist/src/mobile/android/gradle/versionCatalogMetadata.js +94 -0
  35. package/dist/src/mobile/android/gradle/wrapperMetadata.js +32 -0
  36. package/dist/src/mobile/android/manifest/parseAndroidManifest.js +341 -0
  37. package/dist/src/mobile/android/manifest/types.js +29 -0
  38. package/dist/src/mobile/android/manifest/xml/parseXml.js +313 -0
  39. package/dist/src/mobile/android/profile.js +29 -0
  40. package/dist/src/mobile/android/report/model.js +104 -0
  41. package/dist/src/mobile/android/report/renderAndroidReport.js +223 -0
  42. package/dist/src/mobile/android/report/writeAndroidReportFiles.js +23 -0
  43. package/dist/src/mobile/android/targetMetadata.js +27 -0
  44. package/dist/src/mobile/android/validate/androidVerdict.js +248 -0
  45. package/dist/src/mobile/android/validate/detectionAndImmutabilityCheckResults.js +177 -0
  46. package/dist/src/mobile/android/validate/playReadinessChecklist.js +145 -0
  47. package/dist/src/mobile/android/validate/validateAndroidTarget.js +172 -0
  48. package/dist/src/mobile/android/validation/checkResult.js +51 -0
  49. package/dist/src/mobile/android/validation/result.js +25 -0
  50. package/dist/src/mobile/index.js +42 -0
  51. package/dist/src/mobile/types.js +27 -0
  52. package/dist/src/securityValidation/attackScenarios/attackProfile.js +2 -0
  53. package/dist/src/securityValidation/attackScenarios/profiles/androidProfile.js +20 -0
  54. package/dist/src/securityValidation/validate/cliOptions.js +46 -2
  55. package/package.json +2 -1
  56. package/tests/fixtures/android/compose-app/app/build.gradle.kts +21 -0
  57. package/tests/fixtures/android/compose-app/app/src/main/AndroidManifest.xml +22 -0
  58. package/tests/fixtures/android/compose-app/app/src/main/java/com/example/composeapp/MainActivity.kt +11 -0
  59. package/tests/fixtures/android/compose-app/build.gradle.kts +4 -0
  60. package/tests/fixtures/android/compose-app/gradle/wrapper/gradle-wrapper.properties +4 -0
  61. package/tests/fixtures/android/compose-app/settings.gradle.kts +2 -0
  62. package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/build.gradle.kts +3 -0
  63. package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/gradle/libs.versions.toml +5 -0
  64. package/tests/fixtures/android/gradle-metadata-fixtures/comment-safety.gradle.kts +21 -0
  65. package/tests/fixtures/android/gradle-metadata-fixtures/dynamic-values.gradle.kts +17 -0
  66. package/tests/fixtures/android/gradle-metadata-fixtures/groovy-literal.gradle +23 -0
  67. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-malformed.properties +4 -0
  68. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-missing-url.properties +3 -0
  69. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-with-checksum.properties +5 -0
  70. package/tests/fixtures/android/java-app/app/build.gradle +16 -0
  71. package/tests/fixtures/android/java-app/app/src/main/AndroidManifest.xml +19 -0
  72. package/tests/fixtures/android/java-app/app/src/main/java/com/example/javaapp/MainActivity.java +4 -0
  73. package/tests/fixtures/android/java-app/build.gradle +3 -0
  74. package/tests/fixtures/android/java-app/gradle/wrapper/gradle-wrapper.properties +4 -0
  75. package/tests/fixtures/android/java-app/settings.gradle +2 -0
  76. package/tests/fixtures/android/library/build.gradle.kts +3 -0
  77. package/tests/fixtures/android/library/gradle/wrapper/gradle-wrapper.properties +4 -0
  78. package/tests/fixtures/android/library/mylibrary/build.gradle.kts +13 -0
  79. package/tests/fixtures/android/library/mylibrary/src/main/AndroidManifest.xml +2 -0
  80. package/tests/fixtures/android/library/settings.gradle.kts +2 -0
  81. package/tests/fixtures/android/manifest-audit-fixtures/incomplete-intent-filter.xml +14 -0
  82. package/tests/fixtures/android/manifest-audit-fixtures/malformed-exported.xml +10 -0
  83. package/tests/fixtures/android/manifest-audit-fixtures/malformed.xml +5 -0
  84. package/tests/fixtures/android/manifest-audit-fixtures/missing-application.xml +7 -0
  85. package/tests/fixtures/android/manifest-audit-fixtures/missing-component-name.xml +11 -0
  86. package/tests/fixtures/android/manifest-audit-fixtures/permission-coverage.xml +29 -0
  87. package/tests/fixtures/android/manifest-audit-fixtures/risky-components.xml +62 -0
  88. package/tests/fixtures/android/manifest-audit-fixtures/risky-deep-links.xml +45 -0
  89. package/tests/fixtures/android/manifest-audit-fixtures/unresolved-placeholder.xml +14 -0
  90. package/tests/fixtures/android/manifest-audit-fixtures/unusual-namespace-prefix.xml +11 -0
  91. package/tests/fixtures/android/multi-module/app/build.gradle.kts +22 -0
  92. package/tests/fixtures/android/multi-module/app/src/androidTest/java/com/example/multimodule/app/ExampleInstrumentedTest.kt +3 -0
  93. package/tests/fixtures/android/multi-module/app/src/main/AndroidManifest.xml +11 -0
  94. package/tests/fixtures/android/multi-module/app/src/test/java/com/example/multimodule/app/ExampleUnitTest.kt +3 -0
  95. package/tests/fixtures/android/multi-module/build.gradle.kts +5 -0
  96. package/tests/fixtures/android/multi-module/core/build.gradle.kts +14 -0
  97. package/tests/fixtures/android/multi-module/core/src/main/AndroidManifest.xml +2 -0
  98. package/tests/fixtures/android/multi-module/feature-login/build.gradle.kts +18 -0
  99. package/tests/fixtures/android/multi-module/feature-login/src/main/AndroidManifest.xml +2 -0
  100. package/tests/fixtures/android/multi-module/gradle/libs.versions.toml +8 -0
  101. package/tests/fixtures/android/multi-module/gradle/wrapper/gradle-wrapper.properties +4 -0
  102. package/tests/fixtures/android/multi-module/settings.gradle.kts +4 -0
  103. package/tests/fixtures/android/non-android-gradle/build.gradle.kts +3 -0
  104. package/tests/fixtures/android/non-android-gradle/core/build.gradle.kts +3 -0
  105. package/tests/fixtures/android/non-android-gradle/core/src/main/java/com/example/core/Core.java +4 -0
  106. package/tests/fixtures/android/non-android-gradle/gradle/wrapper/gradle-wrapper.properties +4 -0
  107. package/tests/fixtures/android/non-android-gradle/settings.gradle.kts +2 -0
  108. package/tests/fixtures/android/partial/app/build.gradle.kts +7 -0
  109. package/tests/fixtures/android/partial/settings.gradle.kts +2 -0
  110. package/tests/fixtures/android/xml-view-app/app/build.gradle.kts +17 -0
  111. package/tests/fixtures/android/xml-view-app/app/src/main/AndroidManifest.xml +31 -0
  112. package/tests/fixtures/android/xml-view-app/app/src/main/kotlin/com/example/xmlviewapp/MainActivity.kt +7 -0
  113. package/tests/fixtures/android/xml-view-app/app/src/main/res/layout/activity_main.xml +4 -0
  114. package/tests/fixtures/android/xml-view-app/build.gradle.kts +4 -0
  115. package/tests/fixtures/android/xml-view-app/gradle/wrapper/gradle-wrapper.properties +4 -0
  116. package/tests/fixtures/android/xml-view-app/settings.gradle.kts +2 -0
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <application android:label="Multi Module App">
4
+ <activity android:name=".MainActivity" android:exported="true">
5
+ <intent-filter>
6
+ <action android:name="android.intent.action.MAIN" />
7
+ <category android:name="android.intent.category.LAUNCHER" />
8
+ </intent-filter>
9
+ </activity>
10
+ </application>
11
+ </manifest>
@@ -0,0 +1,3 @@
1
+ package com.example.multimodule.app
2
+
3
+ class ExampleUnitTest
@@ -0,0 +1,5 @@
1
+ plugins {
2
+ id("com.android.application") version "8.2.0" apply false
3
+ id("com.android.library") version "8.2.0" apply false
4
+ id("org.jetbrains.kotlin.android") version "1.9.22" apply false
5
+ }
@@ -0,0 +1,14 @@
1
+ plugins {
2
+ id("com.android.library")
3
+ id("org.jetbrains.kotlin.android")
4
+ }
5
+
6
+ android {
7
+ namespace = "com.example.multimodule.core"
8
+ compileSdk = 34
9
+
10
+ defaultConfig {
11
+ minSdk = 24
12
+ targetSdk = 34
13
+ }
14
+ }
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android" />
@@ -0,0 +1,18 @@
1
+ plugins {
2
+ id("com.android.library")
3
+ id("org.jetbrains.kotlin.android")
4
+ }
5
+
6
+ android {
7
+ namespace = "com.example.multimodule.featurelogin"
8
+ compileSdk = 34
9
+
10
+ defaultConfig {
11
+ minSdk = 24
12
+ targetSdk = 34
13
+ }
14
+ }
15
+
16
+ dependencies {
17
+ implementation(project(":core"))
18
+ }
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android" />
@@ -0,0 +1,8 @@
1
+ [versions]
2
+ agp = "8.2.0"
3
+ kotlin = "1.9.22"
4
+
5
+ [plugins]
6
+ android-application = { id = "com.android.application", version.ref = "agp" }
7
+ android-library = { id = "com.android.library", version.ref = "agp" }
8
+ kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
@@ -0,0 +1,4 @@
1
+ distributionBase=GRADLE_USER_HOME
2
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
3
+ distributionPath=wrapper/dists
4
+ zipStorePath=wrapper/dists
@@ -0,0 +1,4 @@
1
+ rootProject.name = "multi-module"
2
+ include(":app")
3
+ include(":core")
4
+ include(":feature-login")
@@ -0,0 +1,3 @@
1
+ plugins {
2
+ id("java-library")
3
+ }
@@ -0,0 +1,3 @@
1
+ plugins {
2
+ id("java-library")
3
+ }
@@ -0,0 +1,4 @@
1
+ package com.example.core;
2
+
3
+ public class Core {
4
+ }
@@ -0,0 +1,4 @@
1
+ distributionBase=GRADLE_USER_HOME
2
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
3
+ distributionPath=wrapper/dists
4
+ zipStorePath=wrapper/dists
@@ -0,0 +1,2 @@
1
+ rootProject.name = "non-android-gradle"
2
+ include(":core")
@@ -0,0 +1,7 @@
1
+ plugins {
2
+ id("com.android.application")
3
+ }
4
+
5
+ android {
6
+ namespace = "com.example.partial"
7
+ }
@@ -0,0 +1,2 @@
1
+ rootProject.name = "partial"
2
+ include(":app")
@@ -0,0 +1,17 @@
1
+ plugins {
2
+ id("com.android.application")
3
+ id("org.jetbrains.kotlin.android")
4
+ }
5
+
6
+ android {
7
+ namespace = "com.example.xmlviewapp"
8
+ compileSdk = 34
9
+
10
+ defaultConfig {
11
+ applicationId = "com.example.xmlviewapp"
12
+ minSdk = 21
13
+ targetSdk = 34
14
+ versionCode = 1
15
+ versionName = "1.0"
16
+ }
17
+ }
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
3
+
4
+ <application
5
+ android:label="XML View App"
6
+ android:icon="@mipmap/ic_launcher"
7
+ android:allowBackup="false">
8
+
9
+ <activity
10
+ android:name=".MainActivity"
11
+ android:exported="true">
12
+ <intent-filter>
13
+ <action android:name="android.intent.action.MAIN" />
14
+ <category android:name="android.intent.category.LAUNCHER" />
15
+ </intent-filter>
16
+ </activity>
17
+
18
+ <activity
19
+ android:name=".DeepLinkActivity"
20
+ android:exported="true">
21
+ <intent-filter android:autoVerify="true">
22
+ <action android:name="android.intent.action.VIEW" />
23
+ <category android:name="android.intent.category.DEFAULT" />
24
+ <category android:name="android.intent.category.BROWSABLE" />
25
+ <data android:scheme="https" android:host="example.com" android:pathPrefix="/share" />
26
+ </intent-filter>
27
+ </activity>
28
+
29
+ </application>
30
+
31
+ </manifest>
@@ -0,0 +1,7 @@
1
+ package com.example.xmlviewapp
2
+
3
+ class MainActivity {
4
+ fun bindViews() {
5
+ val view = findViewById<Any>(0)
6
+ }
7
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:layout_width="match_parent"
4
+ android:layout_height="match_parent" />
@@ -0,0 +1,4 @@
1
+ plugins {
2
+ id("com.android.application") version "8.2.0" apply false
3
+ id("org.jetbrains.kotlin.android") version "1.9.22" apply false
4
+ }
@@ -0,0 +1,4 @@
1
+ distributionBase=GRADLE_USER_HOME
2
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
3
+ distributionPath=wrapper/dists
4
+ zipStorePath=wrapper/dists
@@ -0,0 +1,2 @@
1
+ rootProject.name = "xml-view-app"
2
+ include(":app")