Compare commits

...

4 Commits

Author SHA1 Message Date
bdcfcee37a 2.2.5
Some checks failed
Default (tags) / security (push) Successful in 41s
Default (tags) / test (push) Successful in 1m54s
Default (tags) / release (push) Failing after 1m38s
Default (tags) / metadata (push) Successful in 2m13s
2024-11-06 17:03:10 +01:00
d41878721c fix(ci): Corrected docker image URLs in Gitea workflows to match the correct domain format. 2024-11-06 17:03:10 +01:00
3f69d55f5f 2.2.4
Some checks failed
Default (tags) / security (push) Failing after 0s
Default (tags) / test (push) Failing after 0s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-11-06 17:02:30 +01:00
ae015e433d fix(core): Improve code style and update dependencies 2024-11-06 17:02:29 +01:00
10 changed files with 50 additions and 52 deletions

View File

@ -6,7 +6,7 @@ on:
- '**'
env:
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@/${{gitea.repository}}.git
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}

View File

@ -6,7 +6,7 @@ on:
- '*'
env:
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${{gitea.repository_owner}}:${{secrets.GITEA_TOKEN}}@/${{gitea.repository}}.git
NPMCI_TOKEN_NPM: ${{secrets.NPMCI_TOKEN_NPM}}
NPMCI_TOKEN_NPM2: ${{secrets.NPMCI_TOKEN_NPM2}}

View File

@ -1,5 +1,18 @@
# Changelog
## 2024-11-06 - 2.2.5 - fix(ci)
Corrected docker image URLs in Gitea workflows to match the correct domain format.
- Updated IMAGE environment variable in .gitea/workflows/default_nottags.yaml
- Updated IMAGE environment variable in .gitea/workflows/default_tags.yaml
## 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

View File

@ -1,6 +1,6 @@
{
"name": "@push.rocks/smarts3",
"version": "2.2.3",
"version": "2.2.5",
"private": false,
"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.",
"main": "dist_ts/index.js",
@ -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": [

52
pnpm-lock.yaml generated
View File

@ -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

View File

@ -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.
```

View File

@ -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!',
});
});

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smarts3',
version: '2.2.3',
version: '2.2.5',
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.'
}

View File

@ -15,7 +15,6 @@ import * as tsclass from '@tsclass/tsclass';
export { tsclass };
// thirdparty scope
import s3rver from 's3rver';

View File

@ -6,9 +6,11 @@
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"verbatimModuleSyntax": true
"verbatimModuleSyntax": true,
"baseUrl": ".",
"paths": {}
},
"exclude": [
"dist_*/**/*.d.ts"
]
}
}