@vm0/cli 9.208.2 → 9.209.1

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 (58) hide show
  1. package/{chunk-VTG7YKGH.js → chunk-E4QFFTUC.js} +81 -6
  2. package/{chunk-VTG7YKGH.js.map → chunk-E4QFFTUC.js.map} +1 -1
  3. package/{chunk-NUMM3WMG.js → chunk-S3DAXIKY.js} +1 -1
  4. package/{chunk-NUMM3WMG.js.map → chunk-S3DAXIKY.js.map} +1 -1
  5. package/{clerk.generated-ZX6FS3MY.js → clerk.generated-VYPZORXB.js} +1 -1
  6. package/clerk.generated-VYPZORXB.js.map +1 -0
  7. package/{cloudflare.generated-6N4KWRE3.js → cloudflare.generated-YPGW4ALF.js} +1 -1
  8. package/cloudflare.generated-YPGW4ALF.js.map +1 -0
  9. package/{firewall-placeholder-expansion-FRPU64H3.js → firewall-placeholder-expansion-NK7UHGTN.js} +2 -2
  10. package/{gmail.generated-PL3HVAVP.js → gmail.generated-CXXGCZPP.js} +1 -1
  11. package/gmail.generated-CXXGCZPP.js.map +1 -0
  12. package/{google-analytics.generated-7EAP74EC.js → google-analytics.generated-LR5RC6K5.js} +1 -1
  13. package/google-analytics.generated-LR5RC6K5.js.map +1 -0
  14. package/{google-calendar.generated-66JO7MZH.js → google-calendar.generated-D4GJ7VO5.js} +1 -1
  15. package/google-calendar.generated-D4GJ7VO5.js.map +1 -0
  16. package/{google-cloud.generated-H4E5WNYB.js → google-cloud.generated-753VHV7L.js} +1 -1
  17. package/google-cloud.generated-753VHV7L.js.map +1 -0
  18. package/{google-docs.generated-NZYWOUOC.js → google-docs.generated-XH5A5CNI.js} +1 -1
  19. package/google-docs.generated-XH5A5CNI.js.map +1 -0
  20. package/{google-drive.generated-JTJW3HYA.js → google-drive.generated-EFB5FL7H.js} +1 -1
  21. package/google-drive.generated-EFB5FL7H.js.map +1 -0
  22. package/{google-meet.generated-SQAK6E4P.js → google-meet.generated-K2FLJEET.js} +1 -1
  23. package/google-meet.generated-K2FLJEET.js.map +1 -0
  24. package/{google-search-console.generated-PRI3O6UG.js → google-search-console.generated-3ZTIE5VX.js} +1 -1
  25. package/google-search-console.generated-3ZTIE5VX.js.map +1 -0
  26. package/{google-sheets.generated-NZNUFLZM.js → google-sheets.generated-2NO2YMYK.js} +1 -1
  27. package/google-sheets.generated-2NO2YMYK.js.map +1 -0
  28. package/index.js +10 -10
  29. package/{maskdb.generated-T2JIVNT4.js → maskdb.generated-VNT5ANFK.js} +1 -1
  30. package/maskdb.generated-VNT5ANFK.js.map +1 -0
  31. package/package.json +1 -1
  32. package/{slack.generated-V76OAVKH.js → slack.generated-QJKOJ2OP.js} +1 -1
  33. package/slack.generated-QJKOJ2OP.js.map +1 -0
  34. package/{stripe.generated-SC3QH5ZD.js → stripe.generated-2RPKIN5I.js} +1 -1
  35. package/stripe.generated-2RPKIN5I.js.map +1 -0
  36. package/{vercel.generated-NX2R7A4K.js → vercel.generated-FZ6RD7RJ.js} +1 -1
  37. package/vercel.generated-FZ6RD7RJ.js.map +1 -0
  38. package/{youtube.generated-YWLXAYNL.js → youtube.generated-2NDVPMV2.js} +1 -1
  39. package/youtube.generated-2NDVPMV2.js.map +1 -0
  40. package/zero.js +295 -27
  41. package/zero.js.map +1 -1
  42. package/clerk.generated-ZX6FS3MY.js.map +0 -1
  43. package/cloudflare.generated-6N4KWRE3.js.map +0 -1
  44. package/gmail.generated-PL3HVAVP.js.map +0 -1
  45. package/google-analytics.generated-7EAP74EC.js.map +0 -1
  46. package/google-calendar.generated-66JO7MZH.js.map +0 -1
  47. package/google-cloud.generated-H4E5WNYB.js.map +0 -1
  48. package/google-docs.generated-NZYWOUOC.js.map +0 -1
  49. package/google-drive.generated-JTJW3HYA.js.map +0 -1
  50. package/google-meet.generated-SQAK6E4P.js.map +0 -1
  51. package/google-search-console.generated-PRI3O6UG.js.map +0 -1
  52. package/google-sheets.generated-NZNUFLZM.js.map +0 -1
  53. package/maskdb.generated-T2JIVNT4.js.map +0 -1
  54. package/slack.generated-V76OAVKH.js.map +0 -1
  55. package/stripe.generated-SC3QH5ZD.js.map +0 -1
  56. package/vercel.generated-NX2R7A4K.js.map +0 -1
  57. package/youtube.generated-YWLXAYNL.js.map +0 -1
  58. /package/{firewall-placeholder-expansion-FRPU64H3.js.map → firewall-placeholder-expansion-NK7UHGTN.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/connectors/src/firewalls/google-docs.generated.ts"],"sourcesContent":["// Auto-generated from Google's Docs Discovery API and vm0's Docs permission manifest.\n// Source: https://docs.googleapis.com/$discovery/rest?version=v1\n// Regenerate: cd turbo && pnpm -F @vm0/firewalls-generator generate:google-docs\n//\n// DO NOT EDIT THIS FILE MANUALLY.\n\nimport type { FirewallConfig, FirewallPolicyValue } from \"../firewall-types\";\nimport type { PermissionNamesOf } from \"./index\";\n\nexport const googleDocsFirewall = {\n name: \"google-docs\",\n description: \"Google Docs API\",\n placeholders: {\n GOOGLE_DOCS_TOKEN: \"ya29.A0CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSa\",\n },\n apis: [\n {\n base: \"https://docs.googleapis.com\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.GOOGLE_DOCS_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"documents.create\",\n description: \"Create Google Docs documents.\",\n rules: [\n \"POST /v1/documents\",\n ],\n },\n {\n name: \"documents.read\",\n description: \"Read Google Docs documents.\",\n rules: [\n \"GET /v1/documents/{documentId}\",\n ],\n },\n {\n name: \"documents.write\",\n description: \"Apply batch updates to Google Docs documents.\",\n rules: [\n \"POST /v1/documents/{documentId}:batchUpdate\",\n ],\n },\n ],\n },\n ],\n} as const satisfies FirewallConfig;\n\nexport const googleDocsDefaultAllowed: ReadonlyArray<\n PermissionNamesOf<typeof googleDocsFirewall>\n> = [\n \"documents.read\",\n];\n\n\nexport const googleDocsDefaultUnknownPolicy = \"deny\" satisfies FirewallPolicyValue;\n"],"mappings":";;;;;;;;AAAA;AASO,IAAM,qBAAqB;AAAA,EAChC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,cAAc;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,2BAET;AAAA,EACF;AACF;AAGO,IAAM,iCAAiC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/connectors/src/firewalls/google-drive.generated.ts"],"sourcesContent":["// Auto-generated from Google's Drive Discovery API and vm0's Drive permission manifest.\n// Source: https://www.googleapis.com/discovery/v1/apis/drive/v2/rest\n// Source: https://www.googleapis.com/discovery/v1/apis/drive/v3/rest\n// Regenerate: cd turbo && pnpm -F @vm0/firewalls-generator generate:google-drive\n//\n// DO NOT EDIT THIS FILE MANUALLY.\n\nimport type { FirewallConfig, FirewallPolicyValue } from \"../firewall-types\";\nimport type { PermissionNamesOf } from \"./index\";\n\nexport const googleDriveFirewall = {\n name: \"google-drive\",\n description: \"Google Drive API\",\n placeholders: {\n GOOGLE_DRIVE_TOKEN: \"ya29.A0CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSa\",\n },\n apis: [\n {\n base: \"https://www.googleapis.com/drive\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.GOOGLE_DRIVE_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"about.read\",\n description: \"Read Drive account and storage metadata.\",\n rules: [\n \"GET /v2/about\",\n \"GET /v3/about\",\n ],\n },\n {\n name: \"apps.read\",\n description: \"Read Drive apps authorized for the user.\",\n rules: [\n \"GET /v2/apps\",\n \"GET /v2/apps/{appId}\",\n \"GET /v3/apps\",\n \"GET /v3/apps/{appId}\",\n ],\n },\n {\n name: \"changes.read\",\n description: \"Read Drive change logs and page tokens.\",\n rules: [\n \"GET /v2/changes\",\n \"GET /v2/changes/startPageToken\",\n \"GET /v2/changes/{changeId}\",\n \"GET /v3/changes\",\n \"GET /v3/changes/startPageToken\",\n ],\n },\n {\n name: \"channels.write\",\n description: \"Create and stop Drive notification channels.\",\n rules: [\n \"POST /v2/changes/watch\",\n \"POST /v2/channels/stop\",\n \"POST /v2/files/{fileId}/watch\",\n \"POST /v3/changes/watch\",\n \"POST /v3/channels/stop\",\n \"POST /v3/files/{fileId}/watch\",\n ],\n },\n {\n name: \"comments.read\",\n description: \"Read Drive file comments.\",\n rules: [\n \"GET /v2/files/{fileId}/comments\",\n \"GET /v2/files/{fileId}/comments/{commentId}\",\n \"GET /v3/files/{fileId}/comments\",\n \"GET /v3/files/{fileId}/comments/{commentId}\",\n ],\n },\n {\n name: \"comments.write\",\n description: \"Create, update, and delete Drive file comments.\",\n rules: [\n \"POST /v2/files/{fileId}/comments\",\n \"PUT /v2/files/{fileId}/comments/{commentId}\",\n \"PATCH /v2/files/{fileId}/comments/{commentId}\",\n \"DELETE /v2/files/{fileId}/comments/{commentId}\",\n \"POST /v3/files/{fileId}/comments\",\n \"PATCH /v3/files/{fileId}/comments/{commentId}\",\n \"DELETE /v3/files/{fileId}/comments/{commentId}\",\n ],\n },\n {\n name: \"drives.delete\",\n description: \"Delete shared drives and team drives.\",\n rules: [\n \"DELETE /v2/drives/{driveId}\",\n \"DELETE /v2/teamdrives/{teamDriveId}\",\n \"DELETE /v3/drives/{driveId}\",\n \"DELETE /v3/teamdrives/{teamDriveId}\",\n ],\n },\n {\n name: \"drives.read\",\n description: \"Read shared drive and team drive metadata.\",\n rules: [\n \"GET /v2/drives\",\n \"GET /v2/drives/{driveId}\",\n \"GET /v2/teamdrives\",\n \"GET /v2/teamdrives/{teamDriveId}\",\n \"GET /v3/drives\",\n \"GET /v3/drives/{driveId}\",\n \"GET /v3/teamdrives\",\n \"GET /v3/teamdrives/{teamDriveId}\",\n ],\n },\n {\n name: \"drives.write\",\n description: \"Create, update, hide, and unhide shared drives.\",\n rules: [\n \"POST /v2/drives\",\n \"PUT /v2/drives/{driveId}\",\n \"POST /v2/drives/{driveId}/hide\",\n \"POST /v2/drives/{driveId}/unhide\",\n \"POST /v2/teamdrives\",\n \"PUT /v2/teamdrives/{teamDriveId}\",\n \"POST /v3/drives\",\n \"PATCH /v3/drives/{driveId}\",\n \"POST /v3/drives/{driveId}/hide\",\n \"POST /v3/drives/{driveId}/unhide\",\n \"POST /v3/teamdrives\",\n \"PATCH /v3/teamdrives/{teamDriveId}\",\n ],\n },\n {\n name: \"files.delete\",\n description: \"Delete, trash, untrash, and empty trashed Drive files.\",\n rules: [\n \"DELETE /v2/files/trash\",\n \"DELETE /v2/files/{fileId}\",\n \"POST /v2/files/{fileId}/trash\",\n \"POST /v2/files/{fileId}/untrash\",\n \"DELETE /v3/files/trash\",\n \"DELETE /v3/files/{fileId}\",\n ],\n },\n {\n name: \"files.read\",\n description: \"Read Drive files, file metadata, labels, and content.\",\n rules: [\n \"GET /v2/files\",\n \"GET /v2/files/generateCseToken\",\n \"GET /v2/files/generateIds\",\n \"GET /v2/files/{fileId}\",\n \"GET /v2/files/{fileId}/export\",\n \"GET /v2/files/{fileId}/listLabels\",\n \"GET /v2/files/{fileId}/parents\",\n \"GET /v2/files/{fileId}/parents/{parentId}\",\n \"GET /v2/files/{fileId}/properties\",\n \"GET /v2/files/{fileId}/properties/{propertyKey}\",\n \"GET /v2/files/{folderId}/children\",\n \"GET /v2/files/{folderId}/children/{childId}\",\n \"GET /v3/files\",\n \"GET /v3/files/generateCseToken\",\n \"GET /v3/files/generateIds\",\n \"GET /v3/files/{fileId}\",\n \"GET /v3/files/{fileId}/approvals\",\n \"GET /v3/files/{fileId}/approvals/{approvalId}\",\n \"POST /v3/files/{fileId}/download\",\n \"GET /v3/files/{fileId}/export\",\n \"GET /v3/files/{fileId}/listLabels\",\n ],\n },\n {\n name: \"files.share\",\n description: \"Read and manage Drive file permissions and access requests.\",\n rules: [\n \"GET /v2/files/{fileId}/permissions\",\n \"POST /v2/files/{fileId}/permissions\",\n \"GET /v2/files/{fileId}/permissions/{permissionId}\",\n \"PUT /v2/files/{fileId}/permissions/{permissionId}\",\n \"PATCH /v2/files/{fileId}/permissions/{permissionId}\",\n \"DELETE /v2/files/{fileId}/permissions/{permissionId}\",\n \"GET /v2/permissionIds/{email}\",\n \"GET /v3/files/{fileId}/accessproposals\",\n \"GET /v3/files/{fileId}/accessproposals/{proposalId}\",\n \"POST /v3/files/{fileId}/accessproposals/{proposalId}:resolve\",\n \"GET /v3/files/{fileId}/permissions\",\n \"POST /v3/files/{fileId}/permissions\",\n \"GET /v3/files/{fileId}/permissions/{permissionId}\",\n \"PATCH /v3/files/{fileId}/permissions/{permissionId}\",\n \"DELETE /v3/files/{fileId}/permissions/{permissionId}\",\n ],\n },\n {\n name: \"files.write\",\n description: \"Create, update, upload, copy, organize, and label files.\",\n rules: [\n \"POST /v2/files\",\n \"PUT /v2/files/{fileId}\",\n \"PATCH /v2/files/{fileId}\",\n \"POST /v2/files/{fileId}/copy\",\n \"POST /v2/files/{fileId}/modifyLabels\",\n \"POST /v2/files/{fileId}/parents\",\n \"DELETE /v2/files/{fileId}/parents/{parentId}\",\n \"POST /v2/files/{fileId}/properties\",\n \"PUT /v2/files/{fileId}/properties/{propertyKey}\",\n \"PATCH /v2/files/{fileId}/properties/{propertyKey}\",\n \"DELETE /v2/files/{fileId}/properties/{propertyKey}\",\n \"POST /v2/files/{fileId}/touch\",\n \"POST /v2/files/{folderId}/children\",\n \"DELETE /v2/files/{folderId}/children/{childId}\",\n \"POST /v3/files\",\n \"PATCH /v3/files/{fileId}\",\n \"POST /v3/files/{fileId}/copy\",\n \"POST /v3/files/{fileId}/modifyLabels\",\n ],\n },\n {\n name: \"operations.read\",\n description: \"Read long-running Drive operations.\",\n rules: [\n \"GET /v3/operations/{name}\",\n ],\n },\n {\n name: \"replies.read\",\n description: \"Read Drive comment replies.\",\n rules: [\n \"GET /v2/files/{fileId}/comments/{commentId}/replies\",\n \"GET /v2/files/{fileId}/comments/{commentId}/replies/{replyId}\",\n \"GET /v3/files/{fileId}/comments/{commentId}/replies\",\n \"GET /v3/files/{fileId}/comments/{commentId}/replies/{replyId}\",\n ],\n },\n {\n name: \"replies.write\",\n description: \"Create, update, and delete Drive comment replies.\",\n rules: [\n \"POST /v2/files/{fileId}/comments/{commentId}/replies\",\n \"PUT /v2/files/{fileId}/comments/{commentId}/replies/{replyId}\",\n \"PATCH /v2/files/{fileId}/comments/{commentId}/replies/{replyId}\",\n \"DELETE /v2/files/{fileId}/comments/{commentId}/replies/{replyId}\",\n \"POST /v3/files/{fileId}/comments/{commentId}/replies\",\n \"PATCH /v3/files/{fileId}/comments/{commentId}/replies/{replyId}\",\n \"DELETE /v3/files/{fileId}/comments/{commentId}/replies/{replyId}\",\n ],\n },\n {\n name: \"revisions.delete\",\n description: \"Delete Drive file revisions.\",\n rules: [\n \"DELETE /v2/files/{fileId}/revisions/{revisionId}\",\n \"DELETE /v3/files/{fileId}/revisions/{revisionId}\",\n ],\n },\n {\n name: \"revisions.read\",\n description: \"Read Drive file revisions.\",\n rules: [\n \"GET /v2/files/{fileId}/revisions\",\n \"GET /v2/files/{fileId}/revisions/{revisionId}\",\n \"GET /v3/files/{fileId}/revisions\",\n \"GET /v3/files/{fileId}/revisions/{revisionId}\",\n ],\n },\n {\n name: \"revisions.write\",\n description: \"Update Drive file revisions.\",\n rules: [\n \"PUT /v2/files/{fileId}/revisions/{revisionId}\",\n \"PATCH /v2/files/{fileId}/revisions/{revisionId}\",\n \"PATCH /v3/files/{fileId}/revisions/{revisionId}\",\n ],\n },\n ],\n },\n {\n base: \"https://www.googleapis.com/upload/drive\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.GOOGLE_DRIVE_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"files.write\",\n description: \"Create, update, upload, copy, organize, and label files.\",\n rules: [\n \"POST /v2/files\",\n \"PUT /v2/files/{fileId}\",\n \"POST /v3/files\",\n \"PATCH /v3/files/{fileId}\",\n ],\n },\n ],\n },\n {\n base: \"https://www.googleapis.com/resumable/upload/drive\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.GOOGLE_DRIVE_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"files.write\",\n description: \"Create, update, upload, copy, organize, and label files.\",\n rules: [\n \"POST /v2/files\",\n \"PUT /v2/files/{fileId}\",\n \"POST /v3/files\",\n \"PATCH /v3/files/{fileId}\",\n ],\n },\n ],\n },\n ],\n} as const satisfies FirewallConfig;\n\nexport const googleDriveDefaultAllowed: ReadonlyArray<\n PermissionNamesOf<typeof googleDriveFirewall>\n> = [\n \"about.read\",\n \"apps.read\",\n \"changes.read\",\n \"comments.read\",\n \"drives.read\",\n \"files.read\",\n \"operations.read\",\n \"replies.read\",\n \"revisions.read\",\n];\n\n\nexport const googleDriveDefaultUnknownPolicy = \"deny\" satisfies FirewallPolicyValue;\n\n\nexport const googleDriveCategories: Record<\n PermissionNamesOf<typeof googleDriveFirewall>,\n string\n> = {\n // — Drive Metadata (4) —\n \"about.read\": \"Drive Metadata\",\n \"apps.read\": \"Drive Metadata\",\n \"changes.read\": \"Drive Metadata\",\n \"operations.read\": \"Drive Metadata\",\n // — Files (3) —\n \"files.read\": \"Files\",\n \"files.write\": \"Files\",\n \"files.delete\": \"Files\",\n // — Sharing (1) —\n \"files.share\": \"Sharing\",\n // — Comments (4) —\n \"comments.read\": \"Comments\",\n \"comments.write\": \"Comments\",\n \"replies.read\": \"Comments\",\n \"replies.write\": \"Comments\",\n // — Revisions (3) —\n \"revisions.read\": \"Revisions\",\n \"revisions.write\": \"Revisions\",\n \"revisions.delete\": \"Revisions\",\n // — Shared Drives (3) —\n \"drives.read\": \"Shared Drives\",\n \"drives.write\": \"Shared Drives\",\n \"drives.delete\": \"Shared Drives\",\n // — Notifications (1) —\n \"channels.write\": \"Notifications\",\n};\n\nexport const googleDriveCategoryOrder = [\"Drive Metadata\", \"Files\", \"Sharing\", \"Comments\", \"Revisions\", \"Shared Drives\", \"Notifications\"] as const;\n"],"mappings":";;;;;;;;AAAA;AAUO,IAAM,sBAAsB;AAAA,EACjC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,cAAc;AAAA,IACZ,oBAAoB;AAAA,EACtB;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,4BAET;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,kCAAkC;AAGxC,IAAM,wBAGT;AAAA;AAAA,EAEF,cAAc;AAAA,EACd,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,mBAAmB;AAAA;AAAA,EAEnB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,gBAAgB;AAAA;AAAA,EAEhB,eAAe;AAAA;AAAA,EAEf,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA;AAAA,EAEjB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA;AAAA,EAEpB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,iBAAiB;AAAA;AAAA,EAEjB,kBAAkB;AACpB;AAEO,IAAM,2BAA2B,CAAC,kBAAkB,SAAS,WAAW,YAAY,aAAa,iBAAiB,eAAe;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/connectors/src/firewalls/google-meet.generated.ts"],"sourcesContent":["// Auto-generated from Google's Meet Discovery API and vm0's Meet permission manifest.\n// Source: https://meet.googleapis.com/$discovery/rest?version=v2\n// Regenerate: cd turbo && pnpm -F @vm0/firewalls-generator generate:google-meet\n//\n// DO NOT EDIT THIS FILE MANUALLY.\n\nimport type { FirewallConfig, FirewallPolicyValue } from \"../firewall-types\";\nimport type { PermissionNamesOf } from \"./index\";\n\nexport const googleMeetFirewall = {\n name: \"google-meet\",\n description: \"Google Meet API\",\n placeholders: {\n GOOGLE_MEET_TOKEN: \"ya29.A0CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSa\",\n },\n apis: [\n {\n base: \"https://meet.googleapis.com\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.GOOGLE_MEET_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"conference-records.read\",\n description: \"Read Google Meet conference records.\",\n rules: [\n \"GET /v2/conferenceRecords\",\n \"GET /v2/conferenceRecords/{conferenceRecordsId}\",\n ],\n },\n {\n name: \"participant-sessions.read\",\n description: \"Read participant sessions in Google Meet conference records.\",\n rules: [\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/participants/{participantsId}/participantSessions\",\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/participants/{participantsId}/participantSessions/{participantSessionsId}\",\n ],\n },\n {\n name: \"participants.read\",\n description: \"Read participants in Google Meet conference records.\",\n rules: [\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/participants\",\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/participants/{participantsId}\",\n ],\n },\n {\n name: \"recordings.read\",\n description: \"Read Google Meet conference recordings.\",\n rules: [\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/recordings\",\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/recordings/{recordingsId}\",\n ],\n },\n {\n name: \"smart-notes.read\",\n description: \"Read Google Meet smart notes.\",\n rules: [\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/smartNotes\",\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/smartNotes/{smartNotesId}\",\n ],\n },\n {\n name: \"spaces.create\",\n description: \"Create Google Meet spaces.\",\n rules: [\n \"POST /v2/spaces\",\n ],\n },\n {\n name: \"spaces.end-active-conference\",\n description: \"End active conferences in Google Meet spaces.\",\n rules: [\n \"POST /v2/spaces/{spacesId}:endActiveConference\",\n ],\n },\n {\n name: \"spaces.read\",\n description: \"Read Google Meet spaces.\",\n rules: [\n \"GET /v2/spaces/{spacesId}\",\n ],\n },\n {\n name: \"spaces.write\",\n description: \"Update Google Meet spaces.\",\n rules: [\n \"PATCH /v2/spaces/{spacesId}\",\n ],\n },\n {\n name: \"transcript-entries.read\",\n description: \"Read Google Meet transcript entries.\",\n rules: [\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/transcripts/{transcriptsId}/entries\",\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/transcripts/{transcriptsId}/entries/{entriesId}\",\n ],\n },\n {\n name: \"transcripts.read\",\n description: \"Read Google Meet transcripts.\",\n rules: [\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/transcripts\",\n \"GET /v2/conferenceRecords/{conferenceRecordsId}/transcripts/{transcriptsId}\",\n ],\n },\n ],\n },\n ],\n} as const satisfies FirewallConfig;\n\nexport const googleMeetDefaultAllowed: ReadonlyArray<\n PermissionNamesOf<typeof googleMeetFirewall>\n> = [\n \"spaces.read\",\n \"conference-records.read\",\n \"participants.read\",\n \"participant-sessions.read\",\n \"recordings.read\",\n \"smart-notes.read\",\n \"transcripts.read\",\n \"transcript-entries.read\",\n];\n\n\nexport const googleMeetDefaultUnknownPolicy = \"deny\" satisfies FirewallPolicyValue;\n\n\nexport const googleMeetCategories: Record<\n PermissionNamesOf<typeof googleMeetFirewall>,\n string\n> = {\n // — Spaces (4) —\n \"spaces.create\": \"Spaces\",\n \"spaces.read\": \"Spaces\",\n \"spaces.write\": \"Spaces\",\n \"spaces.end-active-conference\": \"Spaces\",\n // — Conference Records (1) —\n \"conference-records.read\": \"Conference Records\",\n // — Participants (2) —\n \"participants.read\": \"Participants\",\n \"participant-sessions.read\": \"Participants\",\n // — Recordings (1) —\n \"recordings.read\": \"Recordings\",\n // — Transcripts (2) —\n \"transcripts.read\": \"Transcripts\",\n \"transcript-entries.read\": \"Transcripts\",\n // — Smart Notes (1) —\n \"smart-notes.read\": \"Smart Notes\",\n};\n\nexport const googleMeetCategoryOrder = [\"Spaces\", \"Conference Records\", \"Participants\", \"Recordings\", \"Transcripts\", \"Smart Notes\"] as const;\n"],"mappings":";;;;;;;;AAAA;AASO,IAAM,qBAAqB;AAAA,EAChC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,cAAc;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,2BAET;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,iCAAiC;AAGvC,IAAM,uBAGT;AAAA;AAAA,EAEF,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,gCAAgC;AAAA;AAAA,EAEhC,2BAA2B;AAAA;AAAA,EAE3B,qBAAqB;AAAA,EACrB,6BAA6B;AAAA;AAAA,EAE7B,mBAAmB;AAAA;AAAA,EAEnB,oBAAoB;AAAA,EACpB,2BAA2B;AAAA;AAAA,EAE3B,oBAAoB;AACtB;AAEO,IAAM,0BAA0B,CAAC,UAAU,sBAAsB,gBAAgB,cAAc,eAAe,aAAa;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/connectors/src/firewalls/google-search-console.generated.ts"],"sourcesContent":["// Auto-generated from Google's Search Console Discovery API and vm0's Search Console permission manifest.\n// Source: https://searchconsole.googleapis.com/$discovery/rest?version=v1\n// Regenerate: cd turbo && pnpm -F @vm0/firewalls-generator generate:google-search-console\n//\n// DO NOT EDIT THIS FILE MANUALLY.\n\nimport type { FirewallConfig, FirewallPolicyValue } from \"../firewall-types\";\nimport type { PermissionNamesOf } from \"./index\";\n\nexport const googleSearchConsoleFirewall = {\n name: \"google-search-console\",\n description: \"Google Search Console API\",\n placeholders: {\n GOOGLE_SEARCH_CONSOLE_TOKEN: \"ya29.A0CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSa\",\n },\n apis: [\n {\n base: \"https://searchconsole.googleapis.com\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.GOOGLE_SEARCH_CONSOLE_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"mobile-friendly-tests.run\",\n description: \"Run mobile-friendly tests for URLs.\",\n rules: [\n \"POST /v1/urlTestingTools/mobileFriendlyTest:run\",\n ],\n },\n {\n name: \"search-analytics.query\",\n description: \"Query Search Console search analytics data.\",\n rules: [\n \"POST /webmasters/v3/sites/{siteUrl}/searchAnalytics/query\",\n ],\n },\n {\n name: \"sitemaps.delete\",\n description: \"Delete submitted sitemaps.\",\n rules: [\n \"DELETE /webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}\",\n ],\n },\n {\n name: \"sitemaps.read\",\n description: \"List and read submitted sitemaps.\",\n rules: [\n \"GET /webmasters/v3/sites/{siteUrl}/sitemaps\",\n \"GET /webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}\",\n ],\n },\n {\n name: \"sitemaps.write\",\n description: \"Submit sitemaps.\",\n rules: [\n \"PUT /webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}\",\n ],\n },\n {\n name: \"sites.delete\",\n description: \"Remove sites from Search Console.\",\n rules: [\n \"DELETE /webmasters/v3/sites/{siteUrl}\",\n ],\n },\n {\n name: \"sites.read\",\n description: \"List and read Search Console sites.\",\n rules: [\n \"GET /webmasters/v3/sites\",\n \"GET /webmasters/v3/sites/{siteUrl}\",\n ],\n },\n {\n name: \"sites.write\",\n description: \"Add sites to Search Console.\",\n rules: [\n \"PUT /webmasters/v3/sites/{siteUrl}\",\n ],\n },\n {\n name: \"url-inspection.inspect\",\n description: \"Inspect URL indexing status.\",\n rules: [\n \"POST /v1/urlInspection/index:inspect\",\n ],\n },\n ],\n },\n ],\n} as const satisfies FirewallConfig;\n\nexport const googleSearchConsoleDefaultAllowed: ReadonlyArray<\n PermissionNamesOf<typeof googleSearchConsoleFirewall>\n> = [\n \"mobile-friendly-tests.run\",\n \"search-analytics.query\",\n \"sitemaps.read\",\n \"sites.read\",\n \"url-inspection.inspect\",\n];\n\n\nexport const googleSearchConsoleDefaultUnknownPolicy = \"deny\" satisfies FirewallPolicyValue;\n\n\nexport const googleSearchConsoleCategories: Record<\n PermissionNamesOf<typeof googleSearchConsoleFirewall>,\n string\n> = {\n // — URL Inspection (1) —\n \"url-inspection.inspect\": \"URL Inspection\",\n // — URL Testing (1) —\n \"mobile-friendly-tests.run\": \"URL Testing\",\n // — Sites (3) —\n \"sites.read\": \"Sites\",\n \"sites.write\": \"Sites\",\n \"sites.delete\": \"Sites\",\n // — Search Analytics (1) —\n \"search-analytics.query\": \"Search Analytics\",\n // — Sitemaps (3) —\n \"sitemaps.read\": \"Sitemaps\",\n \"sitemaps.write\": \"Sitemaps\",\n \"sitemaps.delete\": \"Sitemaps\",\n};\n\nexport const googleSearchConsoleCategoryOrder = [\"URL Inspection\", \"URL Testing\", \"Sites\", \"Search Analytics\", \"Sitemaps\"] as const;\n"],"mappings":";;;;;;;;AAAA;AASO,IAAM,8BAA8B;AAAA,EACzC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,cAAc;AAAA,IACZ,6BAA6B;AAAA,EAC/B;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,oCAET;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,0CAA0C;AAGhD,IAAM,gCAGT;AAAA;AAAA,EAEF,0BAA0B;AAAA;AAAA,EAE1B,6BAA6B;AAAA;AAAA,EAE7B,cAAc;AAAA,EACd,eAAe;AAAA,EACf,gBAAgB;AAAA;AAAA,EAEhB,0BAA0B;AAAA;AAAA,EAE1B,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,mBAAmB;AACrB;AAEO,IAAM,mCAAmC,CAAC,kBAAkB,eAAe,SAAS,oBAAoB,UAAU;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/connectors/src/firewalls/google-sheets.generated.ts"],"sourcesContent":["// Auto-generated from Google's Sheets Discovery API and vm0's Sheets permission manifest.\n// Source: https://sheets.googleapis.com/$discovery/rest?version=v4\n// Regenerate: cd turbo && pnpm -F @vm0/firewalls-generator generate:google-sheets\n//\n// DO NOT EDIT THIS FILE MANUALLY.\n\nimport type { FirewallConfig, FirewallPolicyValue } from \"../firewall-types\";\nimport type { PermissionNamesOf } from \"./index\";\n\nexport const googleSheetsFirewall = {\n name: \"google-sheets\",\n description: \"Google Sheets API\",\n placeholders: {\n GOOGLE_SHEETS_TOKEN: \"ya29.A0CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSa\",\n },\n apis: [\n {\n base: \"https://sheets.googleapis.com\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.GOOGLE_SHEETS_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"developer-metadata.read\",\n description: \"Read Google Sheets developer metadata.\",\n rules: [\n \"GET /v4/spreadsheets/{spreadsheetId}/developerMetadata/{metadataId}\",\n ],\n },\n {\n name: \"developer-metadata.search\",\n description: \"Search Google Sheets developer metadata.\",\n rules: [\n \"POST /v4/spreadsheets/{spreadsheetId}/developerMetadata:search\",\n ],\n },\n {\n name: \"sheets.copy\",\n description: \"Copy sheets between Google Sheets spreadsheets.\",\n rules: [\n \"POST /v4/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo\",\n ],\n },\n {\n name: \"spreadsheets.create\",\n description: \"Create Google Sheets spreadsheets.\",\n rules: [\n \"POST /v4/spreadsheets\",\n ],\n },\n {\n name: \"spreadsheets.read\",\n description: \"Read Google Sheets spreadsheet metadata and grid data.\",\n rules: [\n \"GET /v4/spreadsheets/{spreadsheetId}\",\n ],\n },\n {\n name: \"spreadsheets.read-by-data-filter\",\n description: \"Read Google Sheets spreadsheets by data filter.\",\n rules: [\n \"POST /v4/spreadsheets/{spreadsheetId}:getByDataFilter\",\n ],\n },\n {\n name: \"spreadsheets.write\",\n description: \"Apply batch updates to Google Sheets spreadsheets.\",\n rules: [\n \"POST /v4/spreadsheets/{spreadsheetId}:batchUpdate\",\n ],\n },\n {\n name: \"values.clear\",\n description: \"Clear Google Sheets cell values.\",\n rules: [\n \"POST /v4/spreadsheets/{spreadsheetId}/values/{range}:clear\",\n \"POST /v4/spreadsheets/{spreadsheetId}/values:batchClear\",\n \"POST /v4/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter\",\n ],\n },\n {\n name: \"values.read\",\n description: \"Read Google Sheets cell values.\",\n rules: [\n \"GET /v4/spreadsheets/{spreadsheetId}/values/{range}\",\n \"GET /v4/spreadsheets/{spreadsheetId}/values:batchGet\",\n ],\n },\n {\n name: \"values.read-by-data-filter\",\n description: \"Read Google Sheets cell values by data filter.\",\n rules: [\n \"POST /v4/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter\",\n ],\n },\n {\n name: \"values.write\",\n description: \"Append and update Google Sheets cell values.\",\n rules: [\n \"PUT /v4/spreadsheets/{spreadsheetId}/values/{range}\",\n \"POST /v4/spreadsheets/{spreadsheetId}/values/{range}:append\",\n \"POST /v4/spreadsheets/{spreadsheetId}/values:batchUpdate\",\n \"POST /v4/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter\",\n ],\n },\n ],\n },\n ],\n} as const satisfies FirewallConfig;\n\nexport const googleSheetsDefaultAllowed: ReadonlyArray<\n PermissionNamesOf<typeof googleSheetsFirewall>\n> = [\n \"developer-metadata.read\",\n \"developer-metadata.search\",\n \"spreadsheets.read\",\n \"spreadsheets.read-by-data-filter\",\n \"values.read\",\n \"values.read-by-data-filter\",\n];\n\n\nexport const googleSheetsDefaultUnknownPolicy = \"deny\" satisfies FirewallPolicyValue;\n\n\nexport const googleSheetsCategories: Record<\n PermissionNamesOf<typeof googleSheetsFirewall>,\n string\n> = {\n // — Spreadsheets (4) —\n \"spreadsheets.create\": \"Spreadsheets\",\n \"spreadsheets.read\": \"Spreadsheets\",\n \"spreadsheets.read-by-data-filter\": \"Spreadsheets\",\n \"spreadsheets.write\": \"Spreadsheets\",\n // — Values (4) —\n \"values.read\": \"Values\",\n \"values.read-by-data-filter\": \"Values\",\n \"values.write\": \"Values\",\n \"values.clear\": \"Values\",\n // — Developer Metadata (2) —\n \"developer-metadata.read\": \"Developer Metadata\",\n \"developer-metadata.search\": \"Developer Metadata\",\n // — Sheets (1) —\n \"sheets.copy\": \"Sheets\",\n};\n\nexport const googleSheetsCategoryOrder = [\"Spreadsheets\", \"Values\", \"Developer Metadata\", \"Sheets\"] as const;\n"],"mappings":";;;;;;;;AAAA;AASO,IAAM,uBAAuB;AAAA,EAClC,MAAM;AAAA,EACN,aAAa;AAAA,EACb,cAAc;AAAA,IACZ,qBAAqB;AAAA,EACvB;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,6BAET;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,mCAAmC;AAGzC,IAAM,yBAGT;AAAA;AAAA,EAEF,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,oCAAoC;AAAA,EACpC,sBAAsB;AAAA;AAAA,EAEtB,eAAe;AAAA,EACf,8BAA8B;AAAA,EAC9B,gBAAgB;AAAA,EAChB,gBAAgB;AAAA;AAAA,EAEhB,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA;AAAA,EAE7B,eAAe;AACjB;AAEO,IAAM,4BAA4B,CAAC,gBAAgB,UAAU,sBAAsB,QAAQ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/connectors/src/firewalls/maskdb.generated.ts"],"sourcesContent":["// Auto-generated from maskdb API docs.\n// Source: https://github.com/e7h4n/maskdb\n// Regenerate: cd turbo && pnpm -F @vm0/firewalls-generator generate:maskdb\n//\n// DO NOT EDIT THIS FILE MANUALLY.\n\nimport type { FirewallConfig, FirewallPolicyValue } from \"../firewall-types\";\nimport type { PermissionNamesOf } from \"./index\";\n\nexport const maskdbFirewall = {\n name: \"maskdb\",\n description: \"maskdb\",\n placeholders: {\n MASKDB_TOKEN: \"mk_CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLoc\",\n },\n apis: [\n {\n base: \"https://api.maskdb.ai\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.MASKDB_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"db:query\",\n description: \"Run read-only structured queries (results masked).\",\n rules: [\n \"POST /v1/databases/{db}/query\",\n ],\n },\n {\n name: \"db:metadata\",\n description: \"List databases, tables, masked schema, and indexes.\",\n rules: [\n \"GET /v1/databases\",\n \"GET /v1/databases/{db}/tables\",\n \"GET /v1/databases/{db}/tables/{table}/schema\",\n \"GET /v1/databases/{db}/tables/{table}/indexes\",\n ],\n },\n {\n name: \"db:manage\",\n description: \"Register/remove databases and read the raw (unmasked) schema.\",\n rules: [\n \"POST /v1/databases\",\n \"DELETE /v1/databases/{db}\",\n \"GET /v1/databases/{db}/schema\",\n ],\n },\n {\n name: \"policy:read\",\n description: \"Read a database's masking policy.\",\n rules: [\n \"GET /v1/databases/{db}/policy\",\n ],\n },\n {\n name: \"policy:write\",\n description: \"Change a database's masking policy (can unmask columns).\",\n rules: [\n \"PUT /v1/databases/{db}/policy\",\n ],\n },\n {\n name: \"token:mint\",\n description: \"Mint child tokens (scoped subsets).\",\n rules: [\n \"POST /v1/tokens\",\n ],\n },\n {\n name: \"token:read\",\n description: \"List tokens.\",\n rules: [\n \"GET /v1/tokens\",\n ],\n },\n {\n name: \"token:revoke\",\n description: \"Revoke tokens.\",\n rules: [\n \"DELETE /v1/tokens/{id}\",\n ],\n },\n ],\n },\n ],\n} as const satisfies FirewallConfig;\n\n\nexport const maskdbDefaultAllowed: ReadonlyArray<\n PermissionNamesOf<typeof maskdbFirewall>\n> = [\n \"db:metadata\",\n \"db:query\",\n \"policy:read\",\n];\n\n\nexport const maskdbDefaultUnknownPolicy = \"deny\" satisfies FirewallPolicyValue;\n"],"mappings":";;;;;;;;AAAA;AASO,IAAM,iBAAiB;AAAA,EAC5B,MAAM;AAAA,EACN,aAAa;AAAA,EACb,cAAc;AAAA,IACZ,cAAc;AAAA,EAChB;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,SAAS;AAAA,UACP,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MACA,aAAa;AAAA,QACX;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,aAAa;AAAA,UACb,OAAO;AAAA,YACL;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAGO,IAAM,uBAET;AAAA,EACF;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,6BAA6B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/connectors/src/firewalls/slack.generated.ts"],"sourcesContent":["// Auto-generated from Slack API method-to-scope mappings.\n// Source: slack-ruby/slack-api-ref (auto-synced daily from docs.slack.dev)\n// Regenerate: cd turbo && pnpm -F @vm0/firewalls-generator generate:slack\n//\n// DO NOT EDIT THIS FILE MANUALLY.\n\nimport type { FirewallConfig } from \"../firewall-types\";\nimport type { PermissionNamesOf } from \"./index\";\n\nexport const slackFirewall = {\n name: \"slack\",\n description: \"Slack API\",\n placeholders: {\n SLACK_TOKEN: \"xoxb-100100100100-1001001001001-CoffeeSafeLocalCoffeeSaf\",\n },\n apis: [\n {\n base: \"https://slack.com/api\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.SLACK_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"admin\",\n description: \"Administer a workspace (access audit logs, SCIM API, and billing info)\",\n rules: [\n \"POST /admin.audit.anomaly.allow.getItem\",\n \"POST /admin.audit.anomaly.allow.updateItem\",\n \"GET /team.accessLogs\",\n \"GET /team.billableInfo\",\n \"GET /team.integrationLogs\",\n ],\n },\n {\n name: \"admin.analytics:read\",\n description: \"Access workspace analytics data\",\n rules: [\n \"GET /admin.analytics.getFile\",\n \"GET /admin.analytics.messages.activity\",\n \"GET /admin.analytics.messages.metadata\",\n ],\n },\n {\n name: \"admin.app_activities:read\",\n description: \"View app activities within an Enterprise organization\",\n rules: [\n \"POST /admin.apps.activities.list\",\n ],\n },\n {\n name: \"admin.apps:read\",\n description: \"View apps and app requests in an Enterprise organization\",\n rules: [\n \"GET /admin.apps.approved.list\",\n \"POST /admin.apps.config.lookup\",\n \"GET /admin.apps.requests.list\",\n \"GET /admin.apps.restricted.list\",\n ],\n },\n {\n name: \"admin.apps:write\",\n description: \"Manage apps and app requests in an Enterprise organization\",\n rules: [\n \"POST /admin.apps.approve\",\n \"POST /admin.apps.clearResolution\",\n \"POST /admin.apps.config.set\",\n \"POST /admin.apps.requests.cancel\",\n \"POST /admin.apps.restrict\",\n \"POST /admin.apps.uninstall\",\n ],\n },\n {\n name: \"admin.barriers:read\",\n description: \"Read information barriers in an Enterprise organization\",\n rules: [\n \"GET /admin.barriers.list\",\n ],\n },\n {\n name: \"admin.barriers:write\",\n description: \"Manage information barriers in an Enterprise organization\",\n rules: [\n \"POST /admin.barriers.create\",\n \"POST /admin.barriers.delete\",\n \"POST /admin.barriers.update\",\n ],\n },\n {\n name: \"admin.conversations:manage_objects\",\n description: \"Manage channel objects in an Enterprise organization\",\n rules: [\n \"POST /admin.conversations.createForObjects\",\n \"POST /admin.conversations.linkObjects\",\n \"POST /admin.conversations.unlinkObjects\",\n ],\n },\n {\n name: \"admin.conversations:read\",\n description: \"View channels and their settings in an Enterprise organization\",\n rules: [\n \"POST /admin.conversations.ekm.listOriginalConnectedChannelInfo\",\n \"POST /admin.conversations.getConversationPrefs\",\n \"POST /admin.conversations.getCustomRetention\",\n \"POST /admin.conversations.getTeams\",\n \"POST /admin.conversations.lookup\",\n \"GET /admin.conversations.restrictAccess.listGroups\",\n \"POST /admin.conversations.search\",\n ],\n },\n {\n name: \"admin.conversations:write\",\n description: \"Set channel settings in an Enterprise organization\",\n rules: [\n \"POST /admin.conversations.archive\",\n \"POST /admin.conversations.bulkArchive\",\n \"POST /admin.conversations.bulkDelete\",\n \"POST /admin.conversations.bulkMove\",\n \"GET /admin.conversations.bulkSetExcludeFromSlackAi\",\n \"POST /admin.conversations.convertToPrivate\",\n \"POST /admin.conversations.convertToPublic\",\n \"POST /admin.conversations.create\",\n \"POST /admin.conversations.delete\",\n \"POST /admin.conversations.disconnectShared\",\n \"POST /admin.conversations.invite\",\n \"POST /admin.conversations.removeCustomRetention\",\n \"POST /admin.conversations.rename\",\n \"GET /admin.conversations.restrictAccess.addGroup\",\n \"GET /admin.conversations.restrictAccess.removeGroup\",\n \"POST /admin.conversations.setConversationPrefs\",\n \"POST /admin.conversations.setCustomRetention\",\n \"POST /admin.conversations.setTeams\",\n \"POST /admin.conversations.unarchive\",\n ],\n },\n {\n name: \"admin.invites:read\",\n description: \"View workspace invite requests in an Enterprise organization\",\n rules: [\n \"POST /admin.inviteRequests.approved.list\",\n \"POST /admin.inviteRequests.denied.list\",\n \"POST /admin.inviteRequests.list\",\n ],\n },\n {\n name: \"admin.invites:write\",\n description: \"Manage workspace invite requests in an Enterprise organization\",\n rules: [\n \"POST /admin.inviteRequests.approve\",\n \"POST /admin.inviteRequests.deny\",\n ],\n },\n {\n name: \"admin.roles:read\",\n description: \"View role assignments in an Enterprise organization\",\n rules: [\n \"GET /admin.roles.listAssignments\",\n ],\n },\n {\n name: \"admin.roles:write\",\n description: \"Manage role assignments in an Enterprise organization\",\n rules: [\n \"POST /admin.roles.addAssignments\",\n \"POST /admin.roles.removeAssignments\",\n ],\n },\n {\n name: \"admin.teams:read\",\n description: \"View workspace settings in an Enterprise organization\",\n rules: [\n \"GET /admin.emoji.list\",\n \"GET /admin.teams.admins.list\",\n \"POST /admin.teams.list\",\n \"GET /admin.teams.owners.list\",\n \"POST /admin.teams.settings.info\",\n ],\n },\n {\n name: \"admin.teams:write\",\n description: \"Manage workspace settings in an Enterprise organization\",\n rules: [\n \"GET /admin.emoji.add\",\n \"GET /admin.emoji.addAlias\",\n \"GET /admin.emoji.remove\",\n \"GET /admin.emoji.rename\",\n \"POST /admin.teams.create\",\n \"GET /admin.teams.settings.setDefaultChannels\",\n \"POST /admin.teams.settings.setDescription\",\n \"POST /admin.teams.settings.setDiscoverability\",\n \"GET /admin.teams.settings.setIcon\",\n \"POST /admin.teams.settings.setName\",\n \"POST /admin.usergroups.addTeams\",\n ],\n },\n {\n name: \"admin.usergroups:read\",\n description: \"View user groups in an Enterprise organization\",\n rules: [\n \"POST /admin.usergroups.listChannels\",\n ],\n },\n {\n name: \"admin.usergroups:write\",\n description: \"Manage user groups in an Enterprise organization\",\n rules: [\n \"POST /admin.usergroups.addChannels\",\n \"POST /admin.usergroups.removeChannels\",\n ],\n },\n {\n name: \"admin.users:read\",\n description: \"View users in an Enterprise organization\",\n rules: [\n \"POST /admin.auth.policy.getEntities\",\n \"GET /admin.users.getExpiration\",\n \"POST /admin.users.list\",\n \"POST /admin.users.session.getSettings\",\n \"POST /admin.users.session.list\",\n \"POST /admin.users.unsupportedVersions.export\",\n ],\n },\n {\n name: \"admin.users:write\",\n description: \"Manage users in an Enterprise organization\",\n rules: [\n \"POST /admin.auth.policy.assignEntities\",\n \"POST /admin.auth.policy.removeEntities\",\n \"POST /admin.users.assign\",\n \"POST /admin.users.invite\",\n \"POST /admin.users.remove\",\n \"POST /admin.users.session.clearSettings\",\n \"POST /admin.users.session.invalidate\",\n \"POST /admin.users.session.reset\",\n \"POST /admin.users.session.resetBulk\",\n \"POST /admin.users.session.setSettings\",\n \"POST /admin.users.setAdmin\",\n \"POST /admin.users.setExpiration\",\n \"POST /admin.users.setOwner\",\n \"POST /admin.users.setRegular\",\n ],\n },\n {\n name: \"admin.workflows:read\",\n description: \"View workflow builder workflows in an Enterprise organization\",\n rules: [\n \"POST /admin.functions.list\",\n \"POST /admin.functions.permissions.lookup\",\n \"POST /admin.functions.permissions.set\",\n \"POST /admin.workflows.permissions.lookup\",\n \"POST /admin.workflows.search\",\n ],\n },\n {\n name: \"admin.workflows:write\",\n description: \"Manage workflow builder workflows in an Enterprise organization\",\n rules: [\n \"POST /admin.workflows.collaborators.add\",\n \"POST /admin.workflows.collaborators.remove\",\n \"POST /admin.workflows.unpublish\",\n ],\n },\n {\n name: \"app_configurations:read\",\n description: \"Read app configuration info via App Manifest APIs\",\n rules: [\n \"POST /apps.manifest.export\",\n \"POST /functions.distributions.permissions.list\",\n ],\n },\n {\n name: \"app_configurations:write\",\n description: \"Write app configuration info and create apps via App Manifest APIs\",\n rules: [\n \"POST /apps.icon.set\",\n \"POST /apps.manifest.create\",\n \"POST /apps.manifest.delete\",\n \"POST /apps.manifest.update\",\n \"POST /apps.manifest.validate\",\n \"POST /functions.distributions.permissions.add\",\n \"POST /functions.distributions.permissions.remove\",\n \"POST /functions.distributions.permissions.set\",\n ],\n },\n {\n name: \"apps\",\n description: \"Manage Slack app collaborators\",\n rules: [\n \"POST /developer.apps.owners.add\",\n \"POST /developer.apps.owners.list\",\n \"POST /developer.apps.owners.remove\",\n ],\n },\n {\n name: \"assistant.search:read\",\n description: \"Search assistant context across Slack content\",\n rules: [\n \"POST /assistant.search.context\",\n ],\n },\n {\n name: \"assistant:write\",\n description: \"Act as an AI Assistant app\",\n rules: [\n \"POST /assistant.threads.setSuggestedPrompts\",\n \"POST /assistant.threads.setTitle\",\n ],\n },\n {\n name: \"bookmarks:read\",\n description: \"List bookmarks in channels\",\n rules: [\n \"POST /bookmarks.list\",\n \"POST /workflows.featured.list\",\n ],\n },\n {\n name: \"bookmarks:write\",\n description: \"Create, edit, and remove bookmarks\",\n rules: [\n \"POST /bookmarks.add\",\n \"POST /bookmarks.edit\",\n \"POST /bookmarks.remove\",\n \"POST /workflows.featured.add\",\n \"POST /workflows.featured.remove\",\n \"POST /workflows.featured.set\",\n ],\n },\n {\n name: \"calls:read\",\n description: \"View information about ongoing and past calls\",\n rules: [\n \"POST /calls.info\",\n ],\n },\n {\n name: \"calls:write\",\n description: \"Start and manage calls in a workspace\",\n rules: [\n \"POST /calls.add\",\n \"POST /calls.end\",\n \"POST /calls.participants.add\",\n \"POST /calls.participants.remove\",\n \"POST /calls.update\",\n ],\n },\n {\n name: \"canvases:read\",\n description: \"Access contents of canvases created inside Slack\",\n rules: [\n \"POST /canvases.sections.lookup\",\n ],\n },\n {\n name: \"canvases:write\",\n description: \"Create and edit canvases\",\n rules: [\n \"POST /canvases.access.delete\",\n \"POST /canvases.access.set\",\n \"POST /canvases.create\",\n \"POST /canvases.delete\",\n \"POST /canvases.edit\",\n \"POST /conversations.canvases.create\",\n ],\n },\n {\n name: \"channels:join\",\n description: \"Join public channels in a workspace\",\n rules: [\n \"POST /conversations.join\",\n ],\n },\n {\n name: \"chat:write\",\n description: \"Send messages as the app\",\n rules: [\n \"POST /assistant.threads.setStatus\",\n \"POST /chat.appendStream\",\n \"POST /chat.delete\",\n \"POST /chat.deleteScheduledMessage\",\n \"POST /chat.meMessage\",\n \"POST /chat.postEphemeral\",\n \"POST /chat.postMessage\",\n \"POST /chat.scheduleMessage\",\n \"POST /chat.startStream\",\n \"POST /chat.stopStream\",\n \"POST /chat.update\",\n ],\n },\n {\n name: \"client\",\n description: \"Full access to all client features (legacy, deprecated)\",\n rules: [\n \"POST /admin.workflows.triggers.types.permissions.lookup\",\n \"POST /admin.workflows.triggers.types.permissions.set\",\n ],\n },\n {\n name: \"conversations.connect:manage\",\n description: \"Manage Slack Connect channels (approve or decline invitations)\",\n rules: [\n \"POST /conversations.approveSharedInvite\",\n \"GET /conversations.declineSharedInvite\",\n \"POST /conversations.externalInvitePermissions.set\",\n \"POST /conversations.listConnectInvites\",\n \"POST /conversations.requestSharedInvite.approve\",\n \"POST /conversations.requestSharedInvite.deny\",\n \"POST /conversations.requestSharedInvite.list\",\n \"POST /team.externalTeams.disconnect\",\n ],\n },\n {\n name: \"conversations.connect:read\",\n description: \"View Slack Connect external teams and discoverable contacts\",\n rules: [\n \"GET /team.externalTeams.list\",\n \"POST /users.discoverableContacts.lookup\",\n ],\n },\n {\n name: \"conversations.connect:write\",\n description: \"Create Slack Connect invitations and accept invitations\",\n rules: [\n \"POST /conversations.acceptSharedInvite\",\n \"POST /conversations.inviteShared\",\n ],\n },\n {\n name: \"conversations:history\",\n description: \"View messages and replies across Slack conversation types\",\n rules: [\n \"GET /conversations.history\",\n \"GET /conversations.replies\",\n ],\n },\n {\n name: \"conversations:read\",\n description: \"View basic information across Slack conversation types\",\n rules: [\n \"GET /conversations.info\",\n \"GET /conversations.list\",\n \"GET /conversations.members\",\n \"GET /users.conversations\",\n ],\n },\n {\n name: \"conversations:write\",\n description: \"Manage Slack conversations across conversation types\",\n rules: [\n \"POST /conversations.archive\",\n \"POST /conversations.close\",\n \"POST /conversations.create\",\n \"POST /conversations.kick\",\n \"POST /conversations.leave\",\n \"POST /conversations.mark\",\n \"POST /conversations.open\",\n \"POST /conversations.rename\",\n \"POST /conversations.unarchive\",\n ],\n },\n {\n name: \"conversations:write.invites\",\n description: \"Invite members across Slack conversation types\",\n rules: [\n \"POST /conversations.invite\",\n ],\n },\n {\n name: \"conversations:write.topic\",\n description: \"Set topics and purposes across Slack conversation types\",\n rules: [\n \"POST /conversations.setPurpose\",\n \"POST /conversations.setTopic\",\n ],\n },\n {\n name: \"datastore:read\",\n description: \"Read data from Slack's hosted datastore\",\n rules: [\n \"POST /apps.datastore.bulkGet\",\n \"POST /apps.datastore.count\",\n \"POST /apps.datastore.get\",\n \"POST /apps.datastore.query\",\n ],\n },\n {\n name: \"datastore:write\",\n description: \"Write data to Slack's hosted datastore\",\n rules: [\n \"POST /apps.datastore.bulkDelete\",\n \"POST /apps.datastore.bulkPut\",\n \"POST /apps.datastore.delete\",\n \"POST /apps.datastore.put\",\n \"POST /apps.datastore.update\",\n ],\n },\n {\n name: \"dnd:read\",\n description: \"View Do Not Disturb settings for people in a workspace\",\n rules: [\n \"GET /dnd.info\",\n \"GET /dnd.teamInfo\",\n ],\n },\n {\n name: \"dnd:write\",\n description: \"Edit a user's Do Not Disturb settings\",\n rules: [\n \"POST /dnd.endDnd\",\n \"POST /dnd.endSnooze\",\n \"POST /dnd.setSnooze\",\n ],\n },\n {\n name: \"emoji:read\",\n description: \"View custom emoji in a workspace\",\n rules: [\n \"GET /emoji.list\",\n ],\n },\n {\n name: \"files:read\",\n description: \"View files shared in channels and conversations that the app has been added to\",\n rules: [\n \"GET /files.info\",\n \"GET /files.list\",\n ],\n },\n {\n name: \"files:write\",\n description: \"Upload, edit, and delete files as the app\",\n rules: [\n \"POST /files.comments.delete\",\n \"POST /files.completeUploadExternal\",\n \"POST /files.delete\",\n \"POST /files.getUploadURLExternal\",\n \"POST /files.revokePublicURL\",\n \"POST /files.sharedPublicURL\",\n \"POST /files.upload\",\n ],\n },\n {\n name: \"hosting:read\",\n description: \"Read hosting environment information\",\n rules: [\n \"POST /apps.activities.list\",\n ],\n },\n {\n name: \"identity:read\",\n description: \"View a user's Slack identity (Sign in with Slack)\",\n rules: [\n \"GET /users.identity\",\n ],\n },\n {\n name: \"links:write\",\n description: \"Show previews of URLs in messages\",\n rules: [\n \"POST /chat.unfurl\",\n ],\n },\n {\n name: \"lists:read\",\n description: \"View lists in a workspace\",\n rules: [\n \"POST /slackLists.download.get\",\n \"POST /slackLists.download.start\",\n \"POST /slackLists.items.info\",\n \"POST /slackLists.items.list\",\n ],\n },\n {\n name: \"lists:write\",\n description: \"Create and manage lists in a workspace\",\n rules: [\n \"POST /slackLists.access.delete\",\n \"POST /slackLists.access.set\",\n \"POST /slackLists.create\",\n \"POST /slackLists.items.create\",\n \"POST /slackLists.items.delete\",\n \"POST /slackLists.items.deleteMultiple\",\n \"POST /slackLists.items.update\",\n \"POST /slackLists.update\",\n ],\n },\n {\n name: \"openid\",\n description: \"View information about a user's identity (Sign in with Slack)\",\n rules: [\n \"POST /openid.connect.userInfo\",\n ],\n },\n {\n name: \"pins:read\",\n description: \"View pinned content in channels and conversations that the app has been added to\",\n rules: [\n \"GET /pins.list\",\n ],\n },\n {\n name: \"pins:write\",\n description: \"Add and remove pinned messages and files\",\n rules: [\n \"POST /pins.add\",\n \"POST /pins.remove\",\n ],\n },\n {\n name: \"reactions:read\",\n description: \"View emoji reactions and their associated content in channels and conversations\",\n rules: [\n \"GET /reactions.get\",\n \"GET /reactions.list\",\n ],\n },\n {\n name: \"reactions:write\",\n description: \"Add and edit emoji reactions\",\n rules: [\n \"POST /reactions.add\",\n \"POST /reactions.remove\",\n ],\n },\n {\n name: \"reminders:read\",\n description: \"View reminders created by the app\",\n rules: [\n \"GET /reminders.info\",\n \"GET /reminders.list\",\n ],\n },\n {\n name: \"reminders:write\",\n description: \"Add, remove, or complete reminders\",\n rules: [\n \"POST /reminders.add\",\n \"POST /reminders.complete\",\n \"POST /reminders.delete\",\n ],\n },\n {\n name: \"remote_files:read\",\n description: \"View remote files added by the app in a workspace\",\n rules: [\n \"GET /files.remote.info\",\n \"GET /files.remote.list\",\n ],\n },\n {\n name: \"remote_files:share\",\n description: \"Share remote files on a user's behalf\",\n rules: [\n \"GET /files.remote.share\",\n ],\n },\n {\n name: \"remote_files:write\",\n description: \"Add, edit, and delete remote files on a user's behalf\",\n rules: [\n \"POST /files.remote.add\",\n \"POST /files.remote.remove\",\n \"POST /files.remote.update\",\n ],\n },\n {\n name: \"search:read\",\n description: \"Search a workspace's content\",\n rules: [\n \"GET /search.all\",\n \"GET /search.files\",\n \"GET /search.messages\",\n ],\n },\n {\n name: \"search:read.public\",\n description: \"Search public channels\",\n rules: [\n \"POST /assistant.search.info\",\n ],\n },\n {\n name: \"stars:read\",\n description: \"View starred messages and files\",\n rules: [\n \"GET /stars.list\",\n ],\n },\n {\n name: \"stars:write\",\n description: \"Add or remove stars (saved items)\",\n rules: [\n \"POST /stars.add\",\n \"POST /stars.remove\",\n ],\n },\n {\n name: \"team.billing:read\",\n description: \"View billing information for a workspace\",\n rules: [\n \"POST /team.billing.info\",\n ],\n },\n {\n name: \"team.preferences:read\",\n description: \"View team preferences\",\n rules: [\n \"POST /team.preferences.list\",\n ],\n },\n {\n name: \"team:read\",\n description: \"View the name, email domain, and icon for workspaces the app is connected to\",\n rules: [\n \"GET /team.info\",\n ],\n },\n {\n name: \"tokens.basic\",\n description: \"Execute methods with no required scope\",\n rules: [\n \"GET /migration.exchange\",\n ],\n },\n {\n name: \"triggers:read\",\n description: \"View triggers in a workspace\",\n rules: [\n \"POST /workflows.triggers.permissions.list\",\n ],\n },\n {\n name: \"triggers:write\",\n description: \"Create and manage triggers in a workspace\",\n rules: [\n \"POST /workflows.triggers.permissions.add\",\n \"POST /workflows.triggers.permissions.remove\",\n \"POST /workflows.triggers.permissions.set\",\n ],\n },\n {\n name: \"usergroups:read\",\n description: \"View user groups in a workspace\",\n rules: [\n \"GET /usergroups.list\",\n \"GET /usergroups.users.list\",\n ],\n },\n {\n name: \"usergroups:write\",\n description: \"Create and manage user groups\",\n rules: [\n \"POST /usergroups.create\",\n \"POST /usergroups.disable\",\n \"POST /usergroups.enable\",\n \"POST /usergroups.update\",\n \"POST /usergroups.users.update\",\n ],\n },\n {\n name: \"users.profile:read\",\n description: \"View profile details of people in a workspace\",\n rules: [\n \"GET /team.profile.get\",\n \"GET /users.profile.get\",\n ],\n },\n {\n name: \"users.profile:write\",\n description: \"Edit a user's profile information and status\",\n rules: [\n \"GET /users.deletePhoto\",\n \"POST /users.profile.set\",\n \"POST /users.setPhoto\",\n ],\n },\n {\n name: \"users:read\",\n description: \"View people in a workspace\",\n rules: [\n \"GET /bots.info\",\n \"GET /users.getPresence\",\n \"GET /users.info\",\n \"GET /users.list\",\n ],\n },\n {\n name: \"users:read.email\",\n description: \"View email addresses of people in a workspace\",\n rules: [\n \"GET /users.lookupByEmail\",\n ],\n },\n {\n name: \"users:write\",\n description: \"Set a user's presence status\",\n rules: [\n \"POST /apps.user.connection.update\",\n \"POST /users.setActive\",\n \"POST /users.setPresence\",\n ],\n },\n {\n name: \"no_scopes_required\",\n description: \"Methods that require a valid token but no specific scope\",\n rules: [\n \"POST /api.test\",\n \"POST /apps.auth.external.delete\",\n \"POST /apps.auth.external.get\",\n \"POST /apps.connections.open\",\n \"POST /apps.event.authorizations.list\",\n \"POST /apps.uninstall\",\n \"GET /auth.revoke\",\n \"POST /auth.teams.list\",\n \"POST /auth.test\",\n \"POST /blocks.validate\",\n \"GET /chat.getPermalink\",\n \"POST /chat.scheduledMessages.list\",\n \"POST /dialog.open\",\n \"POST /entity.presentDetails\",\n \"POST /functions.completeError\",\n \"POST /functions.completeSuccess\",\n \"POST /functions.workflows.steps.list\",\n \"POST /functions.workflows.steps.responses.export\",\n \"POST /oauth.access\",\n \"POST /oauth.v2.access\",\n \"POST /oauth.v2.exchange\",\n \"POST /oauth.v2.user.access\",\n \"POST /openid.connect.token\",\n \"GET /rtm.connect\",\n \"GET /rtm.start\",\n \"POST /tooling.tokens.rotate\",\n \"POST /views.open\",\n \"POST /views.publish\",\n \"POST /views.push\",\n \"POST /views.update\",\n ],\n },\n ],\n },\n {\n base: \"https://files.slack.com\",\n auth: {\n headers: {\n Authorization: \"Bearer ${{ secrets.SLACK_TOKEN }}\",\n },\n },\n permissions: [\n {\n name: \"files:read\",\n description: \"Download files from Slack\",\n rules: [\n \"GET /{path+}\",\n ],\n },\n ],\n },\n ],\n} as const satisfies FirewallConfig;\n\nexport const slackDefaultAllowed: ReadonlyArray<\n PermissionNamesOf<typeof slackFirewall>\n> = [\n \"bookmarks:read\",\n \"conversations.connect:read\",\n \"conversations:history\",\n \"conversations:read\",\n \"emoji:read\",\n \"pins:read\",\n \"reactions:read\",\n \"search:read\",\n \"team:read\",\n \"usergroups:read\",\n \"users.profile:read\",\n \"users:read\",\n];\n\n\nexport const slackCategories: Record<\n PermissionNamesOf<typeof slackFirewall>,\n string\n> = {\n // — Read (29) —\n \"app_configurations:read\": \"Read\",\n \"assistant.search:read\": \"Read\",\n \"bookmarks:read\": \"Read\",\n \"calls:read\": \"Read\",\n \"canvases:read\": \"Read\",\n \"conversations.connect:read\": \"Read\",\n \"conversations:history\": \"Read\",\n \"conversations:read\": \"Read\",\n \"datastore:read\": \"Read\",\n \"dnd:read\": \"Read\",\n \"emoji:read\": \"Read\",\n \"files:read\": \"Read\",\n \"hosting:read\": \"Read\",\n \"identity:read\": \"Read\",\n \"lists:read\": \"Read\",\n \"pins:read\": \"Read\",\n \"reactions:read\": \"Read\",\n \"reminders:read\": \"Read\",\n \"remote_files:read\": \"Read\",\n \"search:read\": \"Read\",\n \"search:read.public\": \"Read\",\n \"stars:read\": \"Read\",\n \"team.preferences:read\": \"Read\",\n \"team:read\": \"Read\",\n \"triggers:read\": \"Read\",\n \"usergroups:read\": \"Read\",\n \"users.profile:read\": \"Read\",\n \"users:read\": \"Read\",\n \"users:read.email\": \"Read\",\n // — Write (20) —\n \"app_configurations:write\": \"Write\",\n \"bookmarks:write\": \"Write\",\n \"calls:write\": \"Write\",\n \"canvases:write\": \"Write\",\n \"conversations:write\": \"Write\",\n \"conversations:write.invites\": \"Write\",\n \"conversations:write.topic\": \"Write\",\n \"datastore:write\": \"Write\",\n \"dnd:write\": \"Write\",\n \"links:write\": \"Write\",\n \"lists:write\": \"Write\",\n \"pins:write\": \"Write\",\n \"reactions:write\": \"Write\",\n \"reminders:write\": \"Write\",\n \"remote_files:write\": \"Write\",\n \"stars:write\": \"Write\",\n \"triggers:write\": \"Write\",\n \"usergroups:write\": \"Write\",\n \"users.profile:write\": \"Write\",\n \"users:write\": \"Write\",\n // — Send (5) —\n \"assistant:write\": \"Send\",\n \"chat:write\": \"Send\",\n \"conversations.connect:write\": \"Send\",\n \"files:write\": \"Send\",\n \"remote_files:share\": \"Send\",\n // — Admin (25) —\n \"admin\": \"Admin\",\n \"admin.analytics:read\": \"Admin\",\n \"admin.app_activities:read\": \"Admin\",\n \"admin.apps:read\": \"Admin\",\n \"admin.apps:write\": \"Admin\",\n \"admin.barriers:read\": \"Admin\",\n \"admin.barriers:write\": \"Admin\",\n \"admin.conversations:manage_objects\": \"Admin\",\n \"admin.conversations:read\": \"Admin\",\n \"admin.conversations:write\": \"Admin\",\n \"admin.invites:read\": \"Admin\",\n \"admin.invites:write\": \"Admin\",\n \"admin.roles:read\": \"Admin\",\n \"admin.roles:write\": \"Admin\",\n \"admin.teams:read\": \"Admin\",\n \"admin.teams:write\": \"Admin\",\n \"admin.usergroups:read\": \"Admin\",\n \"admin.usergroups:write\": \"Admin\",\n \"admin.users:read\": \"Admin\",\n \"admin.users:write\": \"Admin\",\n \"admin.workflows:read\": \"Admin\",\n \"admin.workflows:write\": \"Admin\",\n \"apps\": \"Admin\",\n \"conversations.connect:manage\": \"Admin\",\n \"team.billing:read\": \"Admin\",\n // — Misc (5) —\n \"channels:join\": \"Misc\",\n \"client\": \"Misc\",\n \"openid\": \"Misc\",\n \"tokens.basic\": \"Misc\",\n \"no_scopes_required\": \"Misc\",\n};\n\nexport const slackCategoryOrder = [\"Read\", \"Write\", \"Send\", \"Admin\", \"Misc\"] as const;\n"],"mappings":"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","names":[]}