{"_id":"01cm-new-layout","_rev":"1-e4abeace6cf4c5f90dde1bae791883f1","name":"01cm-new-layout","dist-tags":{"latest":"1.0.9"},"versions":{"1.0.8":{"name":"01cm-new-layout","version":"1.0.8","license":"MIT","private":false,"author":{"name":"Equipe Desenvolvimento Somma-IT"},"repository":{"type":"git","url":"git+https://github.com/ADD01-TECH/01cm-new-layout.git"},"description":"Aplicação de importação de notas e integração com Oracle Fusion ERP Cloud","scripts":{"dev":"next dev -p 4001","build":"next build","start":"next start -p 8080","lint":"next lint","release":"release-it","create-env":"printenv > .env","prepare":"husky install","replace":"node ./node_modules/@somma/replace-envs/dist/index.js","login:artifact":"npx google-artifactregistry-auth .npmrc"},"dependencies":{"@mrmgomes/boleto-utils":"github:mrmgomes/boleto-utils","@somma/replace-envs":"^1.1.0","axios":"^1.3.4","boleto-brasileiro-validator":"^1.0.5","broleto":"^0.0.12","caniuse-lite":"^1.0.30001434","chart.js":"^4.4.0","cors":"^2.8.5","crypto":"^1.0.1","docker":"^1.0.0","dotenv-load":"^2.0.1","eslint-plugin-eslint-plugin":"^5.0.7","eslint-plugin-jsdoc":"^43.2.0","jsonwebtoken":"^9.0.0","kill":"^0.0.2","lost":"^9.0.1","moment":"^2.29.3","next":"13.4.1","next-env":"^1.1.1","next-images":"^1.8.4","nookies":"^2.5.2","postcss":"^8.4.12","postcss-nested":"^6.0.1","prettier":"^2.8.8","randomstring":"^1.3.0","react":"^18.0.0","react-chartjs-2":"^5.2.0","react-currency-input-field":"^3.6.4","react-datepicker":"^4.8.0","react-dom":"^18.0.0","react-draggable":"^4.4.5","react-dropzone":"^14.2.3","react-env":"^0.0.0","react-google-charts":"^4.0.0","react-hook-form":"^7.30.0","react-icons":"^4.3.1","react-toastify":"^9.0.5","react-toggle":"^4.1.2","react-xml-viewer":"^1.3.0","request-ip":"^3.3.0","sharp":"^0.32.0","uuid":"^9.0.0","validator":"^13.7.0","xlsx":"^0.18.5"},"devDependencies":{"@emotion/react":"^11.9.0","@emotion/styled":"^11.8.1","@google-cloud/artifact-registry":"^2.0.0","@google-cloud/cloudbuild":"^3.1.0","@mui/material":"^5.8.0","@next/eslint-plugin-next":"^13.4.1","@svgr/webpack":"^7.0.0","@types/chart.js":"^2.9.38","@types/cookies":"^0.7.7","@types/jsonwebtoken":"^9.0.1","@types/node":"^20.1.0","@types/randomstring":"^1.1.8","@types/react":"^18.0.32","@types/react-datepicker":"^4.4.2","@types/react-dom":"18.2.4","@types/react-icons":"^3.0.0","@types/react-toggle":"^4.0.3","@types/request-ip":"^0.0.37","@types/styled-components":"^5.1.25","@types/uuid":"^9.0.1","@types/validator":"^13.7.6","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","DatePicker":"^2.0.0","eslint":"^8.40.0","eslint-config-airbnb":"^19.0.4","eslint-config-next":"^13.2.4","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.26.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jsx-a11y":"^6.5.1","eslint-plugin-prettier":"^4.2.1","eslint-plugin-react":"^7.29.4","eslint-plugin-react-hooks":"^4.4.0","from":"^0.1.7","husky":"^8.0.3","import":"^0.0.6","install":"^0.13.0","jest":"^29.6.1","release-it":"^15.10.1","styled-components":"^5.3.5","ts-node":"^10.9.1","ts-node-dev":"^2.0.0","typescript":"^5.0.3"},"gitHead":"5b66761f6f0f719128c0d69b216fab2858ea0491","bugs":{"url":"https://github.com/ADD01-TECH/01cm-new-layout/issues"},"homepage":"https://github.com/ADD01-TECH/01cm-new-layout#readme","_id":"01cm-new-layout@1.0.8","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-5pIETyGqNfrbdQFQnsc9iEQ7WFeSY+WFka7wyH/0EfI1pdB8wFqva25xtgz2K7pW168eyWHfBLC9XAfhf65GSg==","shasum":"81658ff48f119955aac34c9bf1330747062fd592","tarball":"https://registry.npmjs.org/01cm-new-layout/-/01cm-new-layout-1.0.8.tgz","fileCount":821,"unpackedSize":6580894,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5CqzLRJgFuLxgbEMafEjBDDKshlRx64+eXdKpkKS7LwIgRysaPNJFUnwR6yruV9Nr/CUsV6502DJ8LfF/HPanw1Y="}]},"_npmUser":{"name":"diogolapa-somma","email":"diogo.lapa@somma-it.com"},"directories":{},"maintainers":[{"name":"diogolapa-somma","email":"diogo.lapa@somma-it.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/01cm-new-layout_1.0.8_1696966328189_0.7555182621799281"},"_hasShrinkwrap":false},"1.0.9":{"name":"01cm-new-layout","version":"1.0.9","license":"MIT","private":false,"author":{"name":"Equipe Desenvolvimento Somma-IT"},"repository":{"type":"git","url":"git+https://github.com/ADD01-TECH/01cm-new-layout.git"},"description":"Aplicação de importação de notas e integração com Oracle Fusion ERP Cloud","scripts":{"dev":"next dev -p 4001","build":"next build","start":"next start -p 8080","lint":"next lint","release":"release-it","create-env":"printenv > .env","prepare":"husky install","replace":"node ./node_modules/@somma/replace-envs/dist/index.js","login:artifact":"npx google-artifactregistry-auth .npmrc"},"dependencies":{"@mrmgomes/boleto-utils":"github:mrmgomes/boleto-utils","@somma/replace-envs":"^1.1.0","axios":"^1.3.4","boleto-brasileiro-validator":"^1.0.5","broleto":"^0.0.12","caniuse-lite":"^1.0.30001434","chart.js":"^4.4.0","cors":"^2.8.5","crypto":"^1.0.1","docker":"^1.0.0","dotenv-load":"^2.0.1","eslint-plugin-eslint-plugin":"^5.0.7","eslint-plugin-jsdoc":"^43.2.0","jsonwebtoken":"^9.0.0","kill":"^0.0.2","lost":"^9.0.1","moment":"^2.29.3","next":"13.4.1","next-env":"^1.1.1","next-images":"^1.8.4","nookies":"^2.5.2","postcss":"^8.4.12","postcss-nested":"^6.0.1","prettier":"^2.8.8","randomstring":"^1.3.0","react":"^18.0.0","react-chartjs-2":"^5.2.0","react-currency-input-field":"^3.6.4","react-datepicker":"^4.8.0","react-dom":"^18.0.0","react-draggable":"^4.4.5","react-dropzone":"^14.2.3","react-env":"^0.0.0","react-google-charts":"^4.0.0","react-hook-form":"^7.30.0","react-icons":"^4.3.1","react-toastify":"^9.0.5","react-toggle":"^4.1.2","react-xml-viewer":"^1.3.0","request-ip":"^3.3.0","sharp":"^0.32.0","uuid":"^9.0.0","validator":"^13.7.0","xlsx":"^0.18.5"},"devDependencies":{"@emotion/react":"^11.9.0","@emotion/styled":"^11.8.1","@google-cloud/artifact-registry":"^2.0.0","@google-cloud/cloudbuild":"^3.1.0","@mui/material":"^5.8.0","@next/eslint-plugin-next":"^13.4.1","@svgr/webpack":"^7.0.0","@types/chart.js":"^2.9.38","@types/cookies":"^0.7.7","@types/jsonwebtoken":"^9.0.1","@types/node":"^20.1.0","@types/randomstring":"^1.1.8","@types/react":"^18.0.32","@types/react-datepicker":"^4.4.2","@types/react-dom":"18.2.4","@types/react-icons":"^3.0.0","@types/react-toggle":"^4.0.3","@types/request-ip":"^0.0.37","@types/styled-components":"^5.1.25","@types/uuid":"^9.0.1","@types/validator":"^13.7.6","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","DatePicker":"^2.0.0","eslint":"^8.40.0","eslint-config-airbnb":"^19.0.4","eslint-config-next":"^13.2.4","eslint-config-prettier":"^8.8.0","eslint-plugin-import":"^2.26.0","eslint-plugin-jest":"^27.2.1","eslint-plugin-jsx-a11y":"^6.5.1","eslint-plugin-prettier":"^4.2.1","eslint-plugin-react":"^7.29.4","eslint-plugin-react-hooks":"^4.4.0","from":"^0.1.7","husky":"^8.0.3","import":"^0.0.6","install":"^0.13.0","jest":"^29.6.1","release-it":"^15.10.1","styled-components":"^5.3.5","ts-node":"^10.9.1","ts-node-dev":"^2.0.0","typescript":"^5.0.3"},"gitHead":"5b66761f6f0f719128c0d69b216fab2858ea0491","bugs":{"url":"https://github.com/ADD01-TECH/01cm-new-layout/issues"},"homepage":"https://github.com/ADD01-TECH/01cm-new-layout#readme","_id":"01cm-new-layout@1.0.9","_nodeVersion":"18.17.0","_npmVersion":"9.6.7","dist":{"integrity":"sha512-uWyn/5iOhNSWlZW2/1Z2wxfdDAWNwv+w7VRGY2tPQQkbKzuWqEamg5lr5XxSMRPJ+f0S3dWdosWpxCu8hQza2A==","shasum":"504dd9b347443108a80966557d9901a1ae10d6e4","tarball":"https://registry.npmjs.org/01cm-new-layout/-/01cm-new-layout-1.0.9.tgz","fileCount":821,"unpackedSize":6580894,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrCsQameqywyqs53dtrUpAeK3U1Iylo2LDvFSbuMXLcgIhAP3bBWytbx+BHJ7XavKAIWmP0S2p484pTskUHX6xOLcg"}]},"_npmUser":{"name":"diogolapa-somma","email":"diogo.lapa@somma-it.com"},"directories":{},"maintainers":[{"name":"diogolapa-somma","email":"diogo.lapa@somma-it.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/01cm-new-layout_1.0.9_1696966404959_0.43525803305786326"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-10T19:32:07.697Z","1.0.8":"2023-10-10T19:32:08.546Z","modified":"2023-10-10T19:33:25.476Z","1.0.9":"2023-10-10T19:33:25.308Z"},"maintainers":[{"name":"diogolapa-somma","email":"diogo.lapa@somma-it.com"}],"description":"Aplicação de importação de notas e integração com Oracle Fusion ERP Cloud","homepage":"https://github.com/ADD01-TECH/01cm-new-layout#readme","repository":{"type":"git","url":"git+https://github.com/ADD01-TECH/01cm-new-layout.git"},"author":{"name":"Equipe Desenvolvimento Somma-IT"},"bugs":{"url":"https://github.com/ADD01-TECH/01cm-new-layout/issues"},"license":"MIT","readme":"# _APP 01CM_\n\n* [Overview](#overview)\n* [Dependências](#dependências)\n* [Rodar localmente](#rodar-localmente)\n* [Deploy](#deploy)\n* [Links Úteis](#links-úteis)\n\n### [Overview]\n\nAplicação desenvolvida em [Next.js](https://nextjs.org/). Iniciado com  [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).\n\nEste aplicativo compõe a plataforma 01CM, onde os clientes poderão acessar e visualizar os documentos processados pelo Invoice Manager. Cada cliente tem uma instância dessa aplicação sendo executada na Cloud da Google. \n\n![Colocar algum GIF demonstrando o ambiente](https://via.placeholder.com/750x500)\n\n### [Dependências]\n\n**Projetos relacionados:**\n\n- [Invoice Manager]() - Sistema que recebe os documentos de todos os clientes e os processa para extração de dados.\n- [Consumer](https://github.com/ADD01-TECH/consumer-01cm-invoice-integration) - Consome as notas do integrador e envia para o backend da aplicação do cliente\n- [01CM API](git@github.com:ADD01-TECH/api-01cm.git) - Backend da aplicação do cliente\n- [ERP Oracle]() - O projeto contém integrações com a API do ERP Oracle para envio de notas e boletos.\n\n**Pacotes utilizados**\n- [@somma/replace-envs](https://github.com/ADD01-TECH/lib-node-replace-envs) - Substituir variáveis em runtime\n\nOs apontamentos são configuradas através das variáveis de ambiente.\nPara mais detalhes a cerca das dependências, consultar o ecossistema de aplicativos no [guia](https://github.com/ADD01-TECH/guia-dev) \n\n### [Rodar localmente]\n\n**Instalação**\n\nComo estamos utilizando pacotes privados, é necessário fazer a autenticação no Artifact. Para isso, foi criado o arquivo `.npmrc` na raiz do projeto com as configurações. Esse conteúdo pode ser obtido com o `gcloud`:\n\n```shell\ngcloud artifacts print-settings npm --scope=@somma\n```\n\nO token expira periodicamente (por padrão, após 1 hora), portanto é necessário também atualizá-lo com o utilitário do `gcloud`: \n\n```shell\nnpx google-artifactregistry-auth\n```\n\nO arquivo `.npmrc` pode ser criado na pasta do usuário (`~/.npmrc`) para que seja utilizado em todos os projetos também. \n\nA partir daí, pode ser executado o comando de instalação das dependências:\n\n```bash\nyarn install\n```\n\n**Variáveis de ambiente**\n\n<details>\n<summary>Explicação de cada variável de ambiente utilizada no projeto com valores de exemplo:</summary>\n\n```shell\n# Variáveis para acesso ao Invoice Manager\nNEXT_PUBLIC_IMG_BASE_URL=https://api-01cm-invoices-management-dev-fasdf-uc.a.run.app\nNEXT_PUBLIC_IMG_USERNAME=invoice-manager\nNEXT_PUBLIC_IMG_PASSWORD=123456\n\n# Variáveis para acesso ao Backend do 01cm\nNEXT_PUBLIC_LOCALHOST=https://api-01cm-dev-4yyh5fptba-uc.a.run.app\n\n# Variáveis para acesso ao ERP Oracle\nNEXT_PUBLIC_ERP_BASE_URL=https://fa-ertf-test-saasfaprod1.fa.ocs.oraclecloud.com\nNEXT_PUBLIC_ERP_USER=integration.bild # usuário de integração\nNEXT_PUBLIC_ERP_PASSWORD=54234h2b34h2b34 # Senha do usuário de integração\n\n# variáveis de configuração do front\nNEXT_PUBLIC_BASE_URL=http://localhost:4001\n```\n</details>\n\nVariáveis padrão do NEXT podem ser consultadas [aqui](https://nextjs.org/docs/basic-features/environment-variables)\n\nConfiguradas as variáveis, o servidor de desenvolvimento do Node pode ser executado com:\n\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n```\n\nOu simulado os processos de produção, fazendo o build e consequente start: \n\n```shell\nyarn build\nyarn start\n```\n\nAbrir [http://localhost:8080](http://localhost:8080) para utilizar a aplicação.\n\n### [Deploy]\n\nO arquivo `Dockerfile` contém uma imagem a ser construída e executada em plataformas com suporte, como o GCP Cloud Run ou o próprio Docker.\n\nA imagem basicamente recebe as variáveis de ambiente via argumentos em tempo de build. Essas variáveis são resolvidas durante o _transpile_ no build da imagem, sendo substituídas pelo valor recebido do ARG da linha de build do docker. Exemplo: \n\n```shell\ndocker buildx build --build-arg=\"NEXT_PUBLIC_BASE_URL=DCK_NEXT_PUBLIC_BASE_URL\"  -t app01cm:local .\n```\n\nMais informações sobre esse processo de substituição de variáveis no [repositório do pacote](https://github.com/ADD01-TECH/lib-node-replace-envs) que faz esse processo nas variáveis em runtime.\n\nPara o deploy na GCP, temos a pipeline configurada no arquivo `cloudbuild.yml`. A pipeline faz o build da imagem e envia para o Artifact Registry, que é o repositório de imagens da GCP. Logo em seguida faz o deploy no Cloud Run, seguindo o fluxo comentado [aqui](https://github.com/ADD01-TECH/guia-dev/tree/main/fluxo-trabalho/deploy/nextjs-gcp).  \n\n\n## [Links úteis]\n\n- [Documentação Next.js](https://nextjs.org/docs)\n- [Learn Next.js](https://nextjs.org/learn) - Tutorial interativo de Next.js\n- [Como usar o Artifact](https://cloud.google.com/artifact-registry/docs/nodejs/store-nodejs?hl=pt-br)\n\n","readmeFilename":"README.md"}