@contember/engine-s3-plugin 2.1.0-alpha.30 → 2.1.0-alpha.36

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.
Files changed (97) hide show
  1. package/package.json +19 -14
  2. package/src/Config.ts +0 -1
  3. package/src/S3ConfigProcessor.ts +0 -1
  4. package/src/S3ObjectAuthorizator.ts +0 -1
  5. package/src/S3SchemaContributor.ts +2 -7
  6. package/src/S3SchemaTypes.ts +3 -10
  7. package/src/S3Service.ts +1 -2
  8. package/src/S3Signer.ts +1 -1
  9. package/tests/cases/authorizator.test.ts +1 -2
  10. package/tests/cases/signRequest.test.ts +54 -26
  11. package/types/picomatch/index.d.ts +1 -1
  12. package/dist/development/index.cjs +0 -27
  13. package/dist/development/index.cjs.map +0 -1
  14. package/dist/development/index.js +0 -28
  15. package/dist/development/index.js.map +0 -1
  16. package/dist/development/src/Config.cjs +0 -73
  17. package/dist/development/src/Config.cjs.map +0 -1
  18. package/dist/development/src/Config.js +0 -56
  19. package/dist/development/src/Config.js.map +0 -1
  20. package/dist/development/src/S3ConfigProcessor.cjs +0 -60
  21. package/dist/development/src/S3ConfigProcessor.cjs.map +0 -1
  22. package/dist/development/src/S3ConfigProcessor.js +0 -43
  23. package/dist/development/src/S3ConfigProcessor.js.map +0 -1
  24. package/dist/development/src/S3ObjectAuthorizator.cjs +0 -46
  25. package/dist/development/src/S3ObjectAuthorizator.cjs.map +0 -1
  26. package/dist/development/src/S3ObjectAuthorizator.js +0 -46
  27. package/dist/development/src/S3ObjectAuthorizator.js.map +0 -1
  28. package/dist/development/src/S3SchemaContributor.cjs +0 -107
  29. package/dist/development/src/S3SchemaContributor.cjs.map +0 -1
  30. package/dist/development/src/S3SchemaContributor.js +0 -107
  31. package/dist/development/src/S3SchemaContributor.js.map +0 -1
  32. package/dist/development/src/S3SchemaTypes.cjs +0 -71
  33. package/dist/development/src/S3SchemaTypes.cjs.map +0 -1
  34. package/dist/development/src/S3SchemaTypes.js +0 -71
  35. package/dist/development/src/S3SchemaTypes.js.map +0 -1
  36. package/dist/development/src/S3Service.cjs +0 -105
  37. package/dist/development/src/S3Service.cjs.map +0 -1
  38. package/dist/development/src/S3Service.js +0 -105
  39. package/dist/development/src/S3Service.js.map +0 -1
  40. package/dist/development/src/S3Signer.cjs +0 -84
  41. package/dist/development/src/S3Signer.cjs.map +0 -1
  42. package/dist/development/src/S3Signer.js +0 -84
  43. package/dist/development/src/S3Signer.js.map +0 -1
  44. package/dist/production/index.cjs +0 -27
  45. package/dist/production/index.cjs.map +0 -1
  46. package/dist/production/index.js +0 -28
  47. package/dist/production/index.js.map +0 -1
  48. package/dist/production/src/Config.cjs +0 -73
  49. package/dist/production/src/Config.cjs.map +0 -1
  50. package/dist/production/src/Config.js +0 -56
  51. package/dist/production/src/Config.js.map +0 -1
  52. package/dist/production/src/S3ConfigProcessor.cjs +0 -60
  53. package/dist/production/src/S3ConfigProcessor.cjs.map +0 -1
  54. package/dist/production/src/S3ConfigProcessor.js +0 -43
  55. package/dist/production/src/S3ConfigProcessor.js.map +0 -1
  56. package/dist/production/src/S3ObjectAuthorizator.cjs +0 -46
  57. package/dist/production/src/S3ObjectAuthorizator.cjs.map +0 -1
  58. package/dist/production/src/S3ObjectAuthorizator.js +0 -46
  59. package/dist/production/src/S3ObjectAuthorizator.js.map +0 -1
  60. package/dist/production/src/S3SchemaContributor.cjs +0 -107
  61. package/dist/production/src/S3SchemaContributor.cjs.map +0 -1
  62. package/dist/production/src/S3SchemaContributor.js +0 -107
  63. package/dist/production/src/S3SchemaContributor.js.map +0 -1
  64. package/dist/production/src/S3SchemaTypes.cjs +0 -71
  65. package/dist/production/src/S3SchemaTypes.cjs.map +0 -1
  66. package/dist/production/src/S3SchemaTypes.js +0 -71
  67. package/dist/production/src/S3SchemaTypes.js.map +0 -1
  68. package/dist/production/src/S3Service.cjs +0 -105
  69. package/dist/production/src/S3Service.cjs.map +0 -1
  70. package/dist/production/src/S3Service.js +0 -105
  71. package/dist/production/src/S3Service.js.map +0 -1
  72. package/dist/production/src/S3Signer.cjs +0 -84
  73. package/dist/production/src/S3Signer.cjs.map +0 -1
  74. package/dist/production/src/S3Signer.js +0 -84
  75. package/dist/production/src/S3Signer.js.map +0 -1
  76. package/dist/tests/cases/authorizator.test.d.ts +0 -2
  77. package/dist/tests/cases/authorizator.test.d.ts.map +0 -1
  78. package/dist/tests/cases/signRequest.test.d.ts +0 -2
  79. package/dist/tests/cases/signRequest.test.d.ts.map +0 -1
  80. package/dist/tests/tsconfig.tsbuildinfo +0 -1
  81. package/dist/types/Config.d.ts +0 -33
  82. package/dist/types/Config.d.ts.map +0 -1
  83. package/dist/types/S3ConfigProcessor.d.ts +0 -9
  84. package/dist/types/S3ConfigProcessor.d.ts.map +0 -1
  85. package/dist/types/S3ObjectAuthorizator.d.ts +0 -22
  86. package/dist/types/S3ObjectAuthorizator.d.ts.map +0 -1
  87. package/dist/types/S3SchemaContributor.d.ts +0 -21
  88. package/dist/types/S3SchemaContributor.d.ts.map +0 -1
  89. package/dist/types/S3SchemaTypes.d.ts +0 -21
  90. package/dist/types/S3SchemaTypes.d.ts.map +0 -1
  91. package/dist/types/S3Service.d.ts +0 -44
  92. package/dist/types/S3Service.d.ts.map +0 -1
  93. package/dist/types/S3Signer.d.ts +0 -22
  94. package/dist/types/S3Signer.d.ts.map +0 -1
  95. package/dist/types/index.d.ts +0 -13
  96. package/dist/types/index.d.ts.map +0 -1
  97. package/dist/types/tsconfig.tsbuildinfo +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/engine-s3-plugin",
3
- "version": "2.1.0-alpha.30",
3
+ "version": "2.1.0-alpha.36",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -23,22 +23,27 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@contember/engine-plugins": "2.1.0-alpha.30",
27
- "@contember/graphql-utils": "2.1.0-alpha.30",
28
- "@contember/typesafe": "2.1.0-alpha.30",
29
- "mime-types": "^2.1.35",
30
- "picomatch": "^4.0.2",
31
- "qs": "^6.13.0",
32
- "uuid": "^11.0.5"
26
+ "@contember/engine-plugins": "workspace:*",
27
+ "@contember/graphql-utils": "workspace:*",
28
+ "@contember/typesafe": "workspace:*",
29
+ "mime-types": "catalog:",
30
+ "picomatch": "catalog:",
31
+ "qs": "catalog:",
32
+ "uuid": "catalog:"
33
33
  },
34
34
  "devDependencies": {
35
- "@types/mime-types": "^2.1.4",
36
- "@types/qs": "^6.9.16",
37
- "graphql": "^16.9.0"
35
+ "@types/mime-types": "catalog:",
36
+ "@types/qs": "catalog:",
37
+ "graphql": "catalog:"
38
38
  },
39
39
  "peerDependencies": {
40
- "graphql": ">= 14.6.0",
41
- "pg": "^8.9.0"
40
+ "graphql": "catalog:",
41
+ "pg": "catalog:"
42
42
  },
43
- "type": "module"
43
+ "type": "module",
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "git+https://github.com/contember/contember.git",
47
+ "directory": "packages/engine-s3-plugin"
48
+ }
44
49
  }
package/src/Config.ts CHANGED
@@ -8,7 +8,6 @@ export enum S3Providers {
8
8
  cloudserver = 'cloudserver',
9
9
  }
10
10
 
11
-
12
11
  export const s3ConfigSchema = Typesafe.intersection(
13
12
  Typesafe.object({
14
13
  bucket: Typesafe.string,
@@ -40,5 +40,4 @@ export class S3ConfigProcessor implements ConfigProcessor<Project3Config> {
40
40
  }),
41
41
  )
42
42
  }
43
-
44
43
  }
@@ -1,4 +1,3 @@
1
- // eslint-disable-next-line @typescript-eslint/triple-slash-reference
2
1
  /// <reference path="../types/picomatch/index.d.ts" />
3
2
  import pm from 'picomatch'
4
3
  import { ForbiddenError } from '@contember/graphql-utils'
@@ -33,7 +33,6 @@ export type S3SchemaAcl = Record<
33
33
  }
34
34
  >
35
35
 
36
-
37
36
  export class S3SchemaContributor implements GraphQLSchemaContributor {
38
37
  constructor(
39
38
  private readonly s3Factory: S3ServiceFactory,
@@ -48,10 +47,7 @@ export class S3SchemaContributor implements GraphQLSchemaContributor {
48
47
  if (!context.project.s3) {
49
48
  return undefined
50
49
  }
51
- const rules = context.identity.projectRoles.flatMap(it =>
52
- Object.entries((context.schema.acl.roles[it]?.s3 as S3SchemaAcl) || {}),
53
- )
54
-
50
+ const rules = context.identity.projectRoles.flatMap(it => Object.entries((context.schema.acl.roles[it]?.s3 as S3SchemaAcl) || {}))
55
51
 
56
52
  const uploadRules = rules.filter(([, it]) => it.upload).map(([it, val]) => ({
57
53
  pattern: it,
@@ -61,7 +57,7 @@ export class S3SchemaContributor implements GraphQLSchemaContributor {
61
57
  pattern: it,
62
58
  }))
63
59
 
64
- if (uploadRules.length === 0 && readRules.length == 0) {
60
+ if (uploadRules.length === 0 && readRules.length === 0) {
65
61
  return undefined
66
62
  }
67
63
 
@@ -89,7 +85,6 @@ export class S3SchemaContributor implements GraphQLSchemaContributor {
89
85
  }
90
86
 
91
87
  private createReadMutation(authorizator: S3ObjectAuthorizator): GraphQLFieldConfig<any, { project: Project3Config }, any> {
92
-
93
88
  return {
94
89
  type: new GraphQLNonNull(S3SignedRead),
95
90
  args: {
@@ -1,12 +1,4 @@
1
- import {
2
- GraphQLEnumType,
3
- GraphQLInputObjectType,
4
- GraphQLInt,
5
- GraphQLList,
6
- GraphQLNonNull,
7
- GraphQLObjectType,
8
- GraphQLString,
9
- } from 'graphql'
1
+ import { GraphQLEnumType, GraphQLInputObjectType, GraphQLInt, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLString } from 'graphql'
10
2
 
11
3
  export const S3Header = new GraphQLObjectType({
12
4
  name: 'S3Header',
@@ -17,7 +9,8 @@ export const S3Header = new GraphQLObjectType({
17
9
  })
18
10
 
19
11
  export const S3ContentDisposition = new GraphQLEnumType({
20
- name: 'S33ContentDisposition', values: {
12
+ name: 'S33ContentDisposition',
13
+ values: {
21
14
  ATTACHMENT: {},
22
15
  INLINE: {},
23
16
  },
package/src/S3Service.ts CHANGED
@@ -23,7 +23,6 @@ type SignedUploadUrl = {
23
23
  method: string
24
24
  }
25
25
 
26
-
27
26
  export class S3Service {
28
27
  private readonly publicBaseUrl: string
29
28
 
@@ -96,7 +95,7 @@ export class S3Service {
96
95
  }
97
96
  }
98
97
 
99
- public getSignedReadUrl({ objectKey, expiration }: { objectKey: string; expiration: number | null}): SignedReadUrl {
98
+ public getSignedReadUrl({ objectKey, expiration }: { objectKey: string; expiration: number | null }): SignedReadUrl {
100
99
  const bucket = this.config.bucket
101
100
 
102
101
  const publicPrefix = this.formatPublicUrl('')
package/src/S3Signer.ts CHANGED
@@ -32,7 +32,7 @@ export class S3Signer {
32
32
  const nowFormatted = this.providers
33
33
  .now()
34
34
  .toISOString()
35
- .replace(/[:\-]|\.\d{3}/g, '')
35
+ .replace(/[:-]|\.\d{3}/g, '')
36
36
  const queryString = this.getQueryParams(request, nowFormatted)
37
37
  const path = uris.basePath + '/' + request.key
38
38
  const lines = [
@@ -1,4 +1,4 @@
1
- import { test, expect } from 'bun:test'
1
+ import { expect, test } from 'bun:test'
2
2
  import { S3ObjectAuthorizator } from '../../src'
3
3
 
4
4
  test('required read pattern', () => {
@@ -13,7 +13,6 @@ test('required upload pattern', () => {
13
13
  expect(() => authorizator.verifyUploadAccess({ key: 'lorem.jpg', size: null })).toThrow('Upload access forbidden for object key lorem.jpg')
14
14
  })
15
15
 
16
-
17
16
  test('max upload size', () => {
18
17
  const authorizator = new S3ObjectAuthorizator([{ pattern: '**', maxSize: 1024 }], [])
19
18
  expect(() => authorizator.verifyUploadAccess({ key: 'lorem.jpg', size: 1000 })).not.toThrow()
@@ -1,54 +1,82 @@
1
- import { test, expect } from 'bun:test'
1
+ import { expect, test } from 'bun:test'
2
2
  import { S3ObjectAuthorizator, S3Service } from '../../src'
3
3
 
4
4
  const mocked = new Date('2021-07-02T17:22Z')
5
5
  const constantUuid = '9fce3907-ff2b-45bb-b4ce-eff5527dd315'
6
- const createS3Service = (bucket: string, prefix = '') => new S3Service(
7
- {
8
- bucket,
9
- region: 'eu-central-1',
10
- credentials: {
11
- key: 'test',
12
- secret: 'abcd',
6
+ const createS3Service = (bucket: string, prefix = '') =>
7
+ new S3Service(
8
+ {
9
+ bucket,
10
+ region: 'eu-central-1',
11
+ credentials: {
12
+ key: 'test',
13
+ secret: 'abcd',
14
+ },
15
+ prefix,
13
16
  },
14
- prefix,
15
- },
16
- {
17
- uuid: () => constantUuid,
18
- now: () => mocked,
19
- },
20
- new S3ObjectAuthorizator([{ pattern: '**' }], [{ pattern: '**' }]),
21
- )
22
-
17
+ {
18
+ uuid: () => constantUuid,
19
+ now: () => mocked,
20
+ },
21
+ new S3ObjectAuthorizator([{ pattern: '**' }], [{ pattern: '**' }]),
22
+ )
23
23
 
24
24
  test('sign s3 request', () => {
25
25
  const service = createS3Service('test')
26
26
  const signed = service.getSignedReadUrl({ objectKey: 'foo.jpg', expiration: null })
27
- expect(signed.url).toEqual('https://test.s3.eu-central-1.amazonaws.com/foo.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=3600&X-Amz-Signature=00e912fe0383066802fc6c0f93ffb223320ca143992385fe69070bbb87c758dc&X-Amz-SignedHeaders=host')
27
+ expect(signed.url).toEqual(
28
+ 'https://test.s3.eu-central-1.amazonaws.com/foo.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=3600&X-Amz-Signature=00e912fe0383066802fc6c0f93ffb223320ca143992385fe69070bbb87c758dc&X-Amz-SignedHeaders=host',
29
+ )
28
30
  })
29
31
 
30
32
  test('sign s3 request - prefix', () => {
31
33
  const service = createS3Service('test', 'lorem')
32
34
  const signed = service.getSignedReadUrl({ objectKey: 'lorem/foo.jpg', expiration: null })
33
- expect(signed.url).toEqual('https://test.s3.eu-central-1.amazonaws.com/lorem/foo.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=3600&X-Amz-Signature=f6c69dc306422c2b3242c9d9d42147336817720ffae249af8bd91cc7062e9f6d&X-Amz-SignedHeaders=host')
35
+ expect(signed.url).toEqual(
36
+ 'https://test.s3.eu-central-1.amazonaws.com/lorem/foo.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=3600&X-Amz-Signature=f6c69dc306422c2b3242c9d9d42147336817720ffae249af8bd91cc7062e9f6d&X-Amz-SignedHeaders=host',
37
+ )
34
38
  })
35
39
 
36
40
  test('sign upload', () => {
37
41
  const service = createS3Service('test')
38
- const signed = service.getSignedUploadUrl({ contentType: 'image/jpeg', acl: 'PUBLIC_READ', expiration: 1800, contentDisposition: null, extension: null, fileName: null, prefix: null, suffix: null, size: null })
39
- expect(signed.url).toEqual('https://test.s3.eu-central-1.amazonaws.com/9fce3907-ff2b-45bb-b4ce-eff5527dd315.jpeg?Cache-Control=immutable&Content-Type=image%2Fjpeg&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=1800&X-Amz-Signature=fcd00b967054c19a2ee64b59e31d61e032ea086dcf2f0d8c36a883971c469c99&X-Amz-SignedHeaders=cache-control%3Bhost%3Bx-amz-acl&x-amz-acl=public-read')
42
+ const signed = service.getSignedUploadUrl({
43
+ contentType: 'image/jpeg',
44
+ acl: 'PUBLIC_READ',
45
+ expiration: 1800,
46
+ contentDisposition: null,
47
+ extension: null,
48
+ fileName: null,
49
+ prefix: null,
50
+ suffix: null,
51
+ size: null,
52
+ })
53
+ expect(signed.url).toEqual(
54
+ 'https://test.s3.eu-central-1.amazonaws.com/9fce3907-ff2b-45bb-b4ce-eff5527dd315.jpg?Cache-Control=immutable&Content-Type=image%2Fjpeg&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=1800&X-Amz-Signature=b4d5ce6a36e7684f1367addb3259e8361a0ef1972986c05ce01536f2fd955a32&X-Amz-SignedHeaders=cache-control%3Bhost%3Bx-amz-acl&x-amz-acl=public-read',
55
+ )
40
56
  })
41
57
 
42
58
  test('sign upload #2', () => {
43
59
  const service = createS3Service('test')
44
- const signed = service.getSignedUploadUrl({ contentType: 'image/jpeg', acl: 'PUBLIC_READ', expiration: 1800, contentDisposition: 'INLINE', extension: 'jpeg', fileName: 'foo-bar.jpeg', prefix: 'foo', suffix: 'bar', size: null })
45
- expect(signed.url).toEqual('https://test.s3.eu-central-1.amazonaws.com/foo/9fce3907-ff2b-45bb-b4ce-eff5527dd315bar.jpeg?Cache-Control=immutable&Content-Type=image%2Fjpeg&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=1800&X-Amz-Signature=979a93bca65a98ce6b2bf97d2bf2afe7d5f2fa805f7d596187675416c86a3bd5&X-Amz-SignedHeaders=cache-control%3Bcontent-disposition%3Bhost%3Bx-amz-acl&x-amz-acl=public-read')
60
+ const signed = service.getSignedUploadUrl({
61
+ contentType: 'image/jpeg',
62
+ acl: 'PUBLIC_READ',
63
+ expiration: 1800,
64
+ contentDisposition: 'INLINE',
65
+ extension: 'jpeg',
66
+ fileName: 'foo-bar.jpeg',
67
+ prefix: 'foo',
68
+ suffix: 'bar',
69
+ size: null,
70
+ })
71
+ expect(signed.url).toEqual(
72
+ 'https://test.s3.eu-central-1.amazonaws.com/foo/9fce3907-ff2b-45bb-b4ce-eff5527dd315bar.jpeg?Cache-Control=immutable&Content-Type=image%2Fjpeg&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=1800&X-Amz-Signature=979a93bca65a98ce6b2bf97d2bf2afe7d5f2fa805f7d596187675416c86a3bd5&X-Amz-SignedHeaders=cache-control%3Bcontent-disposition%3Bhost%3Bx-amz-acl&x-amz-acl=public-read',
73
+ )
46
74
  })
47
75
 
48
-
49
76
  test('bucket with dot', () => {
50
77
  const service = createS3Service('test.foo')
51
78
  const signed = service.getSignedReadUrl({ objectKey: 'foo.jpg', expiration: null })
52
- expect(signed.url).toEqual('https://s3.eu-central-1.amazonaws.com/test.foo/foo.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=3600&X-Amz-Signature=811a809196e60413e0e54e51d3dd91ab73ad1482b61e5371864d25d43ba642ff&X-Amz-SignedHeaders=host')
79
+ expect(signed.url).toEqual(
80
+ 'https://s3.eu-central-1.amazonaws.com/test.foo/foo.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=test%2F20210702%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210702T172200Z&X-Amz-Expires=3600&X-Amz-Signature=811a809196e60413e0e54e51d3dd91ab73ad1482b61e5371864d25d43ba642ff&X-Amz-SignedHeaders=host',
81
+ )
53
82
  })
54
-
@@ -1,5 +1,5 @@
1
1
  declare module 'picomatch' {
2
2
  export type Matcher = (subject: string) => boolean
3
- export default function (pattern: string): Matcher
3
+ export default function(pattern: string): Matcher
4
4
  export function makeRe(pattern: string): RegExp
5
5
  }
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const S3ConfigProcessor = require("./src/S3ConfigProcessor.cjs");
4
- const S3SchemaContributor = require("./src/S3SchemaContributor.cjs");
5
- const S3Service = require("./src/S3Service.cjs");
6
- const S3ObjectAuthorizator = require("./src/S3ObjectAuthorizator.cjs");
7
- var __defProp = Object.defineProperty;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
10
- class S3 {
11
- constructor() {
12
- __publicField(this, "name", "contember/s3");
13
- }
14
- getConfigProcessor() {
15
- return new S3ConfigProcessor.S3ConfigProcessor();
16
- }
17
- getSchemaContributor({ providers }) {
18
- const s3ServiceFactory = new S3Service.S3ServiceFactory();
19
- return new S3SchemaContributor.S3SchemaContributor(s3ServiceFactory, providers);
20
- }
21
- }
22
- exports.S3SchemaContributor = S3SchemaContributor.S3SchemaContributor;
23
- exports.S3Service = S3Service.S3Service;
24
- exports.S3ServiceFactory = S3Service.S3ServiceFactory;
25
- exports.S3ObjectAuthorizator = S3ObjectAuthorizator.S3ObjectAuthorizator;
26
- exports.default = S3;
27
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../packages/engine-s3-plugin/src/index.ts"],"sourcesContent":["import { Plugin, SchemaContributorArgs } from '@contember/engine-plugins'\nimport { S3ConfigProcessor } from './S3ConfigProcessor'\nimport { S3SchemaContributor } from './S3SchemaContributor'\nimport { S3ServiceFactory } from './S3Service'\nimport { Project3Config } from './Config'\n\nexport * from './S3ObjectAuthorizator'\nexport * from './S3SchemaContributor'\nexport * from './S3Service'\n\nexport default class S3 implements Plugin<Project3Config> {\n\tname = 'contember/s3'\n\n\tgetConfigProcessor() {\n\t\treturn new S3ConfigProcessor()\n\t}\n\n\tgetSchemaContributor({ providers }: SchemaContributorArgs) {\n\t\tconst s3ServiceFactory = new S3ServiceFactory()\n\t\treturn new S3SchemaContributor(s3ServiceFactory, providers)\n\t}\n}\n"],"names":["S3ConfigProcessor","S3ServiceFactory","S3SchemaContributor"],"mappings":";;;;;;;;;AAUA,MAAqB,GAAqC;AAAA,EAA1D,cAAA;AACQ,kBAAA,MAAA,QAAA,cAAA;AAAA,EAAA;AAAA,EAEP,qBAAqB;AACpB,WAAO,IAAIA,kBAAAA,kBAAkB;AAAA,EAAA;AAAA,EAG9B,qBAAqB,EAAE,aAAoC;AACpD,UAAA,mBAAmB,IAAIC,2BAAiB;AACvC,WAAA,IAAIC,oBAAAA,oBAAoB,kBAAkB,SAAS;AAAA,EAAA;AAE5D;;;;;;"}
@@ -1,28 +0,0 @@
1
- import { S3ConfigProcessor } from "./src/S3ConfigProcessor.js";
2
- import { S3SchemaContributor } from "./src/S3SchemaContributor.js";
3
- import { S3ServiceFactory } from "./src/S3Service.js";
4
- import { S3Service } from "./src/S3Service.js";
5
- import { S3ObjectAuthorizator } from "./src/S3ObjectAuthorizator.js";
6
- var __defProp = Object.defineProperty;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
9
- class S3 {
10
- constructor() {
11
- __publicField(this, "name", "contember/s3");
12
- }
13
- getConfigProcessor() {
14
- return new S3ConfigProcessor();
15
- }
16
- getSchemaContributor({ providers }) {
17
- const s3ServiceFactory = new S3ServiceFactory();
18
- return new S3SchemaContributor(s3ServiceFactory, providers);
19
- }
20
- }
21
- export {
22
- S3ObjectAuthorizator,
23
- S3SchemaContributor,
24
- S3Service,
25
- S3ServiceFactory,
26
- S3 as default
27
- };
28
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/engine-s3-plugin/src/index.ts"],"sourcesContent":["import { Plugin, SchemaContributorArgs } from '@contember/engine-plugins'\nimport { S3ConfigProcessor } from './S3ConfigProcessor'\nimport { S3SchemaContributor } from './S3SchemaContributor'\nimport { S3ServiceFactory } from './S3Service'\nimport { Project3Config } from './Config'\n\nexport * from './S3ObjectAuthorizator'\nexport * from './S3SchemaContributor'\nexport * from './S3Service'\n\nexport default class S3 implements Plugin<Project3Config> {\n\tname = 'contember/s3'\n\n\tgetConfigProcessor() {\n\t\treturn new S3ConfigProcessor()\n\t}\n\n\tgetSchemaContributor({ providers }: SchemaContributorArgs) {\n\t\tconst s3ServiceFactory = new S3ServiceFactory()\n\t\treturn new S3SchemaContributor(s3ServiceFactory, providers)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;AAUA,MAAqB,GAAqC;AAAA,EAA1D,cAAA;AACQ,kBAAA,MAAA,QAAA,cAAA;AAAA,EAAA;AAAA,EAEP,qBAAqB;AACpB,WAAO,IAAI,kBAAkB;AAAA,EAAA;AAAA,EAG9B,qBAAqB,EAAE,aAAoC;AACpD,UAAA,mBAAmB,IAAI,iBAAiB;AACvC,WAAA,IAAI,oBAAoB,kBAAkB,SAAS;AAAA,EAAA;AAE5D;"}
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Typesafe = require("@contember/typesafe");
4
- function _interopNamespaceDefault(e) {
5
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
6
- if (e) {
7
- for (const k in e) {
8
- if (k !== "default") {
9
- const d = Object.getOwnPropertyDescriptor(e, k);
10
- Object.defineProperty(n, k, d.get ? d : {
11
- enumerable: true,
12
- get: () => e[k]
13
- });
14
- }
15
- }
16
- }
17
- n.default = e;
18
- return Object.freeze(n);
19
- }
20
- const Typesafe__namespace = /* @__PURE__ */ _interopNamespaceDefault(Typesafe);
21
- const s3ConfigSchema = Typesafe__namespace.intersection(
22
- Typesafe__namespace.object({
23
- bucket: Typesafe__namespace.string,
24
- region: Typesafe__namespace.string,
25
- prefix: Typesafe__namespace.string,
26
- credentials: Typesafe__namespace.object({
27
- key: Typesafe__namespace.string,
28
- secret: Typesafe__namespace.string
29
- })
30
- }),
31
- Typesafe__namespace.partial({
32
- endpoint: Typesafe__namespace.string,
33
- cdnEndpoint: Typesafe__namespace.string,
34
- provider: Typesafe__namespace.enumeration(
35
- "aws",
36
- "minio",
37
- "ceph",
38
- "localstack",
39
- "cloudserver"
40
- /* cloudserver */
41
- ),
42
- noAcl: Typesafe__namespace.boolean
43
- })
44
- );
45
- const serversWithoutAclSupport = [
46
- "minio"
47
- /* minio */
48
- ];
49
- const resolveS3Config = (config) => {
50
- return {
51
- noAcl: !!config.provider && serversWithoutAclSupport.includes(config.provider),
52
- ...config
53
- };
54
- };
55
- const defaultRegion = "eu-west-1";
56
- const resolveS3Endpoint = (config) => {
57
- const hasLegacyPath = !!config.endpoint || config.bucket.includes(".");
58
- const endpoint = config.endpoint || `https://${hasLegacyPath ? "" : `${config.bucket}.`}s3.${config.region || defaultRegion}.amazonaws.com`;
59
- const basePath = hasLegacyPath ? `/${config.bucket}` : "";
60
- return { endpoint, basePath };
61
- };
62
- const resolveS3PublicBaseUrl = (config) => {
63
- if (config.cdnEndpoint) {
64
- return config.cdnEndpoint;
65
- }
66
- const { endpoint, basePath } = resolveS3Endpoint(config);
67
- return endpoint + basePath;
68
- };
69
- exports.resolveS3Config = resolveS3Config;
70
- exports.resolveS3Endpoint = resolveS3Endpoint;
71
- exports.resolveS3PublicBaseUrl = resolveS3PublicBaseUrl;
72
- exports.s3ConfigSchema = s3ConfigSchema;
73
- //# sourceMappingURL=Config.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Config.cjs","sources":["../../../../packages/engine-s3-plugin/src/Config.ts"],"sourcesContent":["import * as Typesafe from '@contember/typesafe'\n\nexport enum S3Providers {\n\taws = 'aws',\n\tminio = 'minio',\n\tceph = 'ceph',\n\tlocalstack = 'localstack',\n\tcloudserver = 'cloudserver',\n}\n\n\nexport const s3ConfigSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\tbucket: Typesafe.string,\n\t\tregion: Typesafe.string,\n\t\tprefix: Typesafe.string,\n\t\tcredentials: Typesafe.object({\n\t\t\tkey: Typesafe.string,\n\t\t\tsecret: Typesafe.string,\n\t\t}),\n\t}),\n\tTypesafe.partial({\n\t\tendpoint: Typesafe.string,\n\t\tcdnEndpoint: Typesafe.string,\n\t\tprovider: Typesafe.enumeration(S3Providers.aws, S3Providers.minio, S3Providers.ceph, S3Providers.localstack, S3Providers.cloudserver),\n\t\tnoAcl: Typesafe.boolean,\n\t}),\n)\n\nexport type S3Config = ReturnType<typeof s3ConfigSchema>\n\nexport type Project3Config = { s3?: S3Config }\n\n// todo\nconst serversWithoutAclSupport = [S3Providers.minio]\n\nexport const resolveS3Config = (config: S3Config): S3Config => {\n\treturn {\n\t\tnoAcl: !!config.provider && serversWithoutAclSupport.includes(config.provider),\n\t\t...config,\n\t}\n}\n\nconst defaultRegion = 'eu-west-1'\n\nexport const resolveS3Endpoint = (\n\tconfig: S3Config,\n): {\n\tendpoint: string\n\tbasePath: string\n} => {\n\tconst hasLegacyPath = !!config.endpoint || config.bucket.includes('.')\n\tconst endpoint = config.endpoint || `https://${hasLegacyPath ? '' : `${config.bucket}.`}s3.${config.region || defaultRegion}.amazonaws.com`\n\tconst basePath = hasLegacyPath ? `/${config.bucket}` : ''\n\n\treturn { endpoint, basePath }\n}\n\nexport const resolveS3PublicBaseUrl = (config: S3Config): string => {\n\tif (config.cdnEndpoint) {\n\t\treturn config.cdnEndpoint\n\t}\n\tconst { endpoint, basePath } = resolveS3Endpoint(config)\n\treturn endpoint + basePath\n}\n"],"names":["Typesafe"],"mappings":";;;;;;;;;;;;;;;;;;;;AAWO,MAAM,iBAAiBA,oBAAS;AAAA,EACtCA,oBAAS,OAAO;AAAA,IACf,QAAQA,oBAAS;AAAA,IACjB,QAAQA,oBAAS;AAAA,IACjB,QAAQA,oBAAS;AAAA,IACjB,aAAaA,oBAAS,OAAO;AAAA,MAC5B,KAAKA,oBAAS;AAAA,MACd,QAAQA,oBAAS;AAAA,IACjB,CAAA;AAAA,EAAA,CACD;AAAA,EACDA,oBAAS,QAAQ;AAAA,IAChB,UAAUA,oBAAS;AAAA,IACnB,aAAaA,oBAAS;AAAA,IACtB,UAAUA,oBAAS;AAAA,MAAY;AAAA,MAAiB;AAAA,MAAmB;AAAA,MAAkB;AAAA,MAAwB;AAAA;AAAA,IAAuB;AAAA,IACpI,OAAOA,oBAAS;AAAA,EAChB,CAAA;AACF;AAOA,MAAM,2BAA2B;AAAA,EAAC;AAAA;AAAiB;AAEtC,MAAA,kBAAkB,CAAC,WAA+B;AACvD,SAAA;AAAA,IACN,OAAO,CAAC,CAAC,OAAO,YAAY,yBAAyB,SAAS,OAAO,QAAQ;AAAA,IAC7E,GAAG;AAAA,EACJ;AACD;AAEA,MAAM,gBAAgB;AAET,MAAA,oBAAoB,CAChC,WAII;AACE,QAAA,gBAAgB,CAAC,CAAC,OAAO,YAAY,OAAO,OAAO,SAAS,GAAG;AACrE,QAAM,WAAW,OAAO,YAAY,WAAW,gBAAgB,KAAK,GAAG,OAAO,MAAM,GAAG,MAAM,OAAO,UAAU,aAAa;AAC3H,QAAM,WAAW,gBAAgB,IAAI,OAAO,MAAM,KAAK;AAEhD,SAAA,EAAE,UAAU,SAAS;AAC7B;AAEa,MAAA,yBAAyB,CAAC,WAA6B;AACnE,MAAI,OAAO,aAAa;AACvB,WAAO,OAAO;AAAA,EAAA;AAEf,QAAM,EAAE,UAAU,aAAa,kBAAkB,MAAM;AACvD,SAAO,WAAW;AACnB;;;;;"}
@@ -1,56 +0,0 @@
1
- import * as Typesafe from "@contember/typesafe";
2
- const s3ConfigSchema = Typesafe.intersection(
3
- Typesafe.object({
4
- bucket: Typesafe.string,
5
- region: Typesafe.string,
6
- prefix: Typesafe.string,
7
- credentials: Typesafe.object({
8
- key: Typesafe.string,
9
- secret: Typesafe.string
10
- })
11
- }),
12
- Typesafe.partial({
13
- endpoint: Typesafe.string,
14
- cdnEndpoint: Typesafe.string,
15
- provider: Typesafe.enumeration(
16
- "aws",
17
- "minio",
18
- "ceph",
19
- "localstack",
20
- "cloudserver"
21
- /* cloudserver */
22
- ),
23
- noAcl: Typesafe.boolean
24
- })
25
- );
26
- const serversWithoutAclSupport = [
27
- "minio"
28
- /* minio */
29
- ];
30
- const resolveS3Config = (config) => {
31
- return {
32
- noAcl: !!config.provider && serversWithoutAclSupport.includes(config.provider),
33
- ...config
34
- };
35
- };
36
- const defaultRegion = "eu-west-1";
37
- const resolveS3Endpoint = (config) => {
38
- const hasLegacyPath = !!config.endpoint || config.bucket.includes(".");
39
- const endpoint = config.endpoint || `https://${hasLegacyPath ? "" : `${config.bucket}.`}s3.${config.region || defaultRegion}.amazonaws.com`;
40
- const basePath = hasLegacyPath ? `/${config.bucket}` : "";
41
- return { endpoint, basePath };
42
- };
43
- const resolveS3PublicBaseUrl = (config) => {
44
- if (config.cdnEndpoint) {
45
- return config.cdnEndpoint;
46
- }
47
- const { endpoint, basePath } = resolveS3Endpoint(config);
48
- return endpoint + basePath;
49
- };
50
- export {
51
- resolveS3Config,
52
- resolveS3Endpoint,
53
- resolveS3PublicBaseUrl,
54
- s3ConfigSchema
55
- };
56
- //# sourceMappingURL=Config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Config.js","sources":["../../../../packages/engine-s3-plugin/src/Config.ts"],"sourcesContent":["import * as Typesafe from '@contember/typesafe'\n\nexport enum S3Providers {\n\taws = 'aws',\n\tminio = 'minio',\n\tceph = 'ceph',\n\tlocalstack = 'localstack',\n\tcloudserver = 'cloudserver',\n}\n\n\nexport const s3ConfigSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\tbucket: Typesafe.string,\n\t\tregion: Typesafe.string,\n\t\tprefix: Typesafe.string,\n\t\tcredentials: Typesafe.object({\n\t\t\tkey: Typesafe.string,\n\t\t\tsecret: Typesafe.string,\n\t\t}),\n\t}),\n\tTypesafe.partial({\n\t\tendpoint: Typesafe.string,\n\t\tcdnEndpoint: Typesafe.string,\n\t\tprovider: Typesafe.enumeration(S3Providers.aws, S3Providers.minio, S3Providers.ceph, S3Providers.localstack, S3Providers.cloudserver),\n\t\tnoAcl: Typesafe.boolean,\n\t}),\n)\n\nexport type S3Config = ReturnType<typeof s3ConfigSchema>\n\nexport type Project3Config = { s3?: S3Config }\n\n// todo\nconst serversWithoutAclSupport = [S3Providers.minio]\n\nexport const resolveS3Config = (config: S3Config): S3Config => {\n\treturn {\n\t\tnoAcl: !!config.provider && serversWithoutAclSupport.includes(config.provider),\n\t\t...config,\n\t}\n}\n\nconst defaultRegion = 'eu-west-1'\n\nexport const resolveS3Endpoint = (\n\tconfig: S3Config,\n): {\n\tendpoint: string\n\tbasePath: string\n} => {\n\tconst hasLegacyPath = !!config.endpoint || config.bucket.includes('.')\n\tconst endpoint = config.endpoint || `https://${hasLegacyPath ? '' : `${config.bucket}.`}s3.${config.region || defaultRegion}.amazonaws.com`\n\tconst basePath = hasLegacyPath ? `/${config.bucket}` : ''\n\n\treturn { endpoint, basePath }\n}\n\nexport const resolveS3PublicBaseUrl = (config: S3Config): string => {\n\tif (config.cdnEndpoint) {\n\t\treturn config.cdnEndpoint\n\t}\n\tconst { endpoint, basePath } = resolveS3Endpoint(config)\n\treturn endpoint + basePath\n}\n"],"names":[],"mappings":";AAWO,MAAM,iBAAiB,SAAS;AAAA,EACtC,SAAS,OAAO;AAAA,IACf,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,aAAa,SAAS,OAAO;AAAA,MAC5B,KAAK,SAAS;AAAA,MACd,QAAQ,SAAS;AAAA,IACjB,CAAA;AAAA,EAAA,CACD;AAAA,EACD,SAAS,QAAQ;AAAA,IAChB,UAAU,SAAS;AAAA,IACnB,aAAa,SAAS;AAAA,IACtB,UAAU,SAAS;AAAA,MAAY;AAAA,MAAiB;AAAA,MAAmB;AAAA,MAAkB;AAAA,MAAwB;AAAA;AAAA,IAAuB;AAAA,IACpI,OAAO,SAAS;AAAA,EAChB,CAAA;AACF;AAOA,MAAM,2BAA2B;AAAA,EAAC;AAAA;AAAiB;AAEtC,MAAA,kBAAkB,CAAC,WAA+B;AACvD,SAAA;AAAA,IACN,OAAO,CAAC,CAAC,OAAO,YAAY,yBAAyB,SAAS,OAAO,QAAQ;AAAA,IAC7E,GAAG;AAAA,EACJ;AACD;AAEA,MAAM,gBAAgB;AAET,MAAA,oBAAoB,CAChC,WAII;AACE,QAAA,gBAAgB,CAAC,CAAC,OAAO,YAAY,OAAO,OAAO,SAAS,GAAG;AACrE,QAAM,WAAW,OAAO,YAAY,WAAW,gBAAgB,KAAK,GAAG,OAAO,MAAM,GAAG,MAAM,OAAO,UAAU,aAAa;AAC3H,QAAM,WAAW,gBAAgB,IAAI,OAAO,MAAM,KAAK;AAEhD,SAAA,EAAE,UAAU,SAAS;AAC7B;AAEa,MAAA,yBAAyB,CAAC,WAA6B;AACnE,MAAI,OAAO,aAAa;AACvB,WAAO,OAAO;AAAA,EAAA;AAEf,QAAM,EAAE,UAAU,aAAa,kBAAkB,MAAM;AACvD,SAAO,WAAW;AACnB;"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Config = require("./Config.cjs");
4
- const Typesafe = require("@contember/typesafe");
5
- function _interopNamespaceDefault(e) {
6
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
- if (e) {
8
- for (const k in e) {
9
- if (k !== "default") {
10
- const d = Object.getOwnPropertyDescriptor(e, k);
11
- Object.defineProperty(n, k, d.get ? d : {
12
- enumerable: true,
13
- get: () => e[k]
14
- });
15
- }
16
- }
17
- }
18
- n.default = e;
19
- return Object.freeze(n);
20
- }
21
- const Typesafe__namespace = /* @__PURE__ */ _interopNamespaceDefault(Typesafe);
22
- class S3ConfigProcessor {
23
- getDefaultEnv() {
24
- return {
25
- DEFAULT_S3_ENDPOINT: "",
26
- DEFAULT_S3_REGION: "us-east-1",
27
- DEFAULT_S3_PROVIDER: "aws"
28
- };
29
- }
30
- prepareConfigTemplate(template, { env }) {
31
- return {
32
- ...template,
33
- projectDefaults: {
34
- ...template.projectDefaults,
35
- s3: {
36
- bucket: `%?project.env.S3_BUCKET%`,
37
- prefix: `%?project.env.S3_PREFIX||project.slug%`,
38
- region: `%project.env.S3_REGION%`,
39
- endpoint: `%project.env.S3_ENDPOINT%`,
40
- cdnEndpoint: `%?project.env.S3_CDN%`,
41
- provider: "%project.env.S3_PROVIDER%",
42
- credentials: {
43
- key: `%?project.secret.s3.key||project.env.S3_KEY%`,
44
- secret: `%?project.secret.s3.secret||project.env.S3_SECRET%`
45
- }
46
- }
47
- }
48
- };
49
- }
50
- getProjectConfigSchema(slug) {
51
- return Typesafe__namespace.union(
52
- (input, path = []) => Typesafe__namespace.valueAt(input, ["s3", "credentials", "key"]) === void 0 ? {} : Typesafe__namespace.fail(path),
53
- Typesafe__namespace.object({
54
- s3: Config.s3ConfigSchema
55
- })
56
- );
57
- }
58
- }
59
- exports.S3ConfigProcessor = S3ConfigProcessor;
60
- //# sourceMappingURL=S3ConfigProcessor.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"S3ConfigProcessor.cjs","sources":["../../../../packages/engine-s3-plugin/src/S3ConfigProcessor.ts"],"sourcesContent":["import { ConfigProcessor, ConfigTemplate, ConfigTemplateContext } from '@contember/engine-plugins'\nimport { Project3Config, s3ConfigSchema } from './Config'\nimport * as Typesafe from '@contember/typesafe'\n\nexport class S3ConfigProcessor implements ConfigProcessor<Project3Config> {\n\tgetDefaultEnv(): Record<string, string> {\n\t\treturn {\n\t\t\tDEFAULT_S3_ENDPOINT: '',\n\t\t\tDEFAULT_S3_REGION: 'us-east-1',\n\t\t\tDEFAULT_S3_PROVIDER: 'aws',\n\t\t}\n\t}\n\n\tprepareConfigTemplate(template: ConfigTemplate, { env }: ConfigTemplateContext) {\n\t\treturn {\n\t\t\t...template,\n\t\t\tprojectDefaults: {\n\t\t\t\t...template.projectDefaults,\n\t\t\t\ts3: {\n\t\t\t\t\tbucket: `%?project.env.S3_BUCKET%`,\n\t\t\t\t\tprefix: `%?project.env.S3_PREFIX||project.slug%`,\n\t\t\t\t\tregion: `%project.env.S3_REGION%`,\n\t\t\t\t\tendpoint: `%project.env.S3_ENDPOINT%`,\n\t\t\t\t\tcdnEndpoint: `%?project.env.S3_CDN%`,\n\t\t\t\t\tprovider: '%project.env.S3_PROVIDER%',\n\t\t\t\t\tcredentials: {\n\t\t\t\t\t\tkey: `%?project.secret.s3.key||project.env.S3_KEY%`,\n\t\t\t\t\t\tsecret: `%?project.secret.s3.secret||project.env.S3_SECRET%`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}\n\n\tgetProjectConfigSchema(slug: string): Typesafe.Type<Record<string, any>> {\n\t\treturn Typesafe.union(\n\t\t\t(input: unknown, path: PropertyKey[] = []) => Typesafe.valueAt(input, ['s3', 'credentials', 'key']) === undefined ? {} : Typesafe.fail(path),\n\t\t\tTypesafe.object({\n\t\t\t\ts3: s3ConfigSchema,\n\t\t\t}),\n\t\t)\n\t}\n\n}\n"],"names":["Typesafe","s3ConfigSchema"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,kBAA6D;AAAA,EACzE,gBAAwC;AAChC,WAAA;AAAA,MACN,qBAAqB;AAAA,MACrB,mBAAmB;AAAA,MACnB,qBAAqB;AAAA,IACtB;AAAA,EAAA;AAAA,EAGD,sBAAsB,UAA0B,EAAE,OAA8B;AACxE,WAAA;AAAA,MACN,GAAG;AAAA,MACH,iBAAiB;AAAA,QAChB,GAAG,SAAS;AAAA,QACZ,IAAI;AAAA,UACH,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,aAAa;AAAA,UACb,UAAU;AAAA,UACV,aAAa;AAAA,YACZ,KAAK;AAAA,YACL,QAAQ;AAAA,UAAA;AAAA,QACT;AAAA,MACD;AAAA,IAEF;AAAA,EAAA;AAAA,EAGD,uBAAuB,MAAkD;AACxE,WAAOA,oBAAS;AAAA,MACf,CAAC,OAAgB,OAAsB,CAAO,MAAAA,oBAAS,QAAQ,OAAO,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,SAAY,CAAK,IAAAA,oBAAS,KAAK,IAAI;AAAA,MAC3IA,oBAAS,OAAO;AAAA,QACf,IAAIC,OAAAA;AAAAA,MACJ,CAAA;AAAA,IACF;AAAA,EAAA;AAGF;;"}
@@ -1,43 +0,0 @@
1
- import { s3ConfigSchema } from "./Config.js";
2
- import * as Typesafe from "@contember/typesafe";
3
- class S3ConfigProcessor {
4
- getDefaultEnv() {
5
- return {
6
- DEFAULT_S3_ENDPOINT: "",
7
- DEFAULT_S3_REGION: "us-east-1",
8
- DEFAULT_S3_PROVIDER: "aws"
9
- };
10
- }
11
- prepareConfigTemplate(template, { env }) {
12
- return {
13
- ...template,
14
- projectDefaults: {
15
- ...template.projectDefaults,
16
- s3: {
17
- bucket: `%?project.env.S3_BUCKET%`,
18
- prefix: `%?project.env.S3_PREFIX||project.slug%`,
19
- region: `%project.env.S3_REGION%`,
20
- endpoint: `%project.env.S3_ENDPOINT%`,
21
- cdnEndpoint: `%?project.env.S3_CDN%`,
22
- provider: "%project.env.S3_PROVIDER%",
23
- credentials: {
24
- key: `%?project.secret.s3.key||project.env.S3_KEY%`,
25
- secret: `%?project.secret.s3.secret||project.env.S3_SECRET%`
26
- }
27
- }
28
- }
29
- };
30
- }
31
- getProjectConfigSchema(slug) {
32
- return Typesafe.union(
33
- (input, path = []) => Typesafe.valueAt(input, ["s3", "credentials", "key"]) === void 0 ? {} : Typesafe.fail(path),
34
- Typesafe.object({
35
- s3: s3ConfigSchema
36
- })
37
- );
38
- }
39
- }
40
- export {
41
- S3ConfigProcessor
42
- };
43
- //# sourceMappingURL=S3ConfigProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"S3ConfigProcessor.js","sources":["../../../../packages/engine-s3-plugin/src/S3ConfigProcessor.ts"],"sourcesContent":["import { ConfigProcessor, ConfigTemplate, ConfigTemplateContext } from '@contember/engine-plugins'\nimport { Project3Config, s3ConfigSchema } from './Config'\nimport * as Typesafe from '@contember/typesafe'\n\nexport class S3ConfigProcessor implements ConfigProcessor<Project3Config> {\n\tgetDefaultEnv(): Record<string, string> {\n\t\treturn {\n\t\t\tDEFAULT_S3_ENDPOINT: '',\n\t\t\tDEFAULT_S3_REGION: 'us-east-1',\n\t\t\tDEFAULT_S3_PROVIDER: 'aws',\n\t\t}\n\t}\n\n\tprepareConfigTemplate(template: ConfigTemplate, { env }: ConfigTemplateContext) {\n\t\treturn {\n\t\t\t...template,\n\t\t\tprojectDefaults: {\n\t\t\t\t...template.projectDefaults,\n\t\t\t\ts3: {\n\t\t\t\t\tbucket: `%?project.env.S3_BUCKET%`,\n\t\t\t\t\tprefix: `%?project.env.S3_PREFIX||project.slug%`,\n\t\t\t\t\tregion: `%project.env.S3_REGION%`,\n\t\t\t\t\tendpoint: `%project.env.S3_ENDPOINT%`,\n\t\t\t\t\tcdnEndpoint: `%?project.env.S3_CDN%`,\n\t\t\t\t\tprovider: '%project.env.S3_PROVIDER%',\n\t\t\t\t\tcredentials: {\n\t\t\t\t\t\tkey: `%?project.secret.s3.key||project.env.S3_KEY%`,\n\t\t\t\t\t\tsecret: `%?project.secret.s3.secret||project.env.S3_SECRET%`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}\n\n\tgetProjectConfigSchema(slug: string): Typesafe.Type<Record<string, any>> {\n\t\treturn Typesafe.union(\n\t\t\t(input: unknown, path: PropertyKey[] = []) => Typesafe.valueAt(input, ['s3', 'credentials', 'key']) === undefined ? {} : Typesafe.fail(path),\n\t\t\tTypesafe.object({\n\t\t\t\ts3: s3ConfigSchema,\n\t\t\t}),\n\t\t)\n\t}\n\n}\n"],"names":[],"mappings":";;AAIO,MAAM,kBAA6D;AAAA,EACzE,gBAAwC;AAChC,WAAA;AAAA,MACN,qBAAqB;AAAA,MACrB,mBAAmB;AAAA,MACnB,qBAAqB;AAAA,IACtB;AAAA,EAAA;AAAA,EAGD,sBAAsB,UAA0B,EAAE,OAA8B;AACxE,WAAA;AAAA,MACN,GAAG;AAAA,MACH,iBAAiB;AAAA,QAChB,GAAG,SAAS;AAAA,QACZ,IAAI;AAAA,UACH,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,aAAa;AAAA,UACb,UAAU;AAAA,UACV,aAAa;AAAA,YACZ,KAAK;AAAA,YACL,QAAQ;AAAA,UAAA;AAAA,QACT;AAAA,MACD;AAAA,IAEF;AAAA,EAAA;AAAA,EAGD,uBAAuB,MAAkD;AACxE,WAAO,SAAS;AAAA,MACf,CAAC,OAAgB,OAAsB,CAAO,MAAA,SAAS,QAAQ,OAAO,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,SAAY,CAAK,IAAA,SAAS,KAAK,IAAI;AAAA,MAC3I,SAAS,OAAO;AAAA,QACf,IAAI;AAAA,MACJ,CAAA;AAAA,IACF;AAAA,EAAA;AAGF;"}