@transcend-io/cli 8.32.4 → 8.32.6

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 (120) hide show
  1. package/dist/bin/bash-complete.cjs +1 -1
  2. package/dist/bin/cli.cjs +1 -1
  3. package/dist/bin/deprecated-command.cjs +2 -2
  4. package/dist/{chunk-P5GD5LAK.cjs → chunk-5UWKWV3X.cjs} +2 -2
  5. package/dist/{chunk-P5GD5LAK.cjs.map → chunk-5UWKWV3X.cjs.map} +1 -1
  6. package/dist/{chunk-IHUCIK5T.cjs → chunk-CDX243U3.cjs} +2 -2
  7. package/dist/{chunk-IHUCIK5T.cjs.map → chunk-CDX243U3.cjs.map} +1 -1
  8. package/dist/{chunk-DQCPGPXG.cjs → chunk-GJ6V5BHG.cjs} +2 -2
  9. package/dist/{chunk-DQCPGPXG.cjs.map → chunk-GJ6V5BHG.cjs.map} +1 -1
  10. package/dist/{chunk-VCPZG4FJ.cjs → chunk-I6GMLKI6.cjs} +2 -2
  11. package/dist/{chunk-VCPZG4FJ.cjs.map → chunk-I6GMLKI6.cjs.map} +1 -1
  12. package/dist/{chunk-VUQAH7YK.cjs → chunk-LE6FS55Q.cjs} +6 -6
  13. package/dist/{chunk-VUQAH7YK.cjs.map → chunk-LE6FS55Q.cjs.map} +1 -1
  14. package/dist/{chunk-PGO2YKRX.cjs → chunk-MLH6KKUK.cjs} +2 -2
  15. package/dist/{chunk-PGO2YKRX.cjs.map → chunk-MLH6KKUK.cjs.map} +1 -1
  16. package/dist/{chunk-D3VRD5F5.cjs → chunk-NZEATKWL.cjs} +2 -2
  17. package/dist/{chunk-D3VRD5F5.cjs.map → chunk-NZEATKWL.cjs.map} +1 -1
  18. package/dist/{chunk-6TKTYQIF.cjs → chunk-O7SJYOEK.cjs} +2 -2
  19. package/dist/{chunk-6TKTYQIF.cjs.map → chunk-O7SJYOEK.cjs.map} +1 -1
  20. package/dist/{chunk-22KX2NM4.cjs → chunk-PCK2N4IA.cjs} +4 -4
  21. package/dist/{chunk-22KX2NM4.cjs.map → chunk-PCK2N4IA.cjs.map} +1 -1
  22. package/dist/{chunk-LQUVB4MI.cjs → chunk-SFPZ6GEN.cjs} +4 -4
  23. package/dist/{chunk-LQUVB4MI.cjs.map → chunk-SFPZ6GEN.cjs.map} +1 -1
  24. package/dist/{chunk-CM7VJEOY.cjs → chunk-SZ7K447J.cjs} +2 -2
  25. package/dist/{chunk-CM7VJEOY.cjs.map → chunk-SZ7K447J.cjs.map} +1 -1
  26. package/dist/{chunk-56QKBG2R.cjs → chunk-VWN5MN3U.cjs} +4 -4
  27. package/dist/{chunk-56QKBG2R.cjs.map → chunk-VWN5MN3U.cjs.map} +1 -1
  28. package/dist/{chunk-BPOXNSPY.cjs → chunk-WJ3RFUZV.cjs} +2 -2
  29. package/dist/{chunk-BPOXNSPY.cjs.map → chunk-WJ3RFUZV.cjs.map} +1 -1
  30. package/dist/{chunk-DYBVUGHH.cjs → chunk-X2P2BWT7.cjs} +21 -21
  31. package/dist/{chunk-DYBVUGHH.cjs.map → chunk-X2P2BWT7.cjs.map} +1 -1
  32. package/dist/{impl-YIPC6MAR.cjs → impl-56QEHP2B.cjs} +3 -3
  33. package/dist/{impl-YIPC6MAR.cjs.map → impl-56QEHP2B.cjs.map} +1 -1
  34. package/dist/{impl-S64WVKSC.cjs → impl-575YOEHZ.cjs} +2 -2
  35. package/dist/{impl-S64WVKSC.cjs.map → impl-575YOEHZ.cjs.map} +1 -1
  36. package/dist/{impl-IQGUF37H.cjs → impl-5LMTXEQA.cjs} +2 -2
  37. package/dist/{impl-IQGUF37H.cjs.map → impl-5LMTXEQA.cjs.map} +1 -1
  38. package/dist/{impl-BLGX7DMN.cjs → impl-7DIFXY6N.cjs} +3 -3
  39. package/dist/{impl-BLGX7DMN.cjs.map → impl-7DIFXY6N.cjs.map} +1 -1
  40. package/dist/{impl-5RX3NB6C.cjs → impl-C6TDBSVQ.cjs} +2 -2
  41. package/dist/{impl-5RX3NB6C.cjs.map → impl-C6TDBSVQ.cjs.map} +1 -1
  42. package/dist/{impl-GA6T4SCB.cjs → impl-CL5OTH3R.cjs} +2 -2
  43. package/dist/{impl-GA6T4SCB.cjs.map → impl-CL5OTH3R.cjs.map} +1 -1
  44. package/dist/{impl-2JA6BPE7.cjs → impl-CV6MBTAL.cjs} +2 -2
  45. package/dist/{impl-2JA6BPE7.cjs.map → impl-CV6MBTAL.cjs.map} +1 -1
  46. package/dist/{impl-WVOFYJLG.cjs → impl-D7RH4J5E.cjs} +2 -2
  47. package/dist/{impl-WVOFYJLG.cjs.map → impl-D7RH4J5E.cjs.map} +1 -1
  48. package/dist/{impl-WTGAAEUZ.cjs → impl-DGZB5IDM.cjs} +2 -2
  49. package/dist/{impl-WTGAAEUZ.cjs.map → impl-DGZB5IDM.cjs.map} +1 -1
  50. package/dist/impl-DNVWNGPJ.cjs +2 -0
  51. package/dist/{impl-JI6COVDW.cjs.map → impl-DNVWNGPJ.cjs.map} +1 -1
  52. package/dist/{impl-LKX6OLE2.cjs → impl-DVIXGQJR.cjs} +2 -2
  53. package/dist/{impl-LKX6OLE2.cjs.map → impl-DVIXGQJR.cjs.map} +1 -1
  54. package/dist/{impl-GZNNNSYW.cjs → impl-EAI3VXKU.cjs} +4 -4
  55. package/dist/{impl-GZNNNSYW.cjs.map → impl-EAI3VXKU.cjs.map} +1 -1
  56. package/dist/{impl-4LAJNPQ4.cjs → impl-G422JWSA.cjs} +3 -3
  57. package/dist/{impl-4LAJNPQ4.cjs.map → impl-G422JWSA.cjs.map} +1 -1
  58. package/dist/{impl-J5PWNHKL.cjs → impl-G7YD5U53.cjs} +2 -2
  59. package/dist/{impl-J5PWNHKL.cjs.map → impl-G7YD5U53.cjs.map} +1 -1
  60. package/dist/{impl-MRC5UI22.cjs → impl-IC4KAL33.cjs} +2 -2
  61. package/dist/{impl-MRC5UI22.cjs.map → impl-IC4KAL33.cjs.map} +1 -1
  62. package/dist/{impl-IZIXOMMN.cjs → impl-JT7MI4YS.cjs} +2 -2
  63. package/dist/{impl-IZIXOMMN.cjs.map → impl-JT7MI4YS.cjs.map} +1 -1
  64. package/dist/{impl-ADPBEB3N.cjs → impl-LJBAH4YS.cjs} +2 -2
  65. package/dist/{impl-ADPBEB3N.cjs.map → impl-LJBAH4YS.cjs.map} +1 -1
  66. package/dist/{impl-ZTEP5CYM.cjs → impl-M2JWCIOX.cjs} +2 -2
  67. package/dist/{impl-ZTEP5CYM.cjs.map → impl-M2JWCIOX.cjs.map} +1 -1
  68. package/dist/{impl-BHA2L6BP.cjs → impl-MCIWWT2M.cjs} +2 -2
  69. package/dist/{impl-BHA2L6BP.cjs.map → impl-MCIWWT2M.cjs.map} +1 -1
  70. package/dist/{impl-RMPDHVAH.cjs → impl-MO2EAW2B.cjs} +2 -2
  71. package/dist/{impl-RMPDHVAH.cjs.map → impl-MO2EAW2B.cjs.map} +1 -1
  72. package/dist/{impl-IOS3QLTX.cjs → impl-PHHRQWTE.cjs} +2 -2
  73. package/dist/{impl-IOS3QLTX.cjs.map → impl-PHHRQWTE.cjs.map} +1 -1
  74. package/dist/{impl-NW57RBBR.cjs → impl-PHXT2QG7.cjs} +2 -2
  75. package/dist/{impl-NW57RBBR.cjs.map → impl-PHXT2QG7.cjs.map} +1 -1
  76. package/dist/{impl-UA7V6YEM.cjs → impl-QMDXFUAO.cjs} +2 -2
  77. package/dist/{impl-UA7V6YEM.cjs.map → impl-QMDXFUAO.cjs.map} +1 -1
  78. package/dist/{impl-R35FW4U7.cjs → impl-R5PX6MIE.cjs} +5 -5
  79. package/dist/{impl-R35FW4U7.cjs.map → impl-R5PX6MIE.cjs.map} +1 -1
  80. package/dist/{impl-4AI7T6RD.cjs → impl-RAZVKALS.cjs} +2 -2
  81. package/dist/{impl-4AI7T6RD.cjs.map → impl-RAZVKALS.cjs.map} +1 -1
  82. package/dist/{impl-JY7YM3QH.cjs → impl-RZSXBVAC.cjs} +2 -2
  83. package/dist/{impl-JY7YM3QH.cjs.map → impl-RZSXBVAC.cjs.map} +1 -1
  84. package/dist/{impl-66CDS7IN.cjs → impl-SA4YQJID.cjs} +2 -2
  85. package/dist/{impl-66CDS7IN.cjs.map → impl-SA4YQJID.cjs.map} +1 -1
  86. package/dist/{impl-SE32ARTN.cjs → impl-SUS5VKKB.cjs} +2 -2
  87. package/dist/{impl-SE32ARTN.cjs.map → impl-SUS5VKKB.cjs.map} +1 -1
  88. package/dist/{impl-QPLTL2SO.cjs → impl-T3KGRFUR.cjs} +2 -2
  89. package/dist/{impl-QPLTL2SO.cjs.map → impl-T3KGRFUR.cjs.map} +1 -1
  90. package/dist/{impl-4YFJOKCA.cjs → impl-T6FTWSLY.cjs} +2 -2
  91. package/dist/{impl-4YFJOKCA.cjs.map → impl-T6FTWSLY.cjs.map} +1 -1
  92. package/dist/{impl-Z54SB7SM.cjs → impl-TXBSRO6N.cjs} +2 -2
  93. package/dist/{impl-Z54SB7SM.cjs.map → impl-TXBSRO6N.cjs.map} +1 -1
  94. package/dist/{impl-SSBP4ONX.cjs → impl-UKTKLJSZ.cjs} +2 -2
  95. package/dist/{impl-SSBP4ONX.cjs.map → impl-UKTKLJSZ.cjs.map} +1 -1
  96. package/dist/{impl-XYHIS7X5.cjs → impl-UU5CW4E4.cjs} +2 -2
  97. package/dist/{impl-XYHIS7X5.cjs.map → impl-UU5CW4E4.cjs.map} +1 -1
  98. package/dist/{impl-B6DTQRYV.cjs → impl-UYKI3NKQ.cjs} +2 -2
  99. package/dist/{impl-B6DTQRYV.cjs.map → impl-UYKI3NKQ.cjs.map} +1 -1
  100. package/dist/{impl-GG3S2VBT.cjs → impl-VVICNSEP.cjs} +2 -2
  101. package/dist/{impl-GG3S2VBT.cjs.map → impl-VVICNSEP.cjs.map} +1 -1
  102. package/dist/impl-WY3A5X7O.cjs +2 -0
  103. package/dist/{impl-QOCEM2K5.cjs.map → impl-WY3A5X7O.cjs.map} +1 -1
  104. package/dist/{impl-EXHOBCQW.cjs → impl-XOHK7EPT.cjs} +2 -2
  105. package/dist/{impl-EXHOBCQW.cjs.map → impl-XOHK7EPT.cjs.map} +1 -1
  106. package/dist/{impl-DA7AASRR.cjs → impl-XT4Q54W2.cjs} +2 -2
  107. package/dist/{impl-DA7AASRR.cjs.map → impl-XT4Q54W2.cjs.map} +1 -1
  108. package/dist/{impl-FRWZLZ2V.cjs → impl-Y6ENZCUI.cjs} +2 -2
  109. package/dist/{impl-FRWZLZ2V.cjs.map → impl-Y6ENZCUI.cjs.map} +1 -1
  110. package/dist/{impl-XU54KM62.cjs → impl-YQXGFOOO.cjs} +2 -2
  111. package/dist/{impl-XU54KM62.cjs.map → impl-YQXGFOOO.cjs.map} +1 -1
  112. package/dist/{impl-X23VUODX.cjs → impl-ZUAB2R6X.cjs} +2 -2
  113. package/dist/{impl-X23VUODX.cjs.map → impl-ZUAB2R6X.cjs.map} +1 -1
  114. package/dist/{impl-Y3MY5EKD.cjs → impl-ZV7OZ5BN.cjs} +2 -2
  115. package/dist/{impl-Y3MY5EKD.cjs.map → impl-ZV7OZ5BN.cjs.map} +1 -1
  116. package/dist/index.cjs +3 -3
  117. package/dist/index.d.cts +1 -1
  118. package/package.json +1 -1
  119. package/dist/impl-JI6COVDW.cjs +0 -2
  120. package/dist/impl-QOCEM2K5.cjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-CM7VJEOY.cjs","../src/lib/code-scanning/integrations/cocoaPods.ts","../src/lib/code-scanning/integrations/gradle.ts","../src/lib/code-scanning/integrations/pubspec.ts","../src/lib/code-scanning/integrations/swift.ts"],"names":["POD_TARGET_REGEX","POD_PACKAGE_REGEX","cocoaPods","filePath","fileContents","readFileSync","targets","findAllWithRegex","packages","target","ind","CodePackageType","pkg","GRADLE_IMPLEMENTATION_REGEX","GRADLE_PLUGIN_REGEX","GRADLE_IMPLEMENTATION_GROUP_REGEX","GRADLE_APPLICATION_NAME_REGEX","gradle","directory","dirname","targetPlugins","targetGroups","applications"],"mappings":"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","file":"/home/runner/work/cli/cli/dist/chunk-CM7VJEOY.cjs","sourcesContent":[null,"import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageSdk } from '../../../codecs';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\nimport { CodePackageType } from '@transcend-io/privacy-types';\n\nconst POD_TARGET_REGEX = /target ('|\")(.*?)('|\")/;\nconst POD_PACKAGE_REGEX = /pod ('|\")(.*?)('|\")(, ('|\")~> (.+?)('|\")|)/;\n\nexport const cocoaPods: CodeScanningConfig = {\n supportedFiles: ['Podfile'],\n ignoreDirs: ['Pods', 'Build'],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n\n const targets = findAllWithRegex(\n {\n value: new RegExp(POD_TARGET_REGEX, 'g'),\n matches: ['quote1', 'name', 'quote2'],\n },\n fileContents,\n );\n const packages = findAllWithRegex(\n {\n value: new RegExp(POD_PACKAGE_REGEX, 'g'),\n matches: [\n 'quote1',\n 'name',\n 'quote2',\n 'extra',\n 'quote3',\n 'version',\n 'quote4',\n ],\n },\n fileContents,\n );\n\n const deps: CodePackageSdk[] = targets.map((target, ind) => ({\n name: target.name,\n type: CodePackageType.CocoaPods,\n softwareDevelopmentKits: packages\n .filter(\n (pkg) =>\n pkg.matchIndex > target.matchIndex &&\n (!targets[ind + 1] || pkg.matchIndex < targets[ind + 1].matchIndex),\n )\n .map((pkg) => ({\n name: pkg.name,\n version: pkg.version,\n })),\n }));\n\n return deps;\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\nimport { dirname } from 'node:path';\n\nconst GRADLE_IMPLEMENTATION_REGEX =\n /implementation( *)('|\")(.+?):(.+?):(.+?|)('|\")/;\nconst GRADLE_PLUGIN_REGEX = /apply plugin: *('|\")(.+?)(:(.+?)|)('|\")/;\nconst GRADLE_IMPLEMENTATION_GROUP_REGEX =\n /implementation group:( *)('|\")(.+?)('|\"),( *)name:( *)('|\")(.+?)('|\"),( *)version:( *)('|\")(.+?)('|\")/;\nconst GRADLE_APPLICATION_NAME_REGEX = /applicationId( *)\"(.+?)\"/;\n\n/**\n * So far, there are three ways of defining dependencies that is supported\n * implementation group: 'org.eclipse.jdt', name: 'org.eclipse.jdt.core', version: '3.28.0'\n * or\n * implementation 'com.google.firebase:firebase-analytics:18.0.0'\n * or\n * apply plugin: 'com.google.gms.google-services'\n *\n * single and double quotes are both recognized\n */\nexport const gradle: CodeScanningConfig = {\n supportedFiles: ['build.gradle**'],\n ignoreDirs: [\n 'gradle-app.setting',\n 'gradle-wrapper.jar',\n 'gradle-wrapper.properties',\n ],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n const directory = dirname(filePath);\n\n const targets = findAllWithRegex(\n {\n value: new RegExp(GRADLE_IMPLEMENTATION_REGEX, 'g'),\n matches: ['space', 'quote1', 'name', 'path', 'version', 'quote2'],\n },\n fileContents,\n );\n const targetPlugins = findAllWithRegex(\n {\n value: new RegExp(GRADLE_PLUGIN_REGEX, 'g'),\n matches: ['quote1', 'name', 'group', 'version', 'quote2'],\n },\n fileContents,\n );\n const targetGroups = findAllWithRegex(\n {\n value: new RegExp(GRADLE_IMPLEMENTATION_GROUP_REGEX, 'g'),\n matches: [\n 'space1',\n 'quote1',\n 'group',\n 'quote2',\n 'space2',\n 'space3',\n 'quote3',\n 'name',\n 'quote4',\n 'space4',\n 'space5',\n 'quote5',\n 'version',\n 'quote6',\n ],\n },\n fileContents,\n );\n const applications = findAllWithRegex(\n {\n value: new RegExp(GRADLE_APPLICATION_NAME_REGEX, 'g'),\n matches: ['space', 'name'],\n },\n fileContents,\n );\n if (applications.length > 1) {\n throw new Error(`Expected only one applicationId per file: ${filePath}`);\n }\n\n return [\n {\n name: applications[0]?.name || directory.split('/').pop()!,\n softwareDevelopmentKits: [\n ...targets,\n ...targetGroups,\n ...targetPlugins,\n ].map((target) => ({\n name: target.name,\n version: target.version || undefined,\n })),\n },\n ];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageType } from '@transcend-io/privacy-types';\nimport yaml from 'js-yaml';\nimport { dirname } from 'node:path';\n\n/**\n * Remove YAML comments from a string\n *\n * @param yamlString - YAML string\n * @returns String without comments\n */\nfunction removeYAMLComments(yamlString: string): string {\n return yamlString\n .split('\\n')\n .map((line) => {\n // Remove inline comments\n const commentIndex = line.indexOf('#');\n if (commentIndex > -1) {\n // Check if '#' is not inside a string\n if (\n !line.substring(0, commentIndex).includes('\"') &&\n !line.substring(0, commentIndex).includes(\"'\")\n ) {\n return line.substring(0, commentIndex).trim();\n }\n }\n return line;\n })\n .filter((line) => line.length > 0)\n .join('\\n');\n}\n\nexport const pubspec: CodeScanningConfig = {\n supportedFiles: ['pubspec.yml'],\n ignoreDirs: ['build'],\n scanFunction: (filePath) => {\n const directory = dirname(filePath);\n const fileContents = readFileSync(filePath, 'utf-8');\n const {\n name,\n description,\n dev_dependencies = {},\n dependencies = {},\n } = yaml.load(removeYAMLComments(fileContents)) as {\n /** Name */\n name?: string;\n /** Description */\n description?: string;\n /** Dev dependencies */\n dev_dependencies?: { [k in string]: number | Record<string, string> };\n /** Dependencies */\n dependencies?: { [k in string]: number | Record<string, string> };\n };\n return [\n {\n name: name || directory.split('/').pop()!,\n description,\n type: CodePackageType.RequirementsTxt,\n softwareDevelopmentKits: [\n ...Object.entries(dependencies).map(([name, version]) => ({\n name,\n version:\n typeof version === 'string'\n ? version\n : typeof version === 'number'\n ? version.toString()\n : version?.sdk,\n })),\n ...Object.entries(dev_dependencies).map(([name, version]) => ({\n name,\n version:\n typeof version === 'string'\n ? version\n : typeof version === 'number'\n ? version.toString()\n : version?.sdk,\n isDevDependency: true,\n })),\n ],\n },\n ];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageType } from '@transcend-io/privacy-types';\nimport { decodeCodec } from '@transcend-io/type-utils';\nimport * as t from 'io-ts';\nimport { dirname } from 'node:path';\n\nconst SwiftPackage = t.type({\n pins: t.array(\n t.type({\n identity: t.string,\n kind: t.string,\n location: t.string,\n state: t.intersection([\n t.type({\n revision: t.string,\n }),\n t.partial({\n version: t.union([t.string, t.undefined, t.null]),\n }),\n ]),\n }),\n ),\n version: t.number,\n});\n\nconst SwiftPackageV1 = t.type({\n object: t.type({\n pins: t.array(\n t.type({\n package: t.string,\n repositoryURL: t.string,\n state: t.intersection([\n t.type({\n branch: t.union([t.string, t.undefined, t.null]),\n revision: t.string,\n }),\n t.partial({\n version: t.union([t.string, t.undefined, t.null]),\n }),\n ]),\n }),\n ),\n }),\n version: t.number,\n});\n\nexport const swift: CodeScanningConfig = {\n supportedFiles: ['Package.resolved'],\n ignoreDirs: [],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n\n // Attempt latest version first\n try {\n const parsed = decodeCodec(SwiftPackage, fileContents);\n const splitPath = dirname(filePath).split('/');\n const originalName = splitPath[splitPath.length - 1];\n let name = originalName;\n if (name === 'swiftpm') {\n name = splitPath[splitPath.length - 2];\n if (name === 'xcshareddata') {\n name = splitPath[splitPath.length - 3];\n } else if (!name) {\n name = originalName;\n }\n if (name === 'project.xcworkspace') {\n name = splitPath[splitPath.length - 4];\n }\n }\n return [\n {\n name,\n type: CodePackageType.Swift,\n softwareDevelopmentKits: parsed.pins.map((target) => ({\n name: target.identity,\n version: target.state.version || undefined,\n })),\n },\n ];\n } catch (e) {\n // Throw non codec errors\n if (!e?.message?.includes('Failed to decode codec')) {\n throw e;\n }\n\n // Attempt v1\n try {\n const parsed = decodeCodec(SwiftPackageV1, fileContents);\n return [\n {\n name: dirname(filePath).split('/').pop() || '', // TODO pull from Package.swift ->> name if possible\n type: CodePackageType.Swift,\n softwareDevelopmentKits: parsed.object.pins.map((target) => ({\n name: target.package,\n version: target.state.version || undefined,\n })),\n },\n ];\n } catch (e2) {\n if (!e2?.message?.includes('Failed to decode codec')) {\n throw e2;\n }\n throw e;\n }\n }\n },\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-SZ7K447J.cjs","../src/lib/code-scanning/integrations/cocoaPods.ts","../src/lib/code-scanning/integrations/gradle.ts","../src/lib/code-scanning/integrations/pubspec.ts","../src/lib/code-scanning/integrations/swift.ts"],"names":["POD_TARGET_REGEX","POD_PACKAGE_REGEX","cocoaPods","filePath","fileContents","readFileSync","targets","findAllWithRegex","packages","target","ind","CodePackageType","pkg","GRADLE_IMPLEMENTATION_REGEX","GRADLE_PLUGIN_REGEX","GRADLE_IMPLEMENTATION_GROUP_REGEX","GRADLE_APPLICATION_NAME_REGEX","gradle","directory","dirname","targetPlugins","targetGroups","applications"],"mappings":"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","file":"/home/runner/work/cli/cli/dist/chunk-SZ7K447J.cjs","sourcesContent":[null,"import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageSdk } from '../../../codecs';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\nimport { CodePackageType } from '@transcend-io/privacy-types';\n\nconst POD_TARGET_REGEX = /target ('|\")(.*?)('|\")/;\nconst POD_PACKAGE_REGEX = /pod ('|\")(.*?)('|\")(, ('|\")~> (.+?)('|\")|)/;\n\nexport const cocoaPods: CodeScanningConfig = {\n supportedFiles: ['Podfile'],\n ignoreDirs: ['Pods', 'Build'],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n\n const targets = findAllWithRegex(\n {\n value: new RegExp(POD_TARGET_REGEX, 'g'),\n matches: ['quote1', 'name', 'quote2'],\n },\n fileContents,\n );\n const packages = findAllWithRegex(\n {\n value: new RegExp(POD_PACKAGE_REGEX, 'g'),\n matches: [\n 'quote1',\n 'name',\n 'quote2',\n 'extra',\n 'quote3',\n 'version',\n 'quote4',\n ],\n },\n fileContents,\n );\n\n const deps: CodePackageSdk[] = targets.map((target, ind) => ({\n name: target.name,\n type: CodePackageType.CocoaPods,\n softwareDevelopmentKits: packages\n .filter(\n (pkg) =>\n pkg.matchIndex > target.matchIndex &&\n (!targets[ind + 1] || pkg.matchIndex < targets[ind + 1].matchIndex),\n )\n .map((pkg) => ({\n name: pkg.name,\n version: pkg.version,\n })),\n }));\n\n return deps;\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\nimport { dirname } from 'node:path';\n\nconst GRADLE_IMPLEMENTATION_REGEX =\n /implementation( *)('|\")(.+?):(.+?):(.+?|)('|\")/;\nconst GRADLE_PLUGIN_REGEX = /apply plugin: *('|\")(.+?)(:(.+?)|)('|\")/;\nconst GRADLE_IMPLEMENTATION_GROUP_REGEX =\n /implementation group:( *)('|\")(.+?)('|\"),( *)name:( *)('|\")(.+?)('|\"),( *)version:( *)('|\")(.+?)('|\")/;\nconst GRADLE_APPLICATION_NAME_REGEX = /applicationId( *)\"(.+?)\"/;\n\n/**\n * So far, there are three ways of defining dependencies that is supported\n * implementation group: 'org.eclipse.jdt', name: 'org.eclipse.jdt.core', version: '3.28.0'\n * or\n * implementation 'com.google.firebase:firebase-analytics:18.0.0'\n * or\n * apply plugin: 'com.google.gms.google-services'\n *\n * single and double quotes are both recognized\n */\nexport const gradle: CodeScanningConfig = {\n supportedFiles: ['build.gradle**'],\n ignoreDirs: [\n 'gradle-app.setting',\n 'gradle-wrapper.jar',\n 'gradle-wrapper.properties',\n ],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n const directory = dirname(filePath);\n\n const targets = findAllWithRegex(\n {\n value: new RegExp(GRADLE_IMPLEMENTATION_REGEX, 'g'),\n matches: ['space', 'quote1', 'name', 'path', 'version', 'quote2'],\n },\n fileContents,\n );\n const targetPlugins = findAllWithRegex(\n {\n value: new RegExp(GRADLE_PLUGIN_REGEX, 'g'),\n matches: ['quote1', 'name', 'group', 'version', 'quote2'],\n },\n fileContents,\n );\n const targetGroups = findAllWithRegex(\n {\n value: new RegExp(GRADLE_IMPLEMENTATION_GROUP_REGEX, 'g'),\n matches: [\n 'space1',\n 'quote1',\n 'group',\n 'quote2',\n 'space2',\n 'space3',\n 'quote3',\n 'name',\n 'quote4',\n 'space4',\n 'space5',\n 'quote5',\n 'version',\n 'quote6',\n ],\n },\n fileContents,\n );\n const applications = findAllWithRegex(\n {\n value: new RegExp(GRADLE_APPLICATION_NAME_REGEX, 'g'),\n matches: ['space', 'name'],\n },\n fileContents,\n );\n if (applications.length > 1) {\n throw new Error(`Expected only one applicationId per file: ${filePath}`);\n }\n\n return [\n {\n name: applications[0]?.name || directory.split('/').pop()!,\n softwareDevelopmentKits: [\n ...targets,\n ...targetGroups,\n ...targetPlugins,\n ].map((target) => ({\n name: target.name,\n version: target.version || undefined,\n })),\n },\n ];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageType } from '@transcend-io/privacy-types';\nimport yaml from 'js-yaml';\nimport { dirname } from 'node:path';\n\n/**\n * Remove YAML comments from a string\n *\n * @param yamlString - YAML string\n * @returns String without comments\n */\nfunction removeYAMLComments(yamlString: string): string {\n return yamlString\n .split('\\n')\n .map((line) => {\n // Remove inline comments\n const commentIndex = line.indexOf('#');\n if (commentIndex > -1) {\n // Check if '#' is not inside a string\n if (\n !line.substring(0, commentIndex).includes('\"') &&\n !line.substring(0, commentIndex).includes(\"'\")\n ) {\n return line.substring(0, commentIndex).trim();\n }\n }\n return line;\n })\n .filter((line) => line.length > 0)\n .join('\\n');\n}\n\nexport const pubspec: CodeScanningConfig = {\n supportedFiles: ['pubspec.yml'],\n ignoreDirs: ['build'],\n scanFunction: (filePath) => {\n const directory = dirname(filePath);\n const fileContents = readFileSync(filePath, 'utf-8');\n const {\n name,\n description,\n dev_dependencies = {},\n dependencies = {},\n } = yaml.load(removeYAMLComments(fileContents)) as {\n /** Name */\n name?: string;\n /** Description */\n description?: string;\n /** Dev dependencies */\n dev_dependencies?: { [k in string]: number | Record<string, string> };\n /** Dependencies */\n dependencies?: { [k in string]: number | Record<string, string> };\n };\n return [\n {\n name: name || directory.split('/').pop()!,\n description,\n type: CodePackageType.RequirementsTxt,\n softwareDevelopmentKits: [\n ...Object.entries(dependencies).map(([name, version]) => ({\n name,\n version:\n typeof version === 'string'\n ? version\n : typeof version === 'number'\n ? version.toString()\n : version?.sdk,\n })),\n ...Object.entries(dev_dependencies).map(([name, version]) => ({\n name,\n version:\n typeof version === 'string'\n ? version\n : typeof version === 'number'\n ? version.toString()\n : version?.sdk,\n isDevDependency: true,\n })),\n ],\n },\n ];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageType } from '@transcend-io/privacy-types';\nimport { decodeCodec } from '@transcend-io/type-utils';\nimport * as t from 'io-ts';\nimport { dirname } from 'node:path';\n\nconst SwiftPackage = t.type({\n pins: t.array(\n t.type({\n identity: t.string,\n kind: t.string,\n location: t.string,\n state: t.intersection([\n t.type({\n revision: t.string,\n }),\n t.partial({\n version: t.union([t.string, t.undefined, t.null]),\n }),\n ]),\n }),\n ),\n version: t.number,\n});\n\nconst SwiftPackageV1 = t.type({\n object: t.type({\n pins: t.array(\n t.type({\n package: t.string,\n repositoryURL: t.string,\n state: t.intersection([\n t.type({\n branch: t.union([t.string, t.undefined, t.null]),\n revision: t.string,\n }),\n t.partial({\n version: t.union([t.string, t.undefined, t.null]),\n }),\n ]),\n }),\n ),\n }),\n version: t.number,\n});\n\nexport const swift: CodeScanningConfig = {\n supportedFiles: ['Package.resolved'],\n ignoreDirs: [],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n\n // Attempt latest version first\n try {\n const parsed = decodeCodec(SwiftPackage, fileContents);\n const splitPath = dirname(filePath).split('/');\n const originalName = splitPath[splitPath.length - 1];\n let name = originalName;\n if (name === 'swiftpm') {\n name = splitPath[splitPath.length - 2];\n if (name === 'xcshareddata') {\n name = splitPath[splitPath.length - 3];\n } else if (!name) {\n name = originalName;\n }\n if (name === 'project.xcworkspace') {\n name = splitPath[splitPath.length - 4];\n }\n }\n return [\n {\n name,\n type: CodePackageType.Swift,\n softwareDevelopmentKits: parsed.pins.map((target) => ({\n name: target.identity,\n version: target.state.version || undefined,\n })),\n },\n ];\n } catch (e) {\n // Throw non codec errors\n if (!e?.message?.includes('Failed to decode codec')) {\n throw e;\n }\n\n // Attempt v1\n try {\n const parsed = decodeCodec(SwiftPackageV1, fileContents);\n return [\n {\n name: dirname(filePath).split('/').pop() || '', // TODO pull from Package.swift ->> name if possible\n type: CodePackageType.Swift,\n softwareDevelopmentKits: parsed.object.pins.map((target) => ({\n name: target.package,\n version: target.state.version || undefined,\n })),\n },\n ];\n } catch (e2) {\n if (!e2?.message?.includes('Failed to decode codec')) {\n throw e2;\n }\n throw e;\n }\n }\n },\n};\n"]}