{"_id":"@debionetwork/nestjs-gcloud-storage","_rev":"5-1528627205691e612d18594e2842a9cb","name":"@debionetwork/nestjs-gcloud-storage","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@debionetwork/nestjs-gcloud-storage","version":"0.0.1","description":"Google Cloud Storage module for Nest framework","author":{"name":"Nonpawit Teerachetmongkol","email":"nonpawit.tee@aginix.tech"},"main":"./dist/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/aginix/nestjs-gcloud-storage.git"},"scripts":{"start":"tsc -p tsconfig.json","start:dev":"tsc -p tsconfig.json -w","test":"jest --passWithNoTests","precommit":"lint-staged","prettier":"prettier src/**/*.ts --write && git status","build":"rimraf dist && npm run build:lib && npm test","build:lib":"tsc -p tsconfig.json","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next"},"peerDependencies":{"@nestjs/common":"^8.0.6","@nestjs/core":"^8.0.0","@nestjs/platform-express":"^8.0.0"},"dependencies":{"@google-cloud/storage":"^4.7.0"},"devDependencies":{"@nestjs/common":"8.0.6","@nestjs/core":"8.0.0","@nestjs/platform-express":"8.0.0","@nestjs/testing":"8.0.0","@types/jest":"26.0.24","@types/node":"16.0.0","husky":"4.2.5","jest":"27.0.6","lint-staged":"10.2.11","prettier":"2.0.5","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","supertest":"6.1.3","ts-jest":"27.0.3","tslint":"6.1.3","typescript":"4.3.5"},"lint-staged":{"*.ts":["prettier --write","git add"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"gitHead":"5439050fd16a13439a845ec5ea9f20c0ca2773e5","bugs":{"url":"https://github.com/aginix/nestjs-gcloud-storage/issues"},"homepage":"https://github.com/aginix/nestjs-gcloud-storage#readme","_id":"@debionetwork/nestjs-gcloud-storage@0.0.1","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-XkS2XkQsvPgbQzGbXTR/Ir8jyfKS72KbYf3JRAMVfOYEVUiA4lujyHzp6t6ihOxWiUVS68WiJKhi6Plp4fCgxA==","shasum":"4a334bb4c3c49861f1ae0e9994a17fbd0305d456","tarball":"https://registry.npmjs.org/@debionetwork/nestjs-gcloud-storage/-/nestjs-gcloud-storage-0.0.1.tgz","fileCount":4,"unpackedSize":6896,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDk3AnQujIlF6du4TkK8pozZUkYwJJ88luuaEQwllPZdQIhAMPJdcR/USybHLVsAmIplDMMHw2H1QIG6jq51CD6oPV4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipx+kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3lRAAortbDDc7uJGGjS/oQSI3i8DjQCAfIXaWRKQwK0ivIlyQvZ0H\r\nsF02EiMH/emoY0vc8oyzrwtW+7A6scLNH5xvKKeu0bf4Mh3rMWzVHrRWepOL\r\nggNULUY3CoKO6ZpbML6/TAfUyNOL/p3vbArWY6OM8D1YFCPRtWinhrU6LH5M\r\ntwvK12rwE26eXhdhTAF8rhvjntViKiFGgRL1dek1BL4qSwbYXdbTfiirf9kp\r\nJ4vBLOVoXC6N2JT/icvGNjC3AbIzM6UND4vs+VHRAOqzox6Wfjr+pntqYShy\r\nsSnlDIhzbplo3Oes5HO09gF0rML/PG5GxACwNKA7r7tz2XJeuWtlRhfuiMkb\r\nu9pMnBb94AH4C0Uwo53Ce7lsTclp2oP8XFYv4lqjhs5JgkIES23cob/06mYO\r\n7ankt7edZZs4IOV+fEcHL1qSjubz3pR1mlnoN9EQS1nwuxzOqlhJ+UrXeChI\r\nBdVnjhD4mEEgfUNleOirHMalqXwyAmKJMmCws5Fl0pK2kW2W1LWiIL/jsOUv\r\nG1USs3BReWd7PzCO0z/12Y3MGmfJf+ic60vdMZrAk93qpWCiE/bnIijj4iyD\r\nlQghHuPs0jBU7YEdpI+0XGxcOqKjo0SmakrbSS0GowysDqAc+F9OauzVV68o\r\niXwDAw+qVrKVaXFU7AzjzOVNzupzt7MUy20=\r\n=aPjs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jackyrahman","email":"jacky@blocksphere.id"},"directories":{},"maintainers":[{"name":"lyd-bs","email":"lydia@blocksphere.id"},{"name":"ciniiia","email":"cinia@blocksphere.id"},{"name":"jackyrahman","email":"jacky@blocksphere.id"},{"name":"debio-devops","email":"devops@debio.network"},{"name":"agustinustheoo","email":"agustinustheoo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-gcloud-storage_0.0.1_1655119780307_0.7792937919352749"},"_hasShrinkwrap":false},"0.0.2":{"name":"@debionetwork/nestjs-gcloud-storage","version":"0.0.2","description":"Google Cloud Storage module for Nest framework","author":{"name":"Nonpawit Teerachetmongkol","email":"nonpawit.tee@aginix.tech"},"main":"./dist/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/aginix/nestjs-gcloud-storage.git"},"scripts":{"start":"tsc -p tsconfig.json","start:dev":"tsc -p tsconfig.json -w","test":"jest --passWithNoTests","precommit":"lint-staged","prettier":"prettier src/**/*.ts --write && git status","build":"rimraf dist && npm run build:lib && npm test","build:lib":"tsc -p tsconfig.json","prepublish:npm":"npm run build","publish:npm":"npm publish --access public","prepublish:next":"npm run build","publish:next":"npm publish --access public --tag next"},"peerDependencies":{"@nestjs/common":"^8.0.6","@nestjs/core":"^8.0.0","@nestjs/platform-express":"^8.0.0"},"dependencies":{"@google-cloud/storage":"^4.7.0"},"devDependencies":{"@nestjs/common":"8.0.6","@nestjs/core":"8.0.0","@nestjs/platform-express":"8.0.0","@nestjs/testing":"8.0.0","@types/jest":"26.0.24","@types/node":"16.0.0","husky":"4.2.5","jest":"27.0.6","lint-staged":"10.2.11","prettier":"2.0.5","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","supertest":"6.1.3","ts-jest":"27.0.3","tslint":"6.1.3","typescript":"4.3.5"},"lint-staged":{"*.ts":["prettier --write","git add"]},"husky":{"hooks":{"pre-commit":"lint-staged"}},"types":"./dist\\index.d.ts","gitHead":"ecea56139904119e1b91e8682e104e9a1f12a540","bugs":{"url":"https://github.com/aginix/nestjs-gcloud-storage/issues"},"homepage":"https://github.com/aginix/nestjs-gcloud-storage#readme","_id":"@debionetwork/nestjs-gcloud-storage@0.0.2","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-tA4yTj4aTiLRVLyCJEsX7uy9fvpoFzxS/yAsmq3ubuHmF3dByYBCIHA+Tu8eisQOLXwFAcbALp13+RLq9Kc6bA==","shasum":"3d0f84259cfad37ee6c1ca21dc12e50aa3127aec","tarball":"https://registry.npmjs.org/@debionetwork/nestjs-gcloud-storage/-/nestjs-gcloud-storage-0.0.2.tgz","fileCount":24,"unpackedSize":30580,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBSrDoEatkV8LfwuBc4G0V2xc3CNXM3EaXlJUdfCbFbAIhAOASLxVHpZM25Am2FsLnhE+08ZcbqdEK97ONfktAH8/D"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipyENACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpzdA//X7q0NGutUGLmbgE6Q12n0NWhbZ0C3/MpE6gUn9WUu8EzT5hH\r\n/btyRKdnzv31/tha8u4wRQReIzRwHHYcKJGDMJJRjwS3K6CTIqEVfg6nnkvq\r\nnV9bOuCPl05qHFFuPn0Vvh7TVMnKzJt6M7igNf587AehK+WJXKroTcj7z4RH\r\nZvNDnduPFguWeWZUxxGFuW8ExJOwKVUP6/mrJCxsVP4Lp32w2yCEeVGjPaon\r\nbONgRhRcGCxVQ9Utu8L9zM2eJtobzhhhM1NyuHQkBo+N0NOSdRy4JeUe/klU\r\n6CvoZ2rfIBu7TIZnMda/Ju47fAfg/YdbjWUShjdr+ahYn9kH1m6MpJcB5kq2\r\npJASoTjYg/IEw1zUHbS2bf1pax9VRA7yj+DtdXwUb+VHrUyHNn2Ids8PJcu0\r\nPauqmbLt67vlvSS0OKRkuor8tZL6PCoWxgkl+6cMw1yHEK5BcQBsEQuXZpyz\r\nboqjvOt0//8wu3QWTqGh/kZVV6Brta5xXMzDD3mGCdU0h/PNDc3q26BX1xE0\r\n8xt1HrndEm5Ns0MZ9VeUYPo9cUA1ptL4vdrc4CjuCi3Wu/nKReyhHaTbTRxU\r\nvG96N2NAJ56nlosggejA7/3klsrUDvKWfrK0TT9Hl5rE0U0UrN5/mChBgt3R\r\ncM5HrMZ3MCj6MJ7kw0pT5/6rYY3rnvPDwL8=\r\n=Cz+s\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"jackyrahman","email":"jacky@blocksphere.id"},"directories":{},"maintainers":[{"name":"lyd-bs","email":"lydia@blocksphere.id"},{"name":"ciniiia","email":"cinia@blocksphere.id"},{"name":"jackyrahman","email":"jacky@blocksphere.id"},{"name":"debio-devops","email":"devops@debio.network"},{"name":"agustinustheoo","email":"agustinustheoo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-gcloud-storage_0.0.2_1655120140926_0.13835846002117158"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-13T11:29:40.237Z","0.0.1":"2022-06-13T11:29:40.506Z","modified":"2024-01-08T09:25:16.854Z","0.0.2":"2022-06-13T11:35:41.081Z"},"maintainers":[{"email":"alexanderang41234@gmail.com","name":"alex32356"},{"email":"irmannmal@gmail.com","name":"irmannmal"},{"email":"debio_dev@blocksphere.id","name":"debio_dev"},{"email":"theo@blocksphere.id","name":"theo.blocksphere"},{"email":"lydia@blocksphere.id","name":"lyd-bs"},{"email":"cinia@blocksphere.id","name":"ciniiia"},{"email":"jacky@blocksphere.id","name":"jackyrahman"},{"email":"devops@debio.network","name":"debio-devops"},{"email":"agustinustheoo@gmail.com","name":"agustinustheoo"}],"description":"Google Cloud Storage module for Nest framework","homepage":"https://github.com/aginix/nestjs-gcloud-storage#readme","repository":{"type":"git","url":"git+https://github.com/aginix/nestjs-gcloud-storage.git"},"author":{"name":"Nonpawit Teerachetmongkol","email":"nonpawit.tee@aginix.tech"},"bugs":{"url":"https://github.com/aginix/nestjs-gcloud-storage/issues"},"license":"MIT","readme":"<a href=\"https://www.npmjs.com/@aginix/nestjs-gcloud-storage\"><img src=\"https://img.shields.io/npm/v/@aginix/nestjs-gcloud-storage.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/@aginix/nestjs-gcloud-storage\"><img src=\"https://img.shields.io/npm/l/@aginix/nestjs-gcloud-storage.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/@aginix/nestjs-gcloud-storage\"><img src=\"https://img.shields.io/npm/dm/@aginix/nestjs-gcloud-storage.svg\" alt=\"NPM Downloads\" /></a>\r\n\r\n## Description\r\n\r\nGoogle Cloud Storage Module for Nest.js Framework\r\n\r\n## Installation\r\n\r\n```bash\r\n$ yarn add @aginix/nestjs-gcloud-storage\r\n```\r\n\r\n## Examples\r\n\r\n### Default import\r\n\r\nIf you have bucket domain name you can config `storageBaseUri`.\r\n\r\n```typescript\r\nimport { Module } from '@nestjs/common';\r\nimport { GCloudStorageModule } from '@aginix/nestjs-gcloud-storage';\r\n\r\n@Module({\r\n  imports: [\r\n    GCloudStorageModule.withConfig({\r\n      defaultBucketname: 'bucket.aginix.tech',\r\n      storageBaseUri: 'bucket.aginix.tech',\r\n      predefinedAcl: 'private' // Default is publicRead\r\n    })\r\n  ],\r\n})\r\nexport class AppModule {}\r\n```\r\n\r\n### Default import with asynchonous\r\n\r\n```typescript\r\nimport { Module } from '@nestjs/common';\r\nimport { GCloudStorageModule } from '@aginix/nestjs-gcloud-storage';\r\nimport { ConfigService } from './config.service';\r\nimport { ConfigModule } from './config.module';\r\n\r\n@Module({\r\n  imports: [\r\n    GCloudStorageModule.withConfigAsync({\r\n      inject: [ConfigService],\r\n      useFactory: (config: ConfigService) => ({\r\n        defaultBucketname: config.get('GCS_BUCKET_NAME'),\r\n        storageBaseUri: config.get('GCS_DOMAIN_NAME'),\r\n      }),\r\n      imports: [ConfigModule],\r\n    })\r\n  ],\r\n})\r\nexport class AppModule {}\r\n```\r\n\r\n### Using uniform bucket-level access\r\n\r\nSet `predefinedAcl` to `null`\r\n\r\n```typescript\r\n@Module({\r\n  imports: [\r\n    GCloudStorageModule.withConfig({\r\n      predefinedAcl: null\r\n    })\r\n  ],\r\n})\r\nexport class AppModule {}\r\n```\r\n\r\n\r\n### Store a file using the default config\r\n\r\n```typescript\r\nimport {\r\n  Controller,\r\n  Logger,\r\n  Post,\r\n  UploadedFile,\r\n  UseInterceptors,\r\n} from '@nestjs/common';\r\nimport { FileInterceptor } from '@nestjs/platform-express';\r\nimport {\r\n  GCloudStorageFileInterceptor,\r\n  UploadedFileMetadata,\r\n} from '@aginix/nestjs-gcloud-storage';\r\n\r\n@Controller()\r\nexport class AppController {\r\n  \r\n  @Post('gcs/upload')\r\n  @UseInterceptors(\r\n    GCloudStorageFileInterceptor('file'),\r\n  )\r\n  UploadedFilesUsingInterceptor(\r\n    @UploadedFile()\r\n    file: UploadedFileMetadata,\r\n  ) {\r\n    Logger.log(`Storage URL: ${file.storageUrl}`, 'AppController');\r\n  }\r\n}\r\n```\r\n\r\n### Store a file using a specific folder/prefix name\r\n\r\n```typescript\r\nimport {\r\n  Controller,\r\n  Logger,\r\n  Post,\r\n  UploadedFile,\r\n  UseInterceptors,\r\n} from '@nestjs/common';\r\nimport { FileInterceptor } from '@nestjs/platform-express';\r\nimport {\r\n  GCloudStorageFileInterceptor,\r\n  UploadedFileMetadata,\r\n} from '@aginix/nestjs-gcloud-storage';\r\n\r\n@Controller()\r\nexport class AppController {\r\n  \r\n  @Post('gcs/upload')\r\n  @UseInterceptors(\r\n    GCloudStorageFileInterceptor('file', undefined, { prefix: 'prefix/test' })\r\n  )\r\n  UploadedFilesUsingInterceptor(\r\n    @UploadedFile()\r\n    file: UploadedFileMetadata,\r\n  ) {\r\n    Logger.log(`Storage URL: ${file.storageUrl}`, 'AppController');\r\n  }\r\n}\r\n```\r\n\r\n### Store a file using a specific predefined ACL\r\n\r\n```typescript\r\n@Controller()\r\nexport class AppController {\r\n  \r\n  @Post('gcs/secret-file')\r\n  @UseInterceptors(\r\n    GCloudStorageFileInterceptor('secret-file', undefined, { predefinedAcl: 'private' })\r\n  )\r\n  UploadedSecretFile(\r\n    @UploadedFile()\r\n    file: UploadedFileMetadata,\r\n  ) {\r\n    Logger.log(`Storage URL: ${file.storageUrl}`, 'AppController');\r\n  }\r\n}\r\n```\r\n\r\n## License\r\n\r\nMIT © [Aginix Technologies Co., Ltd.](https://github.com/Aginix/nestjs-gcloud-storage)\r\n","readmeFilename":"README.md"}