abstra 3.24.1__py3-none-any.whl → 3.24.3__py3-none-any.whl
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.
- {abstra-3.24.1.dist-info → abstra-3.24.3.dist-info}/METADATA +1 -1
- {abstra-3.24.1.dist-info → abstra-3.24.3.dist-info}/RECORD +202 -206
- abstra_internals/contracts_generated.py +1016 -758
- abstra_internals/controllers/git.py +4 -2
- abstra_internals/controllers/main.py +63 -1
- abstra_internals/repositories/git/git_test.py +5 -2
- abstra_internals/repositories/git/native.py +13 -7
- abstra_internals/repositories/git/types.py +1 -1
- abstra_internals/repositories/project/project.py +1 -1
- abstra_internals/server/routes/git.py +11 -2
- abstra_internals/server/routes/mcp.py +1 -0
- abstra_statics/dist/assets/AbstraButton.vue_vue_type_script_setup_true_lang.13670ae7.js +2 -0
- abstra_statics/dist/assets/AbstraLogo.vue_vue_type_script_setup_true_lang.1035457c.js +2 -0
- abstra_statics/dist/assets/ApiKeys.9b0b18b5.js +2 -0
- abstra_statics/dist/assets/App.9ab9cabb.js +2 -0
- abstra_statics/dist/assets/App.vue_vue_type_style_index_0_lang.6713c9c9.js +2 -0
- abstra_statics/dist/assets/BaseLayout.28c01b5b.js +2 -0
- abstra_statics/dist/assets/Billing.f9062d88.js +2 -0
- abstra_statics/dist/assets/{Breadcrumb.5c786c09.js → Breadcrumb.e54636d6.js} +3 -3
- abstra_statics/dist/assets/Builds.38c0f966.css +1 -0
- abstra_statics/dist/assets/Builds.c7363e1b.js +2 -0
- abstra_statics/dist/assets/{Card.fc77085c.js → Card.4a8a30bb.js} +5 -5
- abstra_statics/dist/assets/{CircularLoading.998b223a.js → CircularLoading.d81a4cac.js} +2 -2
- abstra_statics/dist/assets/CloseCircleOutlined.39b5ab06.js +2 -0
- abstra_statics/dist/assets/ConnectorsView.b594798e.css +1 -0
- abstra_statics/dist/assets/ConnectorsView.d4b67e2e.js +2 -0
- abstra_statics/dist/assets/ConsoleOmniChat.vue_vue_type_script_setup_true_lang.5360224e.js +2 -0
- abstra_statics/dist/assets/ContentLayout.10f24838.js +2 -0
- abstra_statics/dist/assets/CrudView.57e8b29a.js +2 -0
- abstra_statics/dist/assets/CrudView.8abe5bc2.css +1 -0
- abstra_statics/dist/assets/DocsButton.vue_vue_type_script_setup_true_lang.108b18e1.js +2 -0
- abstra_statics/dist/assets/EditorLogin.2f00deb7.js +2 -0
- abstra_statics/dist/assets/EditorsView.eb87a2d8.js +2 -0
- abstra_statics/dist/assets/EnvVars.883a4a57.js +2 -0
- abstra_statics/dist/assets/Error.98b8036c.js +2 -0
- abstra_statics/dist/assets/{ExclamationCircleOutlined.d0aa47da.js → ExclamationCircleOutlined.2441b96e.js} +2 -2
- abstra_statics/dist/assets/Files.39b07d88.css +1 -0
- abstra_statics/dist/assets/Files.9fc8199a.js +2 -0
- abstra_statics/dist/assets/Form.5d562f15.js +2 -0
- abstra_statics/dist/assets/{FormRunner.46f6426d.css → FormRunner.1e6e7d2a.css} +1 -1
- abstra_statics/dist/assets/FormRunner.2b1b3c45.js +2 -0
- abstra_statics/dist/assets/Home.191a6dce.js +2 -0
- abstra_statics/dist/assets/Home.8502aa41.js +2 -0
- abstra_statics/dist/assets/Home.e8bf9440.css +1 -0
- abstra_statics/dist/assets/LoadingContainer.ac03ea28.js +2 -0
- abstra_statics/dist/assets/LoadingOutlined.4c40acc4.js +2 -0
- abstra_statics/dist/assets/Login.8bd6a07a.js +2 -0
- abstra_statics/dist/assets/{Login.75d13f6c.css → Login.ac75228f.css} +1 -1
- abstra_statics/dist/assets/Login.edfbdaea.js +2 -0
- abstra_statics/dist/assets/Login.vue_vue_type_script_setup_true_lang.02acef81.js +2 -0
- abstra_statics/dist/assets/Logo.fc8ace6c.js +2 -0
- abstra_statics/dist/assets/Logs.4c6c0b3a.js +2 -0
- abstra_statics/dist/assets/LogsController.61f8e22d.css +1 -0
- abstra_statics/dist/assets/LogsController.a58ca42a.js +2 -0
- abstra_statics/dist/assets/Main.e6b2d2d5.js +2 -0
- abstra_statics/dist/assets/{MockForm.0b819a52.js → MockForm.091aa4ce.js} +2 -2
- abstra_statics/dist/assets/Navbar.24019fd6.js +2 -0
- abstra_statics/dist/assets/Navbar.61d3e0a6.css +1 -0
- abstra_statics/dist/assets/NewEditor.2b6f4ed3.js +8 -0
- abstra_statics/dist/assets/NewEditor.f2d1c0c3.css +1 -0
- abstra_statics/dist/assets/OidcLoginCallback.987cebba.js +2 -0
- abstra_statics/dist/assets/OidcLogoutCallback.6c00d878.js +2 -0
- abstra_statics/dist/assets/OmniChat.60ee26c8.css +1 -0
- abstra_statics/dist/assets/OmniChat.c78c1e51.js +6 -0
- abstra_statics/dist/assets/OnboardingView.687780ed.js +2 -0
- abstra_statics/dist/assets/OnboardingView.e871e6d8.css +1 -0
- abstra_statics/dist/assets/Organization.0ac1bf79.js +2 -0
- abstra_statics/dist/assets/Organizations.fc123489.js +2 -0
- abstra_statics/dist/assets/{PhArrowCounterClockwise.vue.78877a50.js → PhArrowCounterClockwise.vue.6ab1b899.js} +2 -2
- abstra_statics/dist/assets/{PhArrowSquareOut.vue.2ddfc219.js → PhArrowSquareOut.vue.1cebb708.js} +2 -2
- abstra_statics/dist/assets/{PhClockCounterClockwise.vue.854c3cb5.js → PhClockCounterClockwise.vue.dae2e135.js} +2 -2
- abstra_statics/dist/assets/{PhCopy.vue.d116ddfb.js → PhCopy.vue.71703533.js} +2 -2
- abstra_statics/dist/assets/PhCopySimple.vue.369eb629.js +2 -0
- abstra_statics/dist/assets/{PhCube.vue.abf4a034.js → PhCube.vue.f8549a9b.js} +2 -2
- abstra_statics/dist/assets/{PhDatabase.vue.a94d95f6.js → PhDatabase.vue.0d3246d7.js} +2 -2
- abstra_statics/dist/assets/{PhDotsThreeVertical.vue.5e8ae2a9.js → PhDotsThreeVertical.vue.9d76c4de.js} +2 -2
- abstra_statics/dist/assets/{PhDownloadSimple.vue.e88f64f1.js → PhDownloadSimple.vue.21156b6d.js} +2 -2
- abstra_statics/dist/assets/PhFileArrowUp.vue.406b22e3.js +2 -0
- abstra_statics/dist/assets/PhFilePlus.vue.b180df90.js +2 -0
- abstra_statics/dist/assets/{PhFolderPlus.vue.21d377a3.js → PhFolderPlus.vue.b18fd061.js} +2 -2
- abstra_statics/dist/assets/{PhGear.vue.363dd83c.js → PhGear.vue.bed38929.js} +2 -2
- abstra_statics/dist/assets/{PhKey.vue.23f3a465.js → PhKey.vue.6ef5fdd3.js} +2 -2
- abstra_statics/dist/assets/{PhPencil.vue.feb383e2.js → PhPencil.vue.0fc0fcc0.js} +2 -2
- abstra_statics/dist/assets/PhPencilSimple.vue.0707effd.js +2 -0
- abstra_statics/dist/assets/PhRocket.vue.761192f5.js +2 -0
- abstra_statics/dist/assets/{PhSignOut.vue.d1d6498f.js → PhSignOut.vue.8d8dfd96.js} +2 -2
- abstra_statics/dist/assets/{PhSparkle.vue.b6712d34.js → PhSparkle.vue.18ed0427.js} +2 -2
- abstra_statics/dist/assets/PhTranslate.vue.00a17a08.js +2 -0
- abstra_statics/dist/assets/{PhUsersThree.vue.8889f957.js → PhUsersThree.vue.d69f0723.js} +2 -2
- abstra_statics/dist/assets/{PhWarningCircle.vue.2087be7d.js → PhWarningCircle.vue.20bfeba7.js} +2 -2
- abstra_statics/dist/assets/PhWebhooksLogo.vue.58a98824.js +2 -0
- abstra_statics/dist/assets/PlayerConfigProvider.ad360920.js +2 -0
- abstra_statics/dist/assets/{PlayerNavbar.77209eae.css → PlayerNavbar.4dc29a45.css} +1 -1
- abstra_statics/dist/assets/PlayerNavbar.97e8dee9.js +2 -0
- abstra_statics/dist/assets/Project.6c4642b5.js +2 -0
- abstra_statics/dist/assets/Project.9c418d2e.css +1 -0
- abstra_statics/dist/assets/ProjectLogin.f92a038d.js +2 -0
- abstra_statics/dist/assets/ProjectSettings.582746dc.js +2 -0
- abstra_statics/dist/assets/ProjectsView.a6b3674b.js +2 -0
- abstra_statics/dist/assets/ProjectsView.e26ddfd5.css +1 -0
- abstra_statics/dist/assets/SaveButton.363ea20f.css +1 -0
- abstra_statics/dist/assets/SaveButton.c3ad6e9b.js +2 -0
- abstra_statics/dist/assets/{ScrollArea.vue_vue_type_script_setup_true_lang.6d724b05.js → ScrollArea.vue_vue_type_script_setup_true_lang.62178939.js} +2 -2
- abstra_statics/dist/assets/{Sidebar.29baeab0.css → Sidebar.161522da.css} +1 -1
- abstra_statics/dist/assets/Sidebar.69f9369e.js +2 -0
- abstra_statics/dist/assets/Sql.6d9a778c.css +1 -0
- abstra_statics/dist/assets/Sql.cdefe5b9.js +5 -0
- abstra_statics/dist/assets/{Steps.dd51a108.js → Steps.82252fc0.js} +2 -2
- abstra_statics/dist/assets/TableCard.5462c89d.js +2 -0
- abstra_statics/dist/assets/{TableEditor.5853a363.css → TableEditor.20fecc75.css} +1 -1
- abstra_statics/dist/assets/TableEditor.fcfa13de.js +2 -0
- abstra_statics/dist/assets/Tables.4ee84a7c.js +39 -0
- abstra_statics/dist/assets/TablesDiagram.b1d1579e.js +15 -0
- abstra_statics/dist/assets/TablesTabs.vue_vue_type_script_setup_true_lang.3e5206e0.js +2 -0
- abstra_statics/dist/assets/Tasks.fd2605bd.js +2 -0
- abstra_statics/dist/assets/{UploadOutlined.9aa845de.js → UploadOutlined.64837788.js} +2 -2
- abstra_statics/dist/assets/View.b144c5e3.js +2 -0
- abstra_statics/dist/assets/View.vue_vue_type_script_setup_true_lang.c79117ce.js +2 -0
- abstra_statics/dist/assets/Watermark.c0756030.js +2 -0
- abstra_statics/dist/assets/WebEditor.774989ad.js +2 -0
- abstra_statics/dist/assets/WebEditor.b886e4d1.css +1 -0
- abstra_statics/dist/assets/WidgetPreview.4fd6afc0.js +2 -0
- abstra_statics/dist/assets/WorkflowViewer.2666936e.js +2 -0
- abstra_statics/dist/assets/WorkflowViewer.3b6aee8e.css +1 -0
- abstra_statics/dist/assets/ant-design.b3eefa58.js +2 -0
- abstra_statics/dist/assets/apiKey.ee792d72.js +2 -0
- abstra_statics/dist/assets/asyncComputed.c73d027a.js +2 -0
- abstra_statics/dist/assets/{build.45b511b6.js → build.6e7d77b3.js} +2 -2
- abstra_statics/dist/assets/colorHelpers.5ee17d14.js +2 -0
- abstra_statics/dist/assets/{console.f0f09e6f.js → console.38bda98e.js} +4 -4
- abstra_statics/dist/assets/constants.be8ad36c.js +2 -0
- abstra_statics/dist/assets/contracts.generated.f01de5a3.js +2 -0
- abstra_statics/dist/assets/{cssMode.23271d4a.js → cssMode.408206bf.js} +2 -2
- abstra_statics/dist/assets/{datetime.82608dfb.js → datetime.a6d58ce1.js} +2 -2
- abstra_statics/dist/assets/dayjs.703ebc20.js +2 -0
- abstra_statics/dist/assets/editor.a77b56bd.js +2 -0
- abstra_statics/dist/assets/editor.main.a1ebf0ab.js +2 -0
- abstra_statics/dist/assets/fetch.cd29ef4c.js +2 -0
- abstra_statics/dist/assets/{files.8b58ee7e.js → files.1c1692f5.js} +2 -2
- abstra_statics/dist/assets/{folder.13d3acac.js → folder.1b74b12c.js} +2 -2
- abstra_statics/dist/assets/{freemarker2.f79b510b.js → freemarker2.e62e067c.js} +2 -2
- abstra_statics/dist/assets/{handlebars.07d5febe.js → handlebars.604fc901.js} +2 -2
- abstra_statics/dist/assets/{html.7d6a59b4.js → html.c02f177e.js} +2 -2
- abstra_statics/dist/assets/{htmlMode.7779ff94.js → htmlMode.64078e03.js} +2 -2
- abstra_statics/dist/assets/index.015caad7.js +2 -0
- abstra_statics/dist/assets/index.2ec95eae.js +2 -0
- abstra_statics/dist/assets/index.5197afb2.js +2 -0
- abstra_statics/dist/assets/{index.482df04a.js → index.82590a75.js} +2 -2
- abstra_statics/dist/assets/{index.d31da2c3.js → index.82842143.js} +2 -2
- abstra_statics/dist/assets/{index.e71a5f84.js → index.a12eba98.js} +3 -3
- abstra_statics/dist/assets/index.b72cb2b3.js +2 -0
- abstra_statics/dist/assets/{index.c8a56795.js → index.b91afb03.js} +2 -2
- abstra_statics/dist/assets/index.bec0ecd0.js +4 -0
- abstra_statics/dist/assets/{index.57042181.css → index.da037bc0.css} +1 -1
- abstra_statics/dist/assets/{javascript.4c528c2c.js → javascript.57026f87.js} +2 -2
- abstra_statics/dist/assets/{jsonMode.d6441e9d.js → jsonMode.9b45b375.js} +2 -2
- abstra_statics/dist/assets/{jwt-decode.9f7a5511.css → jwt-decode.c5760184.css} +2 -2
- abstra_statics/dist/assets/{jwt-decode.esm.54a1ea22.js → jwt-decode.esm.3348bca5.js} +197 -197
- abstra_statics/dist/assets/{linters.a0f2aa84.js → linters.903f3240.js} +2 -2
- abstra_statics/dist/assets/{liquid.0c441ad2.js → liquid.233d5164.js} +2 -2
- abstra_statics/dist/assets/member.d878cf3f.js +2 -0
- abstra_statics/dist/assets/metadata.9f7495db.js +2 -0
- abstra_statics/dist/assets/omniChatStore.40ad0b1b.js +9 -0
- abstra_statics/dist/assets/omniChatStore.b58e3bed.css +1 -0
- abstra_statics/dist/assets/{organization.668d1b58.js → organization.8f08e075.js} +2 -2
- abstra_statics/dist/assets/os.8ffdbf05.js +2 -0
- abstra_statics/dist/assets/player.7112583e.js +2 -0
- abstra_statics/dist/assets/{plotly.min.2a87d7e2.js → plotly.min.da87d61b.js} +2 -2
- abstra_statics/dist/assets/polling.f547718c.js +2 -0
- abstra_statics/dist/assets/{project.1b8374f4.js → project.2483de10.js} +2 -2
- abstra_statics/dist/assets/{python.7ac27a56.js → python.1bdbd404.js} +3 -3
- abstra_statics/dist/assets/{razor.860a0279.js → razor.be821b87.js} +3 -3
- abstra_statics/dist/assets/{record.e83a2eb2.js → record.a108da5a.js} +2 -2
- abstra_statics/dist/assets/redirect.eedb2bf6.js +2 -0
- abstra_statics/dist/assets/{repository.3a331f0f.js → repository.353e892d.js} +2 -2
- abstra_statics/dist/assets/repository.48119e01.js +2 -0
- abstra_statics/dist/assets/repository.677ca13c.js +2 -0
- abstra_statics/dist/assets/{router.4dfadf5d.js → router.c6e27700.js} +4 -4
- abstra_statics/dist/assets/router.c7abfb0c.js +2 -0
- abstra_statics/dist/assets/string.998fa621.js +2 -0
- abstra_statics/dist/assets/{tables.1bcb1140.js → tables.9701f90c.js} +2 -2
- abstra_statics/dist/assets/tasksController.5db769f7.js +4 -0
- abstra_statics/dist/assets/{toggleHighContrast.9535bf54.js → toggleHighContrast.23d5a1ab.js} +7 -7
- abstra_statics/dist/assets/{tsMode.c0f9fe1a.js → tsMode.4558d65a.js} +2 -2
- abstra_statics/dist/assets/{typescript.310eae6d.js → typescript.4445d2fa.js} +3 -3
- abstra_statics/dist/assets/url.5d02a63f.js +2 -0
- abstra_statics/dist/assets/{useCodebaseEvents.276cc8f0.js → useCodebaseEvents.6ebbc5a2.js} +2 -2
- abstra_statics/dist/assets/useTables.4d5edd80.js +2 -0
- abstra_statics/dist/assets/userStore.34b8f1eb.js +2 -0
- abstra_statics/dist/assets/uuid.6980e2bb.js +2 -0
- abstra_statics/dist/assets/vue-flow-background.f1022925.js +2 -0
- abstra_statics/dist/assets/{vue-flow-core.6cb99d32.js → vue-flow-core.0de753a6.js} +2 -2
- abstra_statics/dist/assets/{vue-quill.esm-bundler.e3d34d0e.js → vue-quill.esm-bundler.8f4ad2b3.js} +2 -2
- abstra_statics/dist/assets/{workspaceStore.fac1e9a9.js → workspaceStore.5d3f2aec.js} +2 -2
- abstra_statics/dist/assets/{xml.04864db4.js → xml.8a25758b.js} +3 -3
- abstra_statics/dist/assets/{yaml.f30375fe.js → yaml.e466330b.js} +3 -3
- abstra_statics/dist/console.html +15 -15
- abstra_statics/dist/editor.html +15 -15
- abstra_statics/dist/player.html +10 -10
- abstra/connectors/banking/__init__.py +0 -0
- abstra/connectors/banking/brazil.py +0 -5
- abstra_internals/services/banking/__init__.py +0 -3
- abstra_internals/services/banking/banking_service.py +0 -104
- abstra_internals/services/banking/client_factory.py +0 -70
- abstra_internals/services/banking/sdk/__init__.py +0 -0
- abstra_internals/services/banking/sdk/generate_totalbank_api.py +0 -383
- abstra_statics/dist/assets/AbstraButton.vue_vue_type_script_setup_true_lang.aefce2d3.js +0 -2
- abstra_statics/dist/assets/AbstraLogo.vue_vue_type_script_setup_true_lang.28bc9fc9.js +0 -2
- abstra_statics/dist/assets/ApiKeys.3c1e70dc.js +0 -2
- abstra_statics/dist/assets/App.9d8bd2aa.js +0 -2
- abstra_statics/dist/assets/App.vue_vue_type_style_index_0_lang.a64c7cee.js +0 -2
- abstra_statics/dist/assets/BaseLayout.72a6c8f2.js +0 -2
- abstra_statics/dist/assets/Billing.6b07f282.js +0 -2
- abstra_statics/dist/assets/Builds.ace9e3da.css +0 -1
- abstra_statics/dist/assets/Builds.d8c5c61b.js +0 -2
- abstra_statics/dist/assets/CloseCircleOutlined.9ff269cc.js +0 -2
- abstra_statics/dist/assets/ConnectorsView.33c5380f.css +0 -1
- abstra_statics/dist/assets/ConnectorsView.e670738b.js +0 -2
- abstra_statics/dist/assets/ConsoleOmniChat.vue_vue_type_script_setup_true_lang.3ca66327.js +0 -2
- abstra_statics/dist/assets/ContentLayout.0db8d7fb.js +0 -2
- abstra_statics/dist/assets/CrudView.cc6aeaf0.js +0 -2
- abstra_statics/dist/assets/CrudView.e24590ae.css +0 -1
- abstra_statics/dist/assets/DocsButton.vue_vue_type_script_setup_true_lang.689d8ce7.js +0 -2
- abstra_statics/dist/assets/EditorLogin.691452b4.js +0 -2
- abstra_statics/dist/assets/EditorsView.fcdf0186.js +0 -2
- abstra_statics/dist/assets/EnvVars.5519b4ce.js +0 -2
- abstra_statics/dist/assets/Error.11fd1f21.js +0 -2
- abstra_statics/dist/assets/Files.6ea18d46.js +0 -2
- abstra_statics/dist/assets/Files.d0e8d2ff.css +0 -1
- abstra_statics/dist/assets/Form.09de384c.js +0 -2
- abstra_statics/dist/assets/FormRunner.15be6fa0.js +0 -2
- abstra_statics/dist/assets/Home.3794e8b4.css +0 -1
- abstra_statics/dist/assets/Home.782c5702.js +0 -2
- abstra_statics/dist/assets/Home.7c495aa9.js +0 -2
- abstra_statics/dist/assets/Live.37415b2d.css +0 -1
- abstra_statics/dist/assets/Live.48c10605.js +0 -2
- abstra_statics/dist/assets/LoadingContainer.82ac3d44.js +0 -2
- abstra_statics/dist/assets/LoadingOutlined.66639b08.js +0 -2
- abstra_statics/dist/assets/Login.4a05f5c5.js +0 -2
- abstra_statics/dist/assets/Login.4e852955.js +0 -2
- abstra_statics/dist/assets/Login.vue_vue_type_script_setup_true_lang.5161f328.js +0 -2
- abstra_statics/dist/assets/Logo.65e0b37c.js +0 -2
- abstra_statics/dist/assets/Logs.7d1acf32.js +0 -2
- abstra_statics/dist/assets/LogsController.0eb2eb30.js +0 -2
- abstra_statics/dist/assets/LogsController.fb0d96c2.css +0 -1
- abstra_statics/dist/assets/Main.0313f4fc.js +0 -2
- abstra_statics/dist/assets/Navbar.2dc6d02c.css +0 -1
- abstra_statics/dist/assets/Navbar.ef64aa09.js +0 -2
- abstra_statics/dist/assets/NewEditor.b9c410fe.css +0 -1
- abstra_statics/dist/assets/NewEditor.c928dbe9.js +0 -8
- abstra_statics/dist/assets/OidcLoginCallback.42a7c4f9.js +0 -2
- abstra_statics/dist/assets/OidcLogoutCallback.35931a68.js +0 -2
- abstra_statics/dist/assets/OmniChat.73d9f6bb.js +0 -6
- abstra_statics/dist/assets/OmniChat.a21fec40.css +0 -1
- abstra_statics/dist/assets/OnboardingView.25042384.js +0 -2
- abstra_statics/dist/assets/OnboardingView.3996b08d.css +0 -1
- abstra_statics/dist/assets/Organization.66f64939.js +0 -2
- abstra_statics/dist/assets/Organizations.47868beb.js +0 -2
- abstra_statics/dist/assets/PhBookBookmark.vue.41108214.js +0 -2
- abstra_statics/dist/assets/PhChats.vue.71e5cb89.js +0 -2
- abstra_statics/dist/assets/PhCopySimple.vue.5d0f839d.js +0 -2
- abstra_statics/dist/assets/PhPencilSimple.vue.ec0eebb4.js +0 -2
- abstra_statics/dist/assets/PhRocket.vue.261a42b2.js +0 -2
- abstra_statics/dist/assets/PhUserList.vue.e0b8c21b.js +0 -2
- abstra_statics/dist/assets/PhWebhooksLogo.vue.d164db1e.js +0 -2
- abstra_statics/dist/assets/PlayerConfigProvider.28e29025.js +0 -2
- abstra_statics/dist/assets/PlayerNavbar.aaad1dfd.js +0 -2
- abstra_statics/dist/assets/Project.2de506d7.js +0 -2
- abstra_statics/dist/assets/Project.9c75c141.css +0 -1
- abstra_statics/dist/assets/ProjectLogin.22c8b093.js +0 -2
- abstra_statics/dist/assets/ProjectSettings.d065c292.js +0 -2
- abstra_statics/dist/assets/ProjectsView.16d8ecf6.css +0 -1
- abstra_statics/dist/assets/ProjectsView.cbd118ac.js +0 -2
- abstra_statics/dist/assets/SaveButton.428227de.js +0 -2
- abstra_statics/dist/assets/SaveButton.932ac6b8.css +0 -1
- abstra_statics/dist/assets/Sidebar.41173d8e.js +0 -2
- abstra_statics/dist/assets/Sql.90e6e2ba.css +0 -1
- abstra_statics/dist/assets/Sql.c070dd2c.js +0 -5
- abstra_statics/dist/assets/TableCard.c9a1cf41.js +0 -2
- abstra_statics/dist/assets/TableEditor.1bc47a95.js +0 -2
- abstra_statics/dist/assets/Tables.eff119eb.js +0 -2
- abstra_statics/dist/assets/TablesDiagram.d633acaf.js +0 -15
- abstra_statics/dist/assets/TablesTabs.vue_vue_type_script_setup_true_lang.cf7e34c5.js +0 -2
- abstra_statics/dist/assets/Tasks.c311b05f.js +0 -2
- abstra_statics/dist/assets/View.dd7ba25a.js +0 -2
- abstra_statics/dist/assets/View.vue_vue_type_script_setup_true_lang.e6563207.js +0 -2
- abstra_statics/dist/assets/Watermark.9c9358e3.js +0 -2
- abstra_statics/dist/assets/WebEditor.83f2a960.js +0 -2
- abstra_statics/dist/assets/WebEditor.c2e271d1.css +0 -1
- abstra_statics/dist/assets/WidgetPreview.7c6a231c.js +0 -2
- abstra_statics/dist/assets/ant-design.42419021.js +0 -2
- abstra_statics/dist/assets/apiKey.403049eb.js +0 -2
- abstra_statics/dist/assets/asyncComputed.47aec2b5.js +0 -2
- abstra_statics/dist/assets/colorHelpers.50ced1e9.js +0 -2
- abstra_statics/dist/assets/constants.d569f33d.js +0 -2
- abstra_statics/dist/assets/contracts.generated.aefe8d0a.js +0 -2
- abstra_statics/dist/assets/dayjs.7f71c60a.js +0 -2
- abstra_statics/dist/assets/editor.02184ced.js +0 -2
- abstra_statics/dist/assets/editor.main.0f931e87.js +0 -2
- abstra_statics/dist/assets/fetch.1b3d01a0.js +0 -2
- abstra_statics/dist/assets/index.581e2edd.js +0 -2
- abstra_statics/dist/assets/index.966ac1b9.js +0 -2
- abstra_statics/dist/assets/index.c7a996a6.js +0 -2
- abstra_statics/dist/assets/index.d53182ed.js +0 -4
- abstra_statics/dist/assets/member.2260c37e.js +0 -2
- abstra_statics/dist/assets/metadata.0098e20c.js +0 -2
- abstra_statics/dist/assets/omniChatStore.dd7a1c46.js +0 -8
- abstra_statics/dist/assets/omniChatStore.ec95fb81.css +0 -1
- abstra_statics/dist/assets/player.4ab4aed5.js +0 -2
- abstra_statics/dist/assets/polling.b5a32c22.js +0 -2
- abstra_statics/dist/assets/redirect.586749f4.js +0 -2
- abstra_statics/dist/assets/repository.66c7567c.js +0 -2
- abstra_statics/dist/assets/router.06ee2b9d.js +0 -2
- abstra_statics/dist/assets/string.61e11a30.js +0 -2
- abstra_statics/dist/assets/tasksController.f3adf725.js +0 -4
- abstra_statics/dist/assets/url.f5664225.js +0 -2
- abstra_statics/dist/assets/useTables.18fc3efd.js +0 -2
- abstra_statics/dist/assets/userStore.6ab1e5ac.js +0 -2
- abstra_statics/dist/assets/uuid.5b8ba8af.js +0 -2
- abstra_statics/dist/assets/vue-flow-background.af096866.js +0 -2
- {abstra-3.24.1.dist-info → abstra-3.24.3.dist-info}/WHEEL +0 -0
- {abstra-3.24.1.dist-info → abstra-3.24.3.dist-info}/entry_points.txt +0 -0
- {abstra-3.24.1.dist-info → abstra-3.24.3.dist-info}/top_level.txt +0 -0
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
4
|
-
AdministracaoApi as TBAdministracaoApi,
|
|
5
|
-
)
|
|
6
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
7
|
-
ApiClient,
|
|
8
|
-
)
|
|
9
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
10
|
-
CobrancaApi as TBCobrancaApi,
|
|
11
|
-
)
|
|
12
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
13
|
-
ContaCorrenteApi as TBContaCorrenteApi,
|
|
14
|
-
)
|
|
15
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
16
|
-
DetranApi as TBDetranApi,
|
|
17
|
-
)
|
|
18
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
19
|
-
FolhaDePagamentoCadastroApi as TBFolhaDePagamentoCadastroApi,
|
|
20
|
-
)
|
|
21
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
22
|
-
PagamentoCadastroApi as TBPagamentoCadastroApi,
|
|
23
|
-
)
|
|
24
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
25
|
-
PagamentosApi as TBPagamentosApi,
|
|
26
|
-
)
|
|
27
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
28
|
-
PixApi as TBPixApi,
|
|
29
|
-
)
|
|
30
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
31
|
-
WebhooksApi as TBWebhooksApi,
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
from .client_factory import get_banking_api_client_factory
|
|
35
|
-
|
|
36
|
-
DEFAULT_BANKING_CONNECTION_NAME = "totalbank"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def _create_api_wrapper_class(base_class, class_name: str):
|
|
40
|
-
"""Create a wrapper class for the given base API class."""
|
|
41
|
-
|
|
42
|
-
class ApiWrapper(base_class):
|
|
43
|
-
def __init__(self, api_client: Optional[ApiClient] = None):
|
|
44
|
-
if api_client is None:
|
|
45
|
-
api_client = get_banking_api_client_factory().create_api_client(
|
|
46
|
-
DEFAULT_BANKING_CONNECTION_NAME
|
|
47
|
-
)
|
|
48
|
-
super().__init__(api_client)
|
|
49
|
-
|
|
50
|
-
ApiWrapper.__name__ = class_name
|
|
51
|
-
ApiWrapper.__qualname__ = class_name
|
|
52
|
-
return ApiWrapper
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
# Dynamically create all API wrapper classes
|
|
56
|
-
PixApi = _create_api_wrapper_class(TBPixApi, "PixApi")
|
|
57
|
-
CobrancaApi = _create_api_wrapper_class(TBCobrancaApi, "CobrancaApi")
|
|
58
|
-
AdministracaoApi = _create_api_wrapper_class(TBAdministracaoApi, "AdministracaoApi")
|
|
59
|
-
ContaCorrenteApi = _create_api_wrapper_class(TBContaCorrenteApi, "ContaCorrenteApi")
|
|
60
|
-
DetranApi = _create_api_wrapper_class(TBDetranApi, "DetranApi")
|
|
61
|
-
FolhaDePagamentoCadastroApi = _create_api_wrapper_class(
|
|
62
|
-
TBFolhaDePagamentoCadastroApi, "FolhaDePagamentoCadastroApi"
|
|
63
|
-
)
|
|
64
|
-
PagamentoCadastroApi = _create_api_wrapper_class(
|
|
65
|
-
TBPagamentoCadastroApi, "PagamentoCadastroApi"
|
|
66
|
-
)
|
|
67
|
-
PagamentosApi = _create_api_wrapper_class(TBPagamentosApi, "PagamentosApi")
|
|
68
|
-
WebhooksApi = _create_api_wrapper_class(TBWebhooksApi, "WebhooksApi")
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
class BankingApi:
|
|
72
|
-
def __init__(self, connection_name: str = DEFAULT_BANKING_CONNECTION_NAME):
|
|
73
|
-
self._connection_name = connection_name
|
|
74
|
-
self._api_client = get_banking_api_client_factory().create_api_client(
|
|
75
|
-
connection_name
|
|
76
|
-
)
|
|
77
|
-
self._initialize_apis()
|
|
78
|
-
|
|
79
|
-
def _initialize_apis(self) -> None:
|
|
80
|
-
self.pix = PixApi(api_client=self._api_client)
|
|
81
|
-
self.cobranca = CobrancaApi(api_client=self._api_client)
|
|
82
|
-
self.administracao = AdministracaoApi(api_client=self._api_client)
|
|
83
|
-
self.conta_corrente = ContaCorrenteApi(api_client=self._api_client)
|
|
84
|
-
self.detran = DetranApi(api_client=self._api_client)
|
|
85
|
-
self.folha_de_pagamento_cadastro = FolhaDePagamentoCadastroApi(
|
|
86
|
-
api_client=self._api_client
|
|
87
|
-
)
|
|
88
|
-
self.pagamento_cadastro = PagamentoCadastroApi(api_client=self._api_client)
|
|
89
|
-
self.pagamentos = PagamentosApi(api_client=self._api_client)
|
|
90
|
-
self.webhooks = WebhooksApi(api_client=self._api_client)
|
|
91
|
-
|
|
92
|
-
@property
|
|
93
|
-
def connection_name(self) -> str:
|
|
94
|
-
return self._connection_name
|
|
95
|
-
|
|
96
|
-
@property
|
|
97
|
-
def api_client(self) -> ApiClient:
|
|
98
|
-
return self._api_client
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
def get_banking_api(
|
|
102
|
-
connection_name: str = DEFAULT_BANKING_CONNECTION_NAME,
|
|
103
|
-
) -> BankingApi:
|
|
104
|
-
return BankingApi(connection_name=connection_name)
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import abc
|
|
2
|
-
import logging
|
|
3
|
-
|
|
4
|
-
from abstra_internals.credentials import get_credentials
|
|
5
|
-
from abstra_internals.environment import (
|
|
6
|
-
CLOUD_API_ENDPOINT,
|
|
7
|
-
CLOUD_API_PROD_SHARED_TOKEN,
|
|
8
|
-
IS_PRODUCTION,
|
|
9
|
-
)
|
|
10
|
-
from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import (
|
|
11
|
-
ApiClient,
|
|
12
|
-
Configuration,
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
logger = logging.getLogger(__name__)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class BankingApiClientFactory(abc.ABC):
|
|
19
|
-
@abc.abstractmethod
|
|
20
|
-
def create_api_client(self, connection_name: str) -> ApiClient:
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
def _set_common_headers(self, client: ApiClient) -> None:
|
|
24
|
-
client.set_default_header("Content-Type", "application/json")
|
|
25
|
-
client.set_default_header("Accept", "application/json")
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class LocalBankingApiClientFactory(BankingApiClientFactory):
|
|
29
|
-
def create_api_client(self, connection_name: str) -> ApiClient:
|
|
30
|
-
host = (
|
|
31
|
-
f"{CLOUD_API_ENDPOINT}/cli/connectors/connection/{connection_name}/banking"
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
config = Configuration(host=host)
|
|
35
|
-
client = ApiClient(configuration=config)
|
|
36
|
-
|
|
37
|
-
self._set_auth_header(client)
|
|
38
|
-
self._set_common_headers(client)
|
|
39
|
-
|
|
40
|
-
return client
|
|
41
|
-
|
|
42
|
-
def _set_auth_header(self, client: ApiClient) -> None:
|
|
43
|
-
try:
|
|
44
|
-
credentials = get_credentials()
|
|
45
|
-
if credentials:
|
|
46
|
-
client.set_default_header("Api-Authorization", f"Bearer {credentials}")
|
|
47
|
-
except Exception as e:
|
|
48
|
-
logger.warning(f"Failed to load credentials for local environment: {e}")
|
|
49
|
-
# Continue without Bearer auth - this is expected in some environments
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
class ProductionBankingApiClientFactory(BankingApiClientFactory):
|
|
53
|
-
def create_api_client(self, connection_name: str) -> ApiClient:
|
|
54
|
-
host = (
|
|
55
|
-
f"{CLOUD_API_ENDPOINT}/cli/connectors/connection/{connection_name}/banking"
|
|
56
|
-
)
|
|
57
|
-
config = Configuration(host=host)
|
|
58
|
-
client = ApiClient(configuration=config)
|
|
59
|
-
|
|
60
|
-
client.set_default_header("shared-token", CLOUD_API_PROD_SHARED_TOKEN)
|
|
61
|
-
self._set_common_headers(client)
|
|
62
|
-
|
|
63
|
-
return client
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
def get_banking_api_client_factory() -> BankingApiClientFactory:
|
|
67
|
-
if IS_PRODUCTION:
|
|
68
|
-
return ProductionBankingApiClientFactory()
|
|
69
|
-
else:
|
|
70
|
-
return LocalBankingApiClientFactory()
|
|
File without changes
|
|
@@ -1,383 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import os
|
|
3
|
-
import shutil
|
|
4
|
-
import subprocess
|
|
5
|
-
import unicodedata
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def sanitize_openapi_json():
|
|
10
|
-
print("🔧 Sanitizando o arquivo OpenAPI JSON...")
|
|
11
|
-
|
|
12
|
-
with open("totalbank_openapi.json", "r", encoding="utf-8") as f:
|
|
13
|
-
openapi_spec = json.load(f)
|
|
14
|
-
|
|
15
|
-
def normalize_text(text):
|
|
16
|
-
if not isinstance(text, str):
|
|
17
|
-
return text
|
|
18
|
-
normalized = unicodedata.normalize("NFKD", text)
|
|
19
|
-
ascii_text = normalized.encode("ascii", "ignore").decode("ascii")
|
|
20
|
-
return ascii_text
|
|
21
|
-
|
|
22
|
-
def is_path_parameter_context(obj, parent_key, grandparent_obj):
|
|
23
|
-
if (
|
|
24
|
-
parent_key == "parameters"
|
|
25
|
-
and isinstance(grandparent_obj, dict)
|
|
26
|
-
and isinstance(obj, dict)
|
|
27
|
-
and obj.get("in") == "path"
|
|
28
|
-
):
|
|
29
|
-
return True
|
|
30
|
-
return False
|
|
31
|
-
|
|
32
|
-
def sanitize_tags_recursive(obj, parent_key=None):
|
|
33
|
-
if isinstance(obj, dict):
|
|
34
|
-
if parent_key == "tags" and isinstance(obj, list):
|
|
35
|
-
return [normalize_text(tag) for tag in obj]
|
|
36
|
-
elif "tags" in obj and isinstance(obj["tags"], list):
|
|
37
|
-
obj["tags"] = [normalize_text(tag) for tag in obj["tags"]]
|
|
38
|
-
|
|
39
|
-
for key, value in obj.items():
|
|
40
|
-
if isinstance(value, list) and key == "tags":
|
|
41
|
-
obj[key] = [normalize_text(tag) for tag in value]
|
|
42
|
-
else:
|
|
43
|
-
sanitize_tags_recursive(value, key)
|
|
44
|
-
|
|
45
|
-
elif isinstance(obj, list):
|
|
46
|
-
if parent_key == "tags":
|
|
47
|
-
return [normalize_text(item) for item in obj]
|
|
48
|
-
for item in obj:
|
|
49
|
-
sanitize_tags_recursive(item, parent_key)
|
|
50
|
-
|
|
51
|
-
def remove_constraints_recursive(obj, parent_key=None, grandparent_obj=None):
|
|
52
|
-
if isinstance(obj, dict):
|
|
53
|
-
obj.pop("maxLength", None)
|
|
54
|
-
obj.pop("enum", None)
|
|
55
|
-
|
|
56
|
-
if "required" in obj and not is_path_parameter_context(
|
|
57
|
-
obj, parent_key, grandparent_obj
|
|
58
|
-
):
|
|
59
|
-
obj.pop("required", None)
|
|
60
|
-
|
|
61
|
-
for key, value in obj.items():
|
|
62
|
-
remove_constraints_recursive(value, key, obj)
|
|
63
|
-
|
|
64
|
-
elif isinstance(obj, list):
|
|
65
|
-
for item in obj:
|
|
66
|
-
remove_constraints_recursive(item, parent_key, grandparent_obj)
|
|
67
|
-
|
|
68
|
-
sanitize_tags_recursive(openapi_spec)
|
|
69
|
-
|
|
70
|
-
remove_constraints_recursive(openapi_spec)
|
|
71
|
-
|
|
72
|
-
sanitized_file = "totalbank_openapi_sanitized.json"
|
|
73
|
-
with open(sanitized_file, "w", encoding="utf-8") as f:
|
|
74
|
-
json.dump(openapi_spec, f, indent=2, ensure_ascii=False)
|
|
75
|
-
|
|
76
|
-
print(f"✅ Arquivo sanitizado salvo como: {sanitized_file}")
|
|
77
|
-
print(" - Removidos: maxLength, enum e required")
|
|
78
|
-
print(" - Tags sanitizadas: caracteres especiais removidos (ç→c, ã→a, etc.)")
|
|
79
|
-
return sanitized_file
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
def generate_api_client(sanitized_file: str):
|
|
83
|
-
print("🚀 Gerando cliente da API usando openapi-generator...")
|
|
84
|
-
|
|
85
|
-
output_dir = "totalbank_generated_sdk"
|
|
86
|
-
|
|
87
|
-
if os.path.exists(output_dir):
|
|
88
|
-
print(f"🗑️ Removendo diretório existente: {output_dir}")
|
|
89
|
-
shutil.rmtree(output_dir)
|
|
90
|
-
|
|
91
|
-
cmd = [
|
|
92
|
-
"openapi-generator",
|
|
93
|
-
"generate",
|
|
94
|
-
"-i",
|
|
95
|
-
sanitized_file,
|
|
96
|
-
"-g",
|
|
97
|
-
"python",
|
|
98
|
-
"-o",
|
|
99
|
-
output_dir,
|
|
100
|
-
"--package-name",
|
|
101
|
-
"totalbank_client",
|
|
102
|
-
"--additional-properties",
|
|
103
|
-
"setEnsureAsciiToFalse=true",
|
|
104
|
-
]
|
|
105
|
-
|
|
106
|
-
try:
|
|
107
|
-
print(f"📦 Executando: {' '.join(cmd)}")
|
|
108
|
-
subprocess.run(cmd, check=True, capture_output=True, text=True)
|
|
109
|
-
print("✅ Cliente da API gerado com sucesso!")
|
|
110
|
-
|
|
111
|
-
if os.path.exists(output_dir):
|
|
112
|
-
files = list(Path(output_dir).rglob("*.py"))
|
|
113
|
-
print(f"📁 Gerados {len(files)} arquivos Python em {output_dir}/")
|
|
114
|
-
|
|
115
|
-
except subprocess.CalledProcessError as e:
|
|
116
|
-
print("❌ Erro ao gerar cliente da API:")
|
|
117
|
-
print(f"Código de saída: {e.returncode}")
|
|
118
|
-
print(f"Stdout: {e.stdout}")
|
|
119
|
-
print(f"Stderr: {e.stderr}")
|
|
120
|
-
raise
|
|
121
|
-
except FileNotFoundError:
|
|
122
|
-
print("❌ openapi-generator não encontrado!")
|
|
123
|
-
print("Instale com: npm install -g @openapitools/openapi-generator-cli")
|
|
124
|
-
print("Ou baixe de: https://openapi-generator.tech/docs/installation")
|
|
125
|
-
raise
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
def fix_imports_in_file(file_path: Path):
|
|
129
|
-
try:
|
|
130
|
-
with open(file_path, "r", encoding="utf-8") as f:
|
|
131
|
-
content = f.read()
|
|
132
|
-
|
|
133
|
-
modified = False
|
|
134
|
-
|
|
135
|
-
if "from totalbank_client." in content:
|
|
136
|
-
content = content.replace(
|
|
137
|
-
"from totalbank_client.",
|
|
138
|
-
"from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client.",
|
|
139
|
-
)
|
|
140
|
-
modified = True
|
|
141
|
-
|
|
142
|
-
if "import totalbank_client.models" in content:
|
|
143
|
-
content = content.replace(
|
|
144
|
-
"import totalbank_client.models",
|
|
145
|
-
"import abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client.models",
|
|
146
|
-
)
|
|
147
|
-
modified = True
|
|
148
|
-
|
|
149
|
-
if "from totalbank_client import" in content:
|
|
150
|
-
content = content.replace(
|
|
151
|
-
"from totalbank_client import",
|
|
152
|
-
"from abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client import",
|
|
153
|
-
)
|
|
154
|
-
modified = True
|
|
155
|
-
|
|
156
|
-
import re
|
|
157
|
-
|
|
158
|
-
pattern = r"\btotalbank_client\.models\."
|
|
159
|
-
if re.search(pattern, content):
|
|
160
|
-
content = re.sub(
|
|
161
|
-
pattern,
|
|
162
|
-
"abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client.models.",
|
|
163
|
-
content,
|
|
164
|
-
)
|
|
165
|
-
modified = True
|
|
166
|
-
|
|
167
|
-
if "import totalbank_client\n" in content:
|
|
168
|
-
content = content.replace(
|
|
169
|
-
"import totalbank_client\n",
|
|
170
|
-
"import abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client\n",
|
|
171
|
-
)
|
|
172
|
-
modified = True
|
|
173
|
-
|
|
174
|
-
full_models_import = "import abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client.models"
|
|
175
|
-
if (
|
|
176
|
-
full_models_import in content
|
|
177
|
-
and "getattr(totalbank_client.models" in content
|
|
178
|
-
):
|
|
179
|
-
content = content.replace(
|
|
180
|
-
full_models_import, f"{full_models_import} as totalbank_client_models"
|
|
181
|
-
)
|
|
182
|
-
content = content.replace(
|
|
183
|
-
"getattr(totalbank_client.models,", "getattr(totalbank_client_models,"
|
|
184
|
-
)
|
|
185
|
-
modified = True
|
|
186
|
-
|
|
187
|
-
if (
|
|
188
|
-
"abstra_internals.services.banking.sdk.totalbank_generated_sdk.abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client"
|
|
189
|
-
in content
|
|
190
|
-
):
|
|
191
|
-
content = content.replace(
|
|
192
|
-
"abstra_internals.services.banking.sdk.totalbank_generated_sdk.abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client",
|
|
193
|
-
"abstra_internals.services.banking.sdk.totalbank_generated_sdk.totalbank_client",
|
|
194
|
-
)
|
|
195
|
-
modified = True
|
|
196
|
-
|
|
197
|
-
if modified:
|
|
198
|
-
with open(file_path, "w", encoding="utf-8") as f:
|
|
199
|
-
f.write(content)
|
|
200
|
-
|
|
201
|
-
print(f" ✅ Imports corrigidos em: {file_path.name}")
|
|
202
|
-
return True
|
|
203
|
-
|
|
204
|
-
return False
|
|
205
|
-
|
|
206
|
-
except Exception as e:
|
|
207
|
-
print(f" ❌ Erro ao corrigir imports em {file_path.name}: {e}")
|
|
208
|
-
return False
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
def apply_custom_modifications():
|
|
212
|
-
print("🔨 Aplicando modificações customizadas...")
|
|
213
|
-
|
|
214
|
-
output_dir = Path("totalbank_generated_sdk")
|
|
215
|
-
|
|
216
|
-
if not output_dir.exists():
|
|
217
|
-
print("⚠️ Diretório do SDK não encontrado, pulando modificações.")
|
|
218
|
-
return
|
|
219
|
-
|
|
220
|
-
def cleanup_unnecessary_files():
|
|
221
|
-
print("🧹 Removendo arquivos desnecessários do SDK...")
|
|
222
|
-
|
|
223
|
-
keep_items = {"totalbank_client"} # Will add docs and tests later
|
|
224
|
-
|
|
225
|
-
removed_count = 0
|
|
226
|
-
for item in output_dir.iterdir():
|
|
227
|
-
if item.name not in keep_items:
|
|
228
|
-
try:
|
|
229
|
-
if item.is_file():
|
|
230
|
-
item.unlink()
|
|
231
|
-
print(f" 🗑️ Removido arquivo: {item.name}")
|
|
232
|
-
removed_count += 1
|
|
233
|
-
elif item.is_dir():
|
|
234
|
-
shutil.rmtree(item)
|
|
235
|
-
print(f" 🗑️ Removido diretório: {item.name}/")
|
|
236
|
-
removed_count += 1
|
|
237
|
-
except Exception as e:
|
|
238
|
-
print(f" ⚠️ Erro ao remover {item.name}: {e}")
|
|
239
|
-
|
|
240
|
-
print(f"📦 Removidos {removed_count} itens desnecessários")
|
|
241
|
-
|
|
242
|
-
def fix_imports_in_generated_files():
|
|
243
|
-
print("🔧 Corrigindo imports nos arquivos gerados...")
|
|
244
|
-
|
|
245
|
-
python_files = list(output_dir.rglob("*.py"))
|
|
246
|
-
modified_files = 0
|
|
247
|
-
|
|
248
|
-
for py_file in python_files:
|
|
249
|
-
if fix_imports_in_file(py_file):
|
|
250
|
-
modified_files += 1
|
|
251
|
-
|
|
252
|
-
print(
|
|
253
|
-
f"📝 Imports corrigidos em {modified_files} de {len(python_files)} arquivos."
|
|
254
|
-
)
|
|
255
|
-
|
|
256
|
-
def format_code_with_ruff():
|
|
257
|
-
print("🎨 Formatando código com ruff...")
|
|
258
|
-
|
|
259
|
-
# Find the project root (abstra-lib directory)
|
|
260
|
-
current_dir = Path.cwd()
|
|
261
|
-
project_root = None
|
|
262
|
-
|
|
263
|
-
# Navigate up the directory tree to find the project root
|
|
264
|
-
check_dir = current_dir
|
|
265
|
-
while check_dir.parent != check_dir: # While not at filesystem root
|
|
266
|
-
if (check_dir / "ruff.toml").exists() or (
|
|
267
|
-
check_dir / "pyproject.toml"
|
|
268
|
-
).exists():
|
|
269
|
-
project_root = check_dir
|
|
270
|
-
break
|
|
271
|
-
check_dir = check_dir.parent
|
|
272
|
-
|
|
273
|
-
if not project_root:
|
|
274
|
-
# Fallback: assume we're in the banking directory and go up to abstra-lib
|
|
275
|
-
banking_dir = Path(__file__).parent
|
|
276
|
-
project_root = banking_dir.parent.parent.parent # Go up to abstra-lib
|
|
277
|
-
|
|
278
|
-
print(f"📍 Projeto root detectado: {project_root}")
|
|
279
|
-
|
|
280
|
-
try:
|
|
281
|
-
# Change to project root and run ruff commands
|
|
282
|
-
original_cwd = os.getcwd()
|
|
283
|
-
|
|
284
|
-
try:
|
|
285
|
-
os.chdir(project_root)
|
|
286
|
-
|
|
287
|
-
print(" 🔍 Executando ruff format...")
|
|
288
|
-
result = subprocess.run(
|
|
289
|
-
["ruff", "format", "."], capture_output=True, text=True, check=False
|
|
290
|
-
)
|
|
291
|
-
if result.returncode != 0:
|
|
292
|
-
print(f" ⚠️ ruff format retornou código {result.returncode}")
|
|
293
|
-
if result.stderr:
|
|
294
|
-
print(f" Erro: {result.stderr}")
|
|
295
|
-
|
|
296
|
-
print(" 🔍 Executando ruff check --select I --fix...")
|
|
297
|
-
result = subprocess.run(
|
|
298
|
-
["ruff", "check", ".", "--select", "I", "--fix"],
|
|
299
|
-
capture_output=True,
|
|
300
|
-
text=True,
|
|
301
|
-
check=False,
|
|
302
|
-
)
|
|
303
|
-
if result.returncode != 0:
|
|
304
|
-
print(f" ⚠️ ruff check I retornou código {result.returncode}")
|
|
305
|
-
if result.stderr:
|
|
306
|
-
print(f" Erro: {result.stderr}")
|
|
307
|
-
|
|
308
|
-
print(" 🔍 Executando ruff check --fix --unsafe-fixes...")
|
|
309
|
-
result = subprocess.run(
|
|
310
|
-
["ruff", "check", ".", "--fix", "--unsafe-fixes"],
|
|
311
|
-
capture_output=True,
|
|
312
|
-
text=True,
|
|
313
|
-
check=False,
|
|
314
|
-
)
|
|
315
|
-
if result.returncode != 0:
|
|
316
|
-
print(f" ⚠️ ruff check retornou código {result.returncode}")
|
|
317
|
-
if result.stderr:
|
|
318
|
-
print(f" Erro: {result.stderr}")
|
|
319
|
-
|
|
320
|
-
print("✅ Formatação com ruff concluída")
|
|
321
|
-
|
|
322
|
-
finally:
|
|
323
|
-
# Restore original working directory
|
|
324
|
-
os.chdir(original_cwd)
|
|
325
|
-
|
|
326
|
-
except FileNotFoundError:
|
|
327
|
-
print(" ⚠️ ruff não encontrado. Certifique-se de que está instalado.")
|
|
328
|
-
print(" Para instalar: pip install ruff")
|
|
329
|
-
except Exception as e:
|
|
330
|
-
print(f" ❌ Erro ao executar ruff: {e}")
|
|
331
|
-
|
|
332
|
-
cleanup_unnecessary_files()
|
|
333
|
-
fix_imports_in_generated_files()
|
|
334
|
-
format_code_with_ruff()
|
|
335
|
-
|
|
336
|
-
print("✅ Modificações customizadas aplicadas com sucesso!")
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
def cleanup_temporary_files():
|
|
340
|
-
print("🧹 Limpando arquivos temporários...")
|
|
341
|
-
|
|
342
|
-
temp_files = ["totalbank_openapi_sanitized.json"]
|
|
343
|
-
for temp_file in temp_files:
|
|
344
|
-
if os.path.exists(temp_file):
|
|
345
|
-
os.remove(temp_file)
|
|
346
|
-
print(f"🗑️ Removido: {temp_file}")
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
def main():
|
|
350
|
-
print("🎯 Iniciando geração da API TotalBank")
|
|
351
|
-
print("=" * 50)
|
|
352
|
-
|
|
353
|
-
try:
|
|
354
|
-
if not os.path.exists("totalbank_openapi.json"):
|
|
355
|
-
print("❌ Arquivo totalbank_openapi.json não encontrado!")
|
|
356
|
-
print("Certifique-se de estar no diretório correto.")
|
|
357
|
-
print(
|
|
358
|
-
"Se o arquivo não estiver baixado, crie-o a partir de: https://api.totalbank.com.br/rest/openapi.json"
|
|
359
|
-
)
|
|
360
|
-
return 1
|
|
361
|
-
|
|
362
|
-
sanitized_file = sanitize_openapi_json()
|
|
363
|
-
|
|
364
|
-
generate_api_client(sanitized_file)
|
|
365
|
-
|
|
366
|
-
apply_custom_modifications()
|
|
367
|
-
|
|
368
|
-
cleanup_temporary_files()
|
|
369
|
-
|
|
370
|
-
print("=" * 50)
|
|
371
|
-
print("🎉 Geração da API TotalBank concluída com sucesso!")
|
|
372
|
-
print("📁 Cliente gerado em: totalbank_generated_sdk/")
|
|
373
|
-
|
|
374
|
-
return 0
|
|
375
|
-
|
|
376
|
-
except Exception as e:
|
|
377
|
-
print(f"❌ Erro durante a geração: {e}")
|
|
378
|
-
cleanup_temporary_files()
|
|
379
|
-
return 1
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
if __name__ == "__main__":
|
|
383
|
-
exit(main())
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{d as y,c as b,o as r,a as d,b as a,f as l,u as n,dc as i,a7 as p,h as u,eA as f,eB as g,bR as c,aV as m,e6 as B}from"./jwt-decode.esm.54a1ea22.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="c588ab3b-496f-48e0-91cb-558138352ad4",t._sentryDebugIdIdentifier="sentry-dbid-c588ab3b-496f-48e0-91cb-558138352ad4")}catch{}})();const h=y({__name:"AbstraButton",props:{disabledTooltip:{},tooltip:{},prefixCls:{},type:{},htmlType:{},shape:{},size:{},loading:{type:[Boolean,Object]},disabled:{type:Boolean},ghost:{type:Boolean},block:{type:Boolean},danger:{type:Boolean},icon:{},href:{},target:{},title:{},onClick:{type:[Function,Array]},onMousedown:{type:[Function,Array]}},setup(t){const e=t,s=b(()=>e.disabledTooltip&&e.disabled?e.disabledTooltip:e.tooltip);return(o,_)=>s.value?(r(),d(n(m),{key:0,title:s.value},{default:a(()=>[l(n(c),f(g(o.$props)),{default:a(()=>[l(n(i),{style:{display:"flex","align-items":"center","justify-content":"center",gap:"5px"}},{default:a(()=>[o.loading?u("",!0):p(o.$slots,"default",{key:0})]),_:3})]),_:3},16)]),_:3},8,["title"])):(r(),d(n(c),f(B({key:1},o.$props)),{default:a(()=>[l(n(i),{style:{display:"flex","align-items":"center","justify-content":"center",gap:"5px"}},{default:a(()=>[o.loading?u("",!0):p(o.$slots,"default",{key:0})]),_:3})]),_:3},16))}});export{h as _};
|
|
2
|
-
//# sourceMappingURL=AbstraButton.vue_vue_type_script_setup_true_lang.aefce2d3.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{L as a}from"./Logo.65e0b37c.js";import{d as n,o as r,a as d,u as f}from"./jwt-decode.esm.54a1ea22.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="bb4148b5-0ccc-4f52-bf1c-4784a5b017f7",e._sentryDebugIdIdentifier="sentry-dbid-bb4148b5-0ccc-4f52-bf1c-4784a5b017f7")}catch{}})();const i="/assets/logo.0faadfa2.svg",l=n({__name:"AbstraLogo",props:{hideText:{type:Boolean},size:{}},setup(e){return(s,t)=>{var o;return r(),d(a,{"image-url":f(i),"brand-name":"Abstra","hide-text":s.hideText,size:(o=s.size)!=null?o:"small"},null,8,["image-url","hide-text","size"])}}});export{l as _};
|
|
2
|
-
//# sourceMappingURL=AbstraLogo.vue_vue_type_script_setup_true_lang.28bc9fc9.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as b}from"./CrudView.cc6aeaf0.js";import{d as _,r as k,eb as x,c as v,a5 as C,f as l,u as i,b as d,aR as P,o as h,d7 as D,g as y,d8 as M,ed as j,M as N,ee as K,en as T}from"./jwt-decode.esm.54a1ea22.js";import{a as V}from"./asyncComputed.47aec2b5.js";import{A as c}from"./apiKey.403049eb.js";import"./router.4dfadf5d.js";import{M as B}from"./member.2260c37e.js";import{a as E}from"./project.1b8374f4.js";import"./tables.1bcb1140.js";import"./DocsButton.vue_vue_type_script_setup_true_lang.689d8ce7.js";import"./constants.d569f33d.js";import"./url.f5664225.js";import"./PhDotsThreeVertical.vue.5e8ae2a9.js";import"./index.966ac1b9.js";import"./index.c7a996a6.js";import"./record.e83a2eb2.js";import"./string.61e11a30.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},o=new Error().stack;o&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[o]="f8aed912-fe61-478a-8ac6-9f7c3c2684e4",n._sentryDebugIdIdentifier="sentry-dbid-f8aed912-fe61-478a-8ac6-9f7c3c2684e4")}catch{}})();const ee=_({__name:"ApiKeys",setup(n){const o=k(null),p=[{key:"name",label:"API key name"}],s=x().params.projectId,f=new B,{loading:g,result:I,refetch:u}=V(async()=>Promise.all([c.list(s),E.get(s).then(e=>f.list(e.organizationId))]).then(([e,t])=>e.map(a=>({apiKey:a,member:t.find(r=>r.authorId===a.ownerId)})))),A=async e=>{const t=await c.create({projectId:s,name:e.name});u(),o.value=t.value},w=v(()=>{var e,t;return{columns:[{title:"Name"},{title:"Creation date"},{title:"Owner"},{title:"",align:"right"}],rows:(t=(e=I.value)==null?void 0:e.map(({apiKey:a,member:r})=>{var m;return{key:a.id,cells:[{type:"text",text:a.name},{type:"text",text:K(a.createdAt)},{type:"text",text:(m=r==null?void 0:r.email)!=null?m:"Unknown"},{type:"actions",actions:[{label:"Delete",icon:T,dangerous:!0,onClick:async()=>{await c.delete(s,a.id),u()}}]}]}}))!=null?t:[]}});return(e,t)=>(h(),C(P,null,[l(b,{"entity-name":"API key","create-button-text":"Create API Key",loading:i(g),title:"API Keys",description:"API Keys are used to deploy your project from the local editor.","empty-title":"No API keys here yet",table:w.value,fields:p,create:A},null,8,["loading","table"]),l(i(N),{open:!!o.value,title:"Api key generated",onCancel:t[0]||(t[0]=a=>o.value=null)},{footer:d(()=>[]),default:d(()=>[l(i(D),null,{default:d(()=>[y("Your API key was successfully generated. Use this code to login on your local development environment or deploy using CI")]),_:1}),l(i(M),{code:"",copyable:""},{default:d(()=>[y(j(o.value),1)]),_:1})]),_:1},8,["open"])],64))}});export{ee as default};
|
|
2
|
-
//# sourceMappingURL=ApiKeys.3c1e70dc.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"./App.vue_vue_type_style_index_0_lang.a64c7cee.js";import{_ as u}from"./App.vue_vue_type_style_index_0_lang.a64c7cee.js";import"./userStore.6ab1e5ac.js";import"./jwt-decode.esm.54a1ea22.js";import"./PlayerConfigProvider.28e29025.js";import"./colorHelpers.50ced1e9.js";import"./workspaceStore.fac1e9a9.js";import"./url.f5664225.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},d=new Error().stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="a11720fa-9fb2-4198-8e2f-e3c674dda0d6",e._sentryDebugIdIdentifier="sentry-dbid-a11720fa-9fb2-4198-8e2f-e3c674dda0d6")}catch{}})();export{u as default};
|
|
2
|
-
//# sourceMappingURL=App.9d8bd2aa.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{u as r}from"./userStore.6ab1e5ac.js";import{W as n}from"./PlayerConfigProvider.28e29025.js";import{u as c}from"./workspaceStore.fac1e9a9.js";import{d,w as i,i as p,u as o,a as u,b as f,h as l,o as m,f as _}from"./jwt-decode.esm.54a1ea22.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},a=new Error().stack;a&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[a]="ee7006ed-602e-439e-8952-dd701245cec5",t._sentryDebugIdIdentifier="sentry-dbid-ee7006ed-602e-439e-8952-dd701245cec5")}catch{}})();const v=d({__name:"App",setup(t){const a=r(),e=c();return e.actions.fetch(),i(()=>a.jwt,e.actions.fetch),(w,y)=>{const s=p("RouterView");return o(e).state.workspace?(m(),u(n,{key:0,"main-color":o(e).state.workspace.mainColor,background:o(e).state.workspace.theme,"font-family":o(e).state.workspace.fontFamily,locale:o(e).state.workspace.language},{default:f(()=>[_(s,{style:{height:"100vh",width:"100%"}})]),_:1},8,["main-color","background","font-family","locale"])):l("",!0)}}});export{v as _};
|
|
2
|
-
//# sourceMappingURL=App.vue_vue_type_style_index_0_lang.a64c7cee.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{_ as c,o,a5 as n,a7 as s,e as d,h as a}from"./jwt-decode.esm.54a1ea22.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ef9503a1-51b2-4cc3-82e2-5e8e8619e7c4",e._sentryDebugIdIdentifier="sentry-dbid-ef9503a1-51b2-4cc3-82e2-5e8e8619e7c4")}catch{}})();const r={},i={class:"base-layout"},_={class:"base-middle"},l={class:"content"},u={class:"left"},f={key:0,class:"base-footer"},y={key:0};function b(e,t){return o(),n("div",i,[s(e.$slots,"sidebar",{},void 0,!0),d("section",_,[s(e.$slots,"navbar",{},void 0,!0),d("section",l,[d("section",u,[s(e.$slots,"content",{},void 0,!0),e.$slots.footer?(o(),n("section",f,[s(e.$slots,"footer",{},void 0,!0)])):a("",!0)]),e.$slots.chat?(o(),n("section",y,[s(e.$slots,"chat",{},void 0,!0)])):a("",!0)])])])}const g=c(r,[["render",b],["__scopeId","data-v-da85ecdc"]]);export{g as B};
|
|
2
|
-
//# sourceMappingURL=BaseLayout.72a6c8f2.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as _}from"./asyncComputed.47aec2b5.js";import{d as w,eb as b,J as h,u as e,a as d,a5 as k,f as o,b as t,h as I,o as n,A as f,g as l,ed as C,bR as x,dc as c,e as N}from"./jwt-decode.esm.54a1ea22.js";import{o as g,c as v}from"./router.4dfadf5d.js";import{a as z}from"./organization.668d1b58.js";import"./tables.1bcb1140.js";import{L as B}from"./LoadingContainer.82ac3d44.js";import"./index.c7a996a6.js";import"./record.e83a2eb2.js";import"./string.61e11a30.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[s]="367805d2-6929-40d5-a144-fd0bef050e88",a._sentryDebugIdIdentifier="sentry-dbid-367805d2-6929-40d5-a144-fd0bef050e88")}catch{}})();const D={key:1},U=["src"],J=w({__name:"Billing",setup(a){const u=b().params.organizationId,{loading:m,result:r}=_(async()=>{const i=await z.get(u),p=await i.getUsageReportUrl();return{organization:i,reportUrl:p}});h(()=>{location.search.includes("upgrade")&&g.showNewMessage("I want to upgrade my plan")});const y=()=>g.showNewMessage("I want to upgrade my plan");return(i,p)=>e(m)?(n(),d(B,{key:0})):e(r)?(n(),k("div",D,[o(e(c),{justify:"space-between",align:"center"},{default:t(()=>[o(e(f),{level:3},{default:t(()=>[l("Current plan: "+C(e(r).organization.coalescedPlan),1)]),_:1}),o(e(x),{type:"primary",onClick:y},{default:t(()=>[l("Upgrade")]),_:1})]),_:1}),o(e(v),{style:{"margin-top":"0"}}),e(r).organization.hasUsageReport?(n(),d(e(c),{key:0,align:"center",justify:"center"},{default:t(()=>[N("iframe",{src:e(r).reportUrl,frameborder:"0",style:{width:"1000px",height:"1700px"}},null,8,U)]),_:1})):(n(),d(e(c),{key:1,align:"center",justify:"center"},{default:t(()=>[o(e(f),{level:4},{default:t(()=>[l("No usage report available")]),_:1})]),_:1}))])):I("",!0)}});export{J as default};
|
|
2
|
-
//# sourceMappingURL=Billing.6b07f282.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.instructions[data-v-9615f578]{display:flex;flex-direction:column}.instructions pre[data-v-9615f578]{text-align:left}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as H}from"./CrudView.cc6aeaf0.js";import{d as $,am as P,c as x,o as c,a5 as b,a7 as q,h as _,e6 as U,e as C,f as u,e7 as z,f3 as J,e5 as Q,a as f,b as i,u as r,bP as W,bx as Y,bw as X,d8 as k,g as y,ed as h,cv as K,eb as ee,J as te,I as re,r as ae,aR as le,aV as ne,cL as oe,d7 as ie,a6 as se,d2 as ue,S as ce,M as de,ee as pe,_ as fe}from"./jwt-decode.esm.54a1ea22.js";import{a as N}from"./asyncComputed.47aec2b5.js";import{g as me}from"./datetime.82608dfb.js";import{u as ge}from"./polling.b5a32c22.js";import{G as ye}from"./PhArrowCounterClockwise.vue.78877a50.js";import{H as he}from"./PhCube.vue.abf4a034.js";import{G as ve}from"./PhDownloadSimple.vue.e88f64f1.js";import{f as be,e as _e,r as ke}from"./router.4dfadf5d.js";import{a as Ce,B as Ae}from"./build.45b511b6.js";import{a as Oe}from"./project.1b8374f4.js";import"./tables.1bcb1140.js";import{G as we}from"./PhClockCounterClockwise.vue.854c3cb5.js";import{F as xe,G as Se,I as Pe}from"./PhUserList.vue.e0b8c21b.js";import{G as Ze}from"./PhWebhooksLogo.vue.d164db1e.js";import{A as Z}from"./index.966ac1b9.js";import{E as Me}from"./ExclamationCircleOutlined.d0aa47da.js";import{C as Ie}from"./CloseCircleOutlined.9ff269cc.js";import{L as j}from"./LoadingOutlined.66639b08.js";import"./DocsButton.vue_vue_type_script_setup_true_lang.689d8ce7.js";import"./constants.d569f33d.js";import"./url.f5664225.js";import"./PhDotsThreeVertical.vue.5e8ae2a9.js";import"./index.c7a996a6.js";import"./record.e83a2eb2.js";import"./string.61e11a30.js";(function(){try{var l=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(l._sentryDebugIds=l._sentryDebugIds||{},l._sentryDebugIds[e]="9959596e-23f2-4ee7-9146-189f78594c4c",l._sentryDebugIdIdentifier="sentry-dbid-9959596e-23f2-4ee7-9146-189f78594c4c")}catch{}})();var je={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"minus-circle",theme:"outlined"};const $e=je;var ze={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"}}]},name:"pause-circle",theme:"outlined"};const De=ze,Be=["width","height","fill","transform"],Ve={key:0},Le=C("path",{d:"M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm-16-84a16,16,0,1,1-16-16A16,16,0,0,1,112,128Zm64,0a16,16,0,1,1-16-16A16,16,0,0,1,176,128Z"},null,-1),Ne=[Le],Ee={key:1},Ge=C("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"},null,-1),Te=C("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm56-88a12,12,0,1,1-12-12A12,12,0,0,1,184,128Zm-44,0a12,12,0,1,1-12-12A12,12,0,0,1,140,128Zm-44,0a12,12,0,1,1-12-12A12,12,0,0,1,96,128Z"},null,-1),Fe=[Ge,Te],Re={key:2},He=C("path",{d:"M128,24A104,104,0,1,0,232,128,104.13,104.13,0,0,0,128,24ZM84,140a12,12,0,1,1,12-12A12,12,0,0,1,84,140Zm44,0a12,12,0,1,1,12-12A12,12,0,0,1,128,140Zm44,0a12,12,0,1,1,12-12A12,12,0,0,1,172,140Z"},null,-1),qe=[He],Ue={key:3},Je=C("path",{d:"M128,26A102,102,0,1,0,230,128,102.12,102.12,0,0,0,128,26Zm0,192a90,90,0,1,1,90-90A90.1,90.1,0,0,1,128,218Zm10-90a10,10,0,1,1-10-10A10,10,0,0,1,138,128Zm-44,0a10,10,0,1,1-10-10A10,10,0,0,1,94,128Zm88,0a10,10,0,1,1-10-10A10,10,0,0,1,182,128Z"},null,-1),Qe=[Je],We={key:4},Ye=C("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm12-88a12,12,0,1,1-12-12A12,12,0,0,1,140,128Zm44,0a12,12,0,1,1-12-12A12,12,0,0,1,184,128Zm-88,0a12,12,0,1,1-12-12A12,12,0,0,1,96,128Z"},null,-1),Xe=[Ye],Ke={key:5},et=C("path",{d:"M128,28A100,100,0,1,0,228,128,100.11,100.11,0,0,0,128,28Zm0,192a92,92,0,1,1,92-92A92.1,92.1,0,0,1,128,220Zm8-92a8,8,0,1,1-8-8A8,8,0,0,1,136,128Zm-44,0a8,8,0,1,1-8-8A8,8,0,0,1,92,128Zm88,0a8,8,0,1,1-8-8A8,8,0,0,1,180,128Z"},null,-1),tt=[et],rt={name:"PhDotsThreeCircle"},at=$({...rt,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(l){const e=l,a=P("weight","regular"),d=P("size","1em"),s=P("color","currentColor"),S=P("mirrored",!1),p=x(()=>{var m;return(m=e.weight)!=null?m:a}),w=x(()=>{var m;return(m=e.size)!=null?m:d}),v=x(()=>{var m;return(m=e.color)!=null?m:s}),A=x(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:S?"scale(-1, 1)":void 0);return(m,M)=>(c(),b("svg",U({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:w.value,height:w.value,fill:v.value,transform:A.value},m.$attrs),[q(m.$slots,"default"),p.value==="bold"?(c(),b("g",Ve,Ne)):p.value==="duotone"?(c(),b("g",Ee,Fe)):p.value==="fill"?(c(),b("g",Re,qe)):p.value==="light"?(c(),b("g",Ue,Qe)):p.value==="regular"?(c(),b("g",We,Xe)):p.value==="thin"?(c(),b("g",Ke,tt)):_("",!0)],16,Be))}});function E(l){for(var e=1;e<arguments.length;e++){var a=arguments[e]!=null?Object(arguments[e]):{},d=Object.keys(a);typeof Object.getOwnPropertySymbols=="function"&&(d=d.concat(Object.getOwnPropertySymbols(a).filter(function(s){return Object.getOwnPropertyDescriptor(a,s).enumerable}))),d.forEach(function(s){lt(l,s,a[s])})}return l}function lt(l,e,a){return e in l?Object.defineProperty(l,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):l[e]=a,l}var D=function(e,a){var d=E({},e,a.attrs);return u(z,E({},d,{icon:J}),null)};D.displayName="CheckCircleOutlined";D.inheritAttrs=!1;const nt=D;function G(l){for(var e=1;e<arguments.length;e++){var a=arguments[e]!=null?Object(arguments[e]):{},d=Object.keys(a);typeof Object.getOwnPropertySymbols=="function"&&(d=d.concat(Object.getOwnPropertySymbols(a).filter(function(s){return Object.getOwnPropertyDescriptor(a,s).enumerable}))),d.forEach(function(s){ot(l,s,a[s])})}return l}function ot(l,e,a){return e in l?Object.defineProperty(l,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):l[e]=a,l}var B=function(e,a){var d=G({},e,a.attrs);return u(z,G({},d,{icon:$e}),null)};B.displayName="MinusCircleOutlined";B.inheritAttrs=!1;const it=B;function T(l){for(var e=1;e<arguments.length;e++){var a=arguments[e]!=null?Object(arguments[e]):{},d=Object.keys(a);typeof Object.getOwnPropertySymbols=="function"&&(d=d.concat(Object.getOwnPropertySymbols(a).filter(function(s){return Object.getOwnPropertyDescriptor(a,s).enumerable}))),d.forEach(function(s){st(l,s,a[s])})}return l}function st(l,e,a){return e in l?Object.defineProperty(l,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):l[e]=a,l}var V=function(e,a){var d=T({},e,a.attrs);return u(z,T({},d,{icon:De}),null)};V.displayName="PauseCircleOutlined";V.inheritAttrs=!1;const ut=V,ct={style:{display:"flex","align-items":"center",gap:"5px"}},dt={key:1},pt=$({__name:"BuildInspector",props:{buildSpec:{}},setup(l){const e=l,a=Q(),d=s=>{a.push({name:"logs",params:{projectId:e.buildSpec.projectId},query:s.logQuery})};return(s,S)=>s.buildSpec.runtimes.length>0?(c(),f(r(_e),{key:0,"item-layout":"horizontal","data-source":s.buildSpec.runtimes},{renderItem:i(({item:p})=>[u(r(be),null,{actions:i(()=>[u(r(W),null,{overlay:i(()=>[u(r(Y),null,{default:i(()=>[u(r(X),{onClick:w=>d(p)},{default:i(()=>[C("div",ct,[u(r(we)),u(r(k),null,{default:i(()=>[y(" View Logs")]),_:1})])]),_:2},1032,["onClick"])]),_:2},1024)]),default:i(()=>[u(r(at),{style:{cursor:"pointer"}})]),_:2},1024)]),default:i(()=>[p.type=="form"?(c(),f(r(Z),{key:0,size:"large"},{default:i(()=>[u(r(xe)),u(r(k),{strong:""},{default:i(()=>[y(h(p.title),1)]),_:2},1024),u(r(k),{type:"secondary",code:""},{default:i(()=>[y("/"+h(p.path),1)]),_:2},1024)]),_:2},1024)):_("",!0),p.type=="job"?(c(),f(r(Z),{key:1,size:"large"},{default:i(()=>[u(r(Se)),u(r(k),{strong:""},{default:i(()=>[y(h(p.title),1)]),_:2},1024),u(r(k),{type:"secondary",code:""},{default:i(()=>[y(h(p.schedule),1)]),_:2},1024)]),_:2},1024)):_("",!0),p.type=="hook"?(c(),f(r(Z),{key:2,size:"large"},{default:i(()=>[u(r(Ze)),u(r(k),{strong:""},{default:i(()=>[y(h(p.title),1)]),_:2},1024),u(r(k),{type:"secondary",code:""},{default:i(()=>[y("/_hooks/"+h(p.path),1)]),_:2},1024)]),_:2},1024)):_("",!0),p.type=="script"?(c(),f(r(Z),{key:3,size:"large"},{default:i(()=>[u(r(Pe)),u(r(k),{strong:""},{default:i(()=>[y(h(p.title),1)]),_:2},1024)]),_:2},1024)):_("",!0)]),_:2},1024)]),_:1},8,["data-source"])):(c(),b("div",dt,[u(r(K),{description:"No runtimes found. Make sure your project has forms, hooks or jobs before deploying it"})]))}}),ft=$({__name:"Builds",setup(l){const a=ee().params.projectId,{loading:d,result:s,refetch:S}=N(async()=>{const[t,o]=await Promise.all([Ce.list(a),Oe.getStatus(a)]);return{b:t.map(g=>({build:g,status:o.filter(O=>O.buildId==g.id).map(O=>O.status)})),status:o}}),{startPolling:p,endPolling:w}=ge({task:S,interval:1e4});te(()=>p()),re(()=>w());const v=ae(null),A=N(async()=>v.value?await Ae.get(v.value):null),m=()=>{var n;const t=(n=s.value)==null?void 0:n.b.find(g=>g.build.id===v.value);return`Version ${t==null?void 0:t.build.id.slice(0,8)} - ${t==null?void 0:t.build.createdAt.toLocaleString()}`},M=[{text:"Deploying",tagColor:"blue",check:t=>{var o,n;return(n=t.build.latest&&t.status.some(g=>g=="Running")&&((o=s.value)==null?void 0:o.status.some(g=>g.buildId!==t.build.id)))!=null?n:!1},loading:!0},{text:"Deactivating",tagColor:"orange",check:t=>t.build.status==="success"&&!t.build.latest&&t.status.some(o=>o=="Running"),loading:!0},{text:"Live",tagColor:"green",check:t=>t.build.latest&&t.status.some(o=>o=="Running")},{text:"Sleeping",tagColor:"cyan",check:t=>t.build.latest&&t.status.length===0},{text:"Failed",tagColor:"red",check:t=>t.build.latest&&t.status.some(o=>o=="Failed")},{text:"Inactive",tagColor:"default",check:t=>t.build.status==="success"},{text:"Aborted",tagColor:"default",check:t=>t.build.status==="aborted"||t.build.status==="aborted-by-user"},{text:"Failed",tagColor:"orange",check:t=>t.build.status==="failure"},{text:"Deploying",tagColor:"blue",check:t=>t.build.status==="in-progress",loading:!0},{text:"Uploading",tagColor:"yellow",check:t=>t.build.status==="pending"}];function F(t){var o,n,g,O,L;return{text:(n=(o=M.find(I=>I.check(t)))==null?void 0:o.text)!=null?n:"unknown",tagColor:(O=(g=M.find(I=>I.check(t)))==null?void 0:g.tagColor)!=null?O:"default",hover:(L=t.build.log)!=null?L:void 0}}const R=x(()=>{const t=[{title:"Id"},{title:"Date"},{title:"Abstra Version"},{title:"Status"},{title:"",align:"right"}];return s.value?{columns:t,rows:s.value.b.map(o=>{var n;return{key:o.build.id,cells:[{type:"text",text:o.build.id.slice(0,8)},{key:"date",type:"slot",payload:{date:me(o.build.createdAt,{weekday:void 0}),distance:pe(o.build.createdAt)}},{type:"text",text:(n=o.build.abstraVersion)!=null?n:"-"},{key:"status",type:"slot",payload:F(o)},{type:"actions",actions:[{icon:he,label:"Inspect version",onClick:async()=>{v.value=o.build.id,A.refetch()}},{icon:ye,label:"View application logs",onClick:()=>{ke.push({name:"logs",params:{projectId:a},query:{buildId:o.build.id}})}},{icon:ve,label:"Download files",onClick:()=>o.build.download()}]}]}})}:{columns:t,rows:[]}});return(t,o)=>(c(),b(le,null,[u(H,{"entity-name":"build",loading:r(d),title:"Version History",description:"You can create a new version by publishing your project from the local editor.","empty-title":"No versions here yet",table:R.value,live:""},{date:i(({payload:n})=>[u(r(ne),null,{title:i(()=>[y(h(n.distance),1)]),default:i(()=>[y(h(n.date)+" ",1)]),_:2},1024)]),status:i(({payload:n})=>[u(r(oe),{open:n.hover?void 0:!1},{content:i(()=>[u(r(ie),{style:{width:"300px",overflow:"auto","font-family":"monospace"},content:n.hover,copyable:""},null,8,["content"])]),default:i(()=>[n.text!=="unknown"?(c(),f(r(ue),{key:0,color:n.tagColor,style:se({cursor:n.hover?"pointer":"default"})},{default:i(()=>[n.text==="Live"?(c(),f(r(nt),{key:0})):n.text==="Inactive"?(c(),f(r(it),{key:1})):n.text==="Failed"?(c(),f(r(Me),{key:2})):n.text==="Aborted"?(c(),f(r(Ie),{key:3})):n.text==="Sleeping"?(c(),f(r(ut),{key:4})):n.text==="Uploading"?(c(),f(r(j),{key:5})):n.text==="Deploying"?(c(),f(r(j),{key:6})):n.text==="Deactivating"?(c(),f(r(j),{key:7})):_("",!0),y(" "+h(n.text),1)]),_:2},1032,["color","style"])):_("",!0)]),_:2},1032,["open"])]),_:1},8,["loading","table"]),v.value?(c(),f(r(de),{key:0,footer:null,open:!!v.value,size:"large",width:"80%",title:m(),onCancel:o[0]||(o[0]=n=>v.value=null)},{default:i(()=>[!r(A).result.value||r(A).loading.value?(c(),f(r(ce),{key:0})):r(A).result.value?(c(),f(pt,{key:1,"build-spec":r(A).result.value},null,8,["build-spec"])):_("",!0)]),_:1},8,["open","title"])):_("",!0)],64))}});const Et=fe(ft,[["__scopeId","data-v-9615f578"]]);export{Et as default};
|
|
2
|
-
//# sourceMappingURL=Builds.d8c5c61b.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{f as o,e7 as a,e_ as u}from"./jwt-decode.esm.54a1ea22.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8242415e-3f0c-4582-ac88-25433713ca56",e._sentryDebugIdIdentifier="sentry-dbid-8242415e-3f0c-4582-ac88-25433713ca56")}catch{}})();function c(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(r);typeof Object.getOwnPropertySymbols=="function"&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable}))),n.forEach(function(i){f(e,i,r[i])})}return e}function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var l=function(t,r){var n=c({},t,r.attrs);return o(a,c({},n,{icon:u}),null)};l.displayName="CloseCircleOutlined";l.inheritAttrs=!1;const d=l;export{d as C};
|
|
2
|
-
//# sourceMappingURL=CloseCircleOutlined.9ff269cc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.connector-card[data-v-f5866f99]{cursor:pointer;transition:all .3s;&[data-v-f5866f99]:hover{box-shadow:0 0 15px #0000001a}&.unavailable[data-v-f5866f99]{opacity:.7;&[data-v-f5866f99]:hover{box-shadow:none}}}.connectors-grid[data-v-b74745a5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
|