diff --git a/changelog.md b/changelog.md index 3977baf..6b1ffa7 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,12 @@ # Changelog +## 2024-11-06 - 2.2.4 - fix(core) +Improve code style and update dependencies + +- Updated @push.rocks/tapbundle to version ^5.4.3 in package.json. +- Fixed markdown formatting in readme.md. +- Improved code consistency in ts/00_commitinfo_data.ts, ts/plugins.ts, and test/test.ts. + ## 2024-11-06 - 2.2.3 - fix(core) Fix endpoint address from 'localhost' to '127.0.0.1' for better compatibility in Smarts3.getS3Descriptor diff --git a/package.json b/package.json index 94de3f8..220cf46 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@git.zone/tsbundle": "^2.1.0", "@git.zone/tsrun": "^1.3.3", "@git.zone/tstest": "^1.0.72", - "@push.rocks/tapbundle": "^5.4.1", + "@push.rocks/tapbundle": "^5.4.3", "@types/node": "^22.9.0" }, "browserslist": [ @@ -70,4 +70,4 @@ "bugs": { "url": "https://code.foss.global/push.rocks/smarts3/issues" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b4d834..8fc9ce1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,8 +38,8 @@ devDependencies: specifier: ^1.0.72 version: 1.0.90(@aws-sdk/client-sso-oidc@3.682.0) '@push.rocks/tapbundle': - specifier: ^5.4.1 - version: 5.4.1(@aws-sdk/client-sso-oidc@3.682.0) + specifier: ^5.4.3 + version: 5.4.3(@aws-sdk/client-sso-oidc@3.682.0) '@types/node': specifier: ^22.9.0 version: 22.9.0 @@ -138,7 +138,6 @@ packages: '@aws-crypto/util': 5.2.0 '@aws-sdk/types': 3.679.0 tslib: 2.8.1 - dev: false /@aws-crypto/crc32c@5.2.0: resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} @@ -146,7 +145,6 @@ packages: '@aws-crypto/util': 5.2.0 '@aws-sdk/types': 3.679.0 tslib: 2.8.1 - dev: false /@aws-crypto/sha1-browser@5.2.0: resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} @@ -157,7 +155,6 @@ packages: '@aws-sdk/util-locate-window': 3.679.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - dev: false /@aws-crypto/sha256-browser@5.2.0: resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} @@ -305,7 +302,6 @@ packages: tslib: 2.8.1 transitivePeerDependencies: - aws-crt - dev: false /@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0): resolution: {integrity: sha512-ZPZ7Y/r/w3nx/xpPzGSqSQsB090Xk5aZZOH+WBhTDn/pBEuim09BYXCLzvvxb7R7NnuoQdrTJiwimdJAhHl7ZQ==} @@ -627,7 +623,6 @@ packages: '@smithy/types': 3.6.0 '@smithy/util-config-provider': 3.0.0 tslib: 2.8.1 - dev: false /@aws-sdk/middleware-expect-continue@3.679.0: resolution: {integrity: sha512-nYsh9PdWrF4EahTRdXHGlNud82RPc508CNGdh1lAGfPU3tNveGfMBX3PcGBtPOse3p9ebNKRWVmUc9eXSjGvHA==} @@ -637,7 +632,6 @@ packages: '@smithy/protocol-http': 4.1.5 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@aws-sdk/middleware-flexible-checksums@3.682.0: resolution: {integrity: sha512-5u1STth6iZUtAvPDO0NJVYKUX2EYKU7v84MYYaZ3O27HphRjFqDos0keL2KTnHn/KmMD68rM3yiUareWR8hnAQ==} @@ -654,7 +648,6 @@ packages: '@smithy/util-middleware': 3.0.8 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - dev: false /@aws-sdk/middleware-host-header@3.679.0: resolution: {integrity: sha512-y176HuQ8JRY3hGX8rQzHDSbCl9P5Ny9l16z4xmaiLo+Qfte7ee4Yr3yaAKd7GFoJ3/Mhud2XZ37fR015MfYl2w==} @@ -672,7 +665,6 @@ packages: '@aws-sdk/types': 3.679.0 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@aws-sdk/middleware-logger@3.679.0: resolution: {integrity: sha512-0vet8InEj7nvIvGKk+ch7bEF5SyZ7Us9U7YTEgXPrBNStKeRUsgwRm0ijPWWd0a3oz2okaEwXsFl7G/vI0XiEA==} @@ -709,7 +701,6 @@ packages: '@smithy/util-stream': 3.2.1 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - dev: false /@aws-sdk/middleware-ssec@3.679.0: resolution: {integrity: sha512-4GNUxXbs1M71uFHRiCAZtN0/g23ogI9YjMe5isAuYMHXwDB3MhqF7usKf954mBP6tplvN44vYlbJ84faaLrTtg==} @@ -718,7 +709,6 @@ packages: '@aws-sdk/types': 3.679.0 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@aws-sdk/middleware-user-agent@3.682.0: resolution: {integrity: sha512-7TyvYR9HdGH1/Nq0eeApUTM4izB6rExiw87khVYuJwZHr6FmvIL1FsOVFro/4WlXa0lg4LiYOm/8H8dHv+fXTg==} @@ -753,7 +743,6 @@ packages: '@smithy/signature-v4': 4.2.1 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@aws-sdk/token-providers@3.679.0(@aws-sdk/client-sso-oidc@3.682.0): resolution: {integrity: sha512-1/+Zso/x2jqgutKixYFQEGli0FELTgah6bm7aB+m2FAWH4Hz7+iMUsazg6nSWm714sG9G3h5u42Dmpvi9X6/hA==} @@ -780,7 +769,6 @@ packages: engines: {node: '>=16.0.0'} dependencies: tslib: 2.8.1 - dev: false /@aws-sdk/util-endpoints@3.679.0: resolution: {integrity: sha512-YL6s4Y/1zC45OvddvgE139fjeWSKKPgLlnfrvhVL7alNyY9n7beR4uhoDpNrt5mI6sn9qiBF17790o+xLAXjjg==} @@ -826,7 +814,6 @@ packages: dependencies: '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@babel/code-frame@7.26.2: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} @@ -1424,7 +1411,7 @@ packages: '@push.rocks/smartlog': 3.0.7 '@push.rocks/smartpromise': 4.0.4 '@push.rocks/smartshell': 3.0.6 - '@push.rocks/tapbundle': 5.4.1(@aws-sdk/client-sso-oidc@3.682.0) + '@push.rocks/tapbundle': 5.4.3(@aws-sdk/client-sso-oidc@3.682.0) '@types/ws': 8.5.13 figures: 6.1.0 ws: 8.18.0 @@ -1742,7 +1729,6 @@ packages: '@tsclass/tsclass': 4.1.2 transitivePeerDependencies: - aws-crt - dev: false /@push.rocks/smartbuffer@3.0.4: resolution: {integrity: sha512-TLfhx/JD61YC8XGO9TI6Ux6US38R14HaIM84QT8hZZod8axfXrg+h8xA8tMUBpSV8PXsQy9LzxmOq0Il1fmDXw==} @@ -2124,16 +2110,17 @@ packages: '@push.rocks/smartpromise': 4.0.4 rxjs: 7.8.1 - /@push.rocks/smarts3@2.2.1: - resolution: {integrity: sha512-4VkGXyFmX7tZzDt67ejyxX4GUEoq/eDNKby5ReK5yvRmeI2WW29Y/TmovBAuNnirrRM4fw437g76lMVrEqZf1g==} + /@push.rocks/smarts3@2.2.3: + resolution: {integrity: sha512-8OxbL6Fzcv+TTU9bcdU+s4rWdJtiXSzFXFI8ANptUYx2LbkA6AebmiLRDlGDnxBkeDp3TL113Ou+PJoTy5D7Hg==} dependencies: - '@push.rocks/smartbucket': 2.0.4 - '@push.rocks/smartfile': 10.0.41 + '@push.rocks/smartbucket': 3.0.23 + '@push.rocks/smartfile': 11.0.21 '@push.rocks/smartpath': 5.0.18 '@tsclass/tsclass': 4.1.2 '@types/s3rver': 3.7.4 s3rver: 3.7.1 transitivePeerDependencies: + - aws-crt - supports-color dev: true @@ -2277,8 +2264,8 @@ packages: js-yaml: 3.14.1 dev: true - /@push.rocks/tapbundle@5.4.1(@aws-sdk/client-sso-oidc@3.682.0): - resolution: {integrity: sha512-1Jw5cGUqaIG5jAZuq4OxOJ64WrUlA882NwfoXwI0YNMXVvIHTWgGsjUJw7I0YN4Qvh5shnFlDEPKhU2zV020Ww==} + /@push.rocks/tapbundle@5.4.3(@aws-sdk/client-sso-oidc@3.682.0): + resolution: {integrity: sha512-8s8UMHW6gmhVGp4wucnPOiPEegaVZBcKQb+dQ8rclRm2qxipsshfKvsYw48R6ZxAFllwSicMm+xaPlpP31/mJg==} dependencies: '@open-wc/testing': 4.0.0 '@push.rocks/consolecolor': 2.0.2 @@ -2290,7 +2277,7 @@ packages: '@push.rocks/smartjson': 5.0.20 '@push.rocks/smartmongo': 2.0.10(@aws-sdk/client-sso-oidc@3.682.0) '@push.rocks/smartpromise': 4.0.4 - '@push.rocks/smarts3': 2.2.1 + '@push.rocks/smarts3': 2.2.3 '@push.rocks/smartshell': 3.0.6 '@push.rocks/smarttime': 4.0.8 transitivePeerDependencies: @@ -2662,13 +2649,11 @@ packages: dependencies: '@smithy/util-base64': 3.0.0 tslib: 2.8.1 - dev: false /@smithy/chunked-blob-reader@4.0.0: resolution: {integrity: sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==} dependencies: tslib: 2.8.1 - dev: false /@smithy/config-resolver@3.0.10: resolution: {integrity: sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw==} @@ -2710,7 +2695,6 @@ packages: '@smithy/types': 3.6.0 '@smithy/util-hex-encoding': 3.0.0 tslib: 2.8.1 - dev: false /@smithy/eventstream-serde-browser@3.0.11: resolution: {integrity: sha512-Pd1Wnq3CQ/v2SxRifDUihvpXzirJYbbtXfEnnLV/z0OGCTx/btVX74P86IgrZkjOydOASBGXdPpupYQI+iO/6A==} @@ -2719,7 +2703,6 @@ packages: '@smithy/eventstream-serde-universal': 3.0.10 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@smithy/eventstream-serde-config-resolver@3.0.8: resolution: {integrity: sha512-zkFIG2i1BLbfoGQnf1qEeMqX0h5qAznzaZmMVNnvPZz9J5AWBPkOMckZWPedGUPcVITacwIdQXoPcdIQq5FRcg==} @@ -2727,7 +2710,6 @@ packages: dependencies: '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@smithy/eventstream-serde-node@3.0.10: resolution: {integrity: sha512-hjpU1tIsJ9qpcoZq9zGHBJPBOeBGYt+n8vfhDwnITPhEre6APrvqq/y3XMDEGUT2cWQ4ramNqBPRbx3qn55rhw==} @@ -2736,7 +2718,6 @@ packages: '@smithy/eventstream-serde-universal': 3.0.10 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@smithy/eventstream-serde-universal@3.0.10: resolution: {integrity: sha512-ewG1GHbbqsFZ4asaq40KmxCmXO+AFSM1b+DcO2C03dyJj/ZH71CiTg853FSE/3SHK9q3jiYQIFjlGSwfxQ9kww==} @@ -2745,7 +2726,6 @@ packages: '@smithy/eventstream-codec': 3.1.7 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@smithy/fetch-http-handler@3.2.9: resolution: {integrity: sha512-hYNVQOqhFQ6vOpenifFME546f0GfJn2OiQ3M0FDmuUu8V/Uiwy2wej7ZXxFBNqdx0R5DZAqWM1l6VRhGz8oE6A==} @@ -2772,7 +2752,6 @@ packages: '@smithy/chunked-blob-reader-native': 3.0.1 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@smithy/hash-node@3.0.8: resolution: {integrity: sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng==} @@ -2790,7 +2769,6 @@ packages: '@smithy/types': 3.6.0 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - dev: false /@smithy/invalid-dependency@3.0.8: resolution: {integrity: sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q==} @@ -2816,7 +2794,6 @@ packages: '@smithy/types': 3.6.0 '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 - dev: false /@smithy/middleware-content-length@3.0.10: resolution: {integrity: sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg==} @@ -3096,7 +3073,6 @@ packages: '@smithy/abort-controller': 3.1.6 '@smithy/types': 3.6.0 tslib: 2.8.1 - dev: false /@socket.io/component-emitter@3.1.2: resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} @@ -3592,8 +3568,8 @@ packages: errorstacks: 2.4.1 dev: true - /@web/dev-server-core@0.7.3: - resolution: {integrity: sha512-GS+Ok6HiqNZOsw2oEv5V2OISZ2s/6icJodyGjUuD3RChr0G5HiESbKf2K8mZV4shTz9sRC9KSQf8qvno2gPKrQ==} + /@web/dev-server-core@0.7.4: + resolution: {integrity: sha512-nHSNrJ1J9GjmSceKNHpWRMjvpfE2NTV9EYUffPIr7j0sIV59gK7NI/4+9slotJ/ODXw0+e1gSeJshTOhjjVNxQ==} engines: {node: '>=18.0.0'} dependencies: '@types/koa': 2.15.0 @@ -3652,7 +3628,7 @@ packages: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@web/browser-logs': 0.4.0 - '@web/dev-server-core': 0.7.3 + '@web/dev-server-core': 0.7.4 chokidar: 4.0.1 cli-cursor: 3.1.0 co-body: 6.2.0 diff --git a/readme.md b/readme.md index 95cdf6e..4c12399 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -```markdown +````markdown # @push.rocks/smarts3 A Node.js TypeScript package to create a local S3 endpoint for development and testing using mapped local directories, simulating AWS S3. @@ -10,6 +10,7 @@ To integrate `@push.rocks/smarts3` with your project, you need to install it via ```sh npm install @push.rocks/smarts3 --save ``` +```` This command will add `@push.rocks/smarts3` as a dependency in your project's `package.json` file and download the package into the `node_modules` directory. @@ -70,6 +71,7 @@ startServer().catch(console.error); ``` **Parameters:** + - **Port**: Specify the port for the local S3 server. Defaults to `3000`. - **CleanSlate**: If `true`, clears the storage directory each time the server starts, providing a fresh test state. @@ -95,7 +97,12 @@ Uploading files to a bucket uses the `SmartBucket` module, part of the `@push.ro ```typescript import { SmartBucket } from '@push.rocks/smartbucket'; -async function uploadFile(smarts3Instance: Smarts3, bucketName: string, filePath: string, fileContent: string) { +async function uploadFile( + smarts3Instance: Smarts3, + bucketName: string, + filePath: string, + fileContent: string, +) { const s3Descriptor = await smarts3Instance.getS3Descriptor(); const smartbucketInstance = new SmartBucket(s3Descriptor); const bucket = await smartbucketInstance.getBucket(bucketName); @@ -163,7 +170,6 @@ startServer() #### Development and Testing 1. **Feature Development:** Use `@push.rocks/smarts3` to simulate file upload endpoints, ensuring your application handles file operations correctly before going live. - 2. **Continuous Integration/Continuous Deployment (CI/CD):** Integrate with CI/CD pipelines to automatically test file interactions. 3. **Data Migration Testing:** Simulate data migrations between buckets to perfect processes before implementation on actual S3. @@ -189,11 +195,12 @@ startServer() ``` In this guide, we walked through setting up and fully utilizing the `@push.rocks/smarts3` package for local development and testing. The package simulates AWS S3 operations, reducing dependency on remote services and allowing efficient development iteration cycles. By implementing the practices and scripts shared here, you can ensure a seamless and productive development experience using the local S3 simulation capabilities of `@push.rocks/smarts3`. + ``` ## License and Legal Information -This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. +This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. **Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file. @@ -203,9 +210,10 @@ This project is owned and maintained by Task Venture Capital GmbH. The names and ### Company Information -Task Venture Capital GmbH +Task Venture Capital GmbH Registered at District court Bremen HRB 35230 HB, Germany For any legal inquiries or if you require further information, please contact us via email at hello@task.vc. By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works. +``` diff --git a/test/test.ts b/test/test.ts index 2730550..2a4878d 100644 --- a/test/test.ts +++ b/test/test.ts @@ -22,7 +22,7 @@ tap.test('should be able to access buckets', async () => { const baseDirectory = await bucket.getBaseDirectory(); await baseDirectory.fastPut({ path: 'subdir/hello.txt', - contents: 'hi there!' + contents: 'hi there!', }); }); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 0e88366..6e3ba47 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smarts3', - version: '2.2.3', + version: '2.2.4', description: 'A Node.js TypeScript package to create a local S3 endpoint for simulating AWS S3 operations using mapped local directories for development and testing purposes.' } diff --git a/ts/plugins.ts b/ts/plugins.ts index 085f982..fbfbb40 100644 --- a/ts/plugins.ts +++ b/ts/plugins.ts @@ -15,7 +15,6 @@ import * as tsclass from '@tsclass/tsclass'; export { tsclass }; - // thirdparty scope import s3rver from 's3rver'; diff --git a/tsconfig.json b/tsconfig.json index dfe5a55..2413b93 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,9 +6,11 @@ "module": "NodeNext", "moduleResolution": "NodeNext", "esModuleInterop": true, - "verbatimModuleSyntax": true + "verbatimModuleSyntax": true, + "baseUrl": ".", + "paths": {} }, "exclude": [ "dist_*/**/*.d.ts" ] -} +} \ No newline at end of file