@toa.io/extensions.storages 1.0.0-alpha.287 → 1.0.0-alpha.289
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.
- package/CHANGELOG.md +11 -0
- package/package.json +4 -3
- package/source/Aspect.ts +9 -3
- package/source/Factory.ts +8 -9
- package/source/Storage.test.ts +1 -1
- package/source/deployment.ts +10 -14
- package/source/providers/Cloudinary.ts +2 -4
- package/source/providers/S3.ts +2 -4
- package/source/providers/Spaces.ts +2 -4
- package/source/providers/Test.ts +2 -4
- package/source/providers/index.test.ts +7 -2
- package/source/providers/index.ts +14 -14
- package/source/providers/index.types.ts +5 -0
- package/source/providers/secrets.ts +19 -0
- package/transpiled/Aspect.d.ts +5 -2
- package/transpiled/Aspect.js +8 -3
- package/transpiled/Aspect.js.map +1 -1
- package/transpiled/Factory.js +8 -8
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/deployment.js +10 -13
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/providers/Cloudinary.js +2 -4
- package/transpiled/providers/Cloudinary.js.map +1 -1
- package/transpiled/providers/S3.js +2 -4
- package/transpiled/providers/S3.js.map +1 -1
- package/transpiled/providers/Spaces.js +2 -4
- package/transpiled/providers/Spaces.js.map +1 -1
- package/transpiled/providers/Test.js +2 -4
- package/transpiled/providers/Test.js.map +1 -1
- package/transpiled/providers/index.d.ts +12 -13
- package/transpiled/providers/index.js +11 -12
- package/transpiled/providers/index.js.map +1 -1
- package/transpiled/providers/index.types.d.ts +5 -0
- package/transpiled/providers/index.types.js +2 -0
- package/transpiled/providers/index.types.js.map +1 -0
- package/transpiled/providers/secrets.d.ts +8 -0
- package/transpiled/providers/secrets.js +16 -0
- package/transpiled/providers/secrets.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-alpha.289](https://github.com/toa-io/toa/compare/v1.0.0-alpha.288...v1.0.0-alpha.289) (2026-09-07)
|
|
7
|
+
|
|
8
|
+
* A deploy moves only what changed, and a component sees none of the runtime's environment (#1073) ([f38e3db](https://github.com/toa-io/toa/commit/f38e3db533f24db866c57bfa1ef294eff1eaf499)), closes [#1073](https://github.com/toa-io/toa/issues/1073) [#1064](https://github.com/toa-io/toa/issues/1064) [#1066](https://github.com/toa-io/toa/issues/1066) [#1067](https://github.com/toa-io/toa/issues/1067) [#1068](https://github.com/toa-io/toa/issues/1068) [#1069](https://github.com/toa-io/toa/issues/1069) [#1071](https://github.com/toa-io/toa/issues/1071) [#1070](https://github.com/toa-io/toa/issues/1070) [#1072](https://github.com/toa-io/toa/issues/1072)
|
|
9
|
+
|
|
10
|
+
### BREAKING CHANGES
|
|
11
|
+
|
|
12
|
+
* a component that read `process.env.TOA_*` reads `context` instead;
|
|
13
|
+
`echo(input)` no longer substitutes from the environment; a bash operation sees no
|
|
14
|
+
`TOA_*`; images no longer set `USER node` — see migrations/289.md.
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [1.0.0-alpha.287](https://github.com/toa-io/toa/compare/v1.0.0-alpha.286...v1.0.0-alpha.287) (2026-09-06)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @toa.io/extensions.storages
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/extensions.storages",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.289",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Toa Storages",
|
|
6
6
|
"author": "temich <tema.gurtovoy@gmail.com>",
|
|
@@ -27,10 +27,11 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@aws-sdk/client-s3": "3.1125.0",
|
|
29
29
|
"@aws-sdk/lib-storage": "3.1125.0",
|
|
30
|
-
"@toa.io/
|
|
30
|
+
"@toa.io/generic": "1.0.0-alpha.289",
|
|
31
|
+
"@toa.io/schemas": "1.0.0-alpha.289",
|
|
31
32
|
"cloudinary": "2.11.0",
|
|
32
33
|
"negotiator": "1.1.0",
|
|
33
34
|
"openspan": "1.0.0-alpha.286"
|
|
34
35
|
},
|
|
35
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "4fcb482beac5896305d8084cdbc1d5fcf372d108"
|
|
36
37
|
}
|
package/source/Aspect.ts
CHANGED
|
@@ -6,12 +6,18 @@ import { type Storage, type Storages } from './Storage.js'
|
|
|
6
6
|
export class Aspect extends Connector implements extensions.Aspect {
|
|
7
7
|
public readonly name = 'storages'
|
|
8
8
|
|
|
9
|
-
private readonly
|
|
9
|
+
private readonly create: () => Promise<Storages>
|
|
10
|
+
private storages: Storages = {}
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
/** The storages are made as the aspect connects: their providers load then, not before. */
|
|
13
|
+
public constructor(create: () => Promise<Storages>) {
|
|
12
14
|
super()
|
|
13
15
|
|
|
14
|
-
this.
|
|
16
|
+
this.create = create
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
protected override async open(): Promise<void> {
|
|
20
|
+
this.storages = await this.create()
|
|
15
21
|
}
|
|
16
22
|
|
|
17
23
|
public invoke(name: string, method: keyof Storage, ...args: unknown[]): unknown {
|
package/source/Factory.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { Storage, type Storages } from './Storage.js'
|
|
|
5
5
|
import { Aspect } from './Aspect.js'
|
|
6
6
|
import { ENV_PREFIX } from './deployment.js'
|
|
7
7
|
import { validateAnnotation } from './Annotation.js'
|
|
8
|
+
import { environment } from '@toa.io/generic'
|
|
8
9
|
import type { Constructor } from './Provider.js'
|
|
9
10
|
import type { Declaration } from './providers/index.js'
|
|
10
11
|
import type { Annotation } from './Annotation.js'
|
|
@@ -14,7 +15,7 @@ export class Factory {
|
|
|
14
15
|
private readonly annotation: Annotation
|
|
15
16
|
|
|
16
17
|
public constructor() {
|
|
17
|
-
const env =
|
|
18
|
+
const env = environment.get(ENV_PREFIX)
|
|
18
19
|
|
|
19
20
|
assert.ok(env !== undefined, `${ENV_PREFIX} is not defined`)
|
|
20
21
|
|
|
@@ -24,23 +25,21 @@ export class Factory {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
public aspect(): Aspect {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return new Aspect(storages)
|
|
28
|
+
return new Aspect(() => this.createStorages())
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
private createStorages(): Storages {
|
|
31
|
+
private async createStorages(): Promise<Storages> {
|
|
33
32
|
const storages: Storages = {}
|
|
34
33
|
|
|
35
34
|
for (const [name, declaration] of Object.entries(this.annotation))
|
|
36
|
-
storages[name] = this.createStorage(name, declaration)
|
|
35
|
+
storages[name] = await this.createStorage(name, declaration)
|
|
37
36
|
|
|
38
37
|
return storages
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
private createStorage(name: string, declaration: Declaration): Storage {
|
|
40
|
+
private async createStorage(name: string, declaration: Declaration): Promise<Storage> {
|
|
42
41
|
const { provider: id, ...options } = declaration
|
|
43
|
-
const Provider: Constructor = providers[id]
|
|
42
|
+
const Provider: Constructor = await providers[id]()
|
|
44
43
|
const secrets = this.resolveSecrets(name, Provider)
|
|
45
44
|
const provider = new Provider(options, secrets)
|
|
46
45
|
|
|
@@ -60,7 +59,7 @@ export class Factory {
|
|
|
60
59
|
|
|
61
60
|
for (const secret of Class.SECRETS) {
|
|
62
61
|
const variable = `${ENV_PREFIX}_${storageName}_${secret.name}`.toUpperCase()
|
|
63
|
-
const value =
|
|
62
|
+
const value = environment.get(variable)
|
|
64
63
|
|
|
65
64
|
assert.ok(
|
|
66
65
|
secret.optional === true || value !== undefined,
|
package/source/Storage.test.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type { Entry, Stream } from './Entry.js'
|
|
|
12
12
|
import type { Constructor } from './Provider.js'
|
|
13
13
|
|
|
14
14
|
const suite = suites[0]
|
|
15
|
-
const Provider: Constructor = providers[suite.provider]
|
|
15
|
+
const Provider: Constructor = await providers[suite.provider]()
|
|
16
16
|
const provider = new Provider(suite.options, suite.secrets)
|
|
17
17
|
const storage = new Storage(provider)
|
|
18
18
|
const dir = '/' + randomUUID()
|
package/source/deployment.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as assert from 'node:assert'
|
|
2
|
-
import {
|
|
2
|
+
import { secrets as declared } from './providers/index.js'
|
|
3
3
|
import { validateAnnotation } from './Annotation.js'
|
|
4
4
|
import type { Annotation } from './Annotation.js'
|
|
5
5
|
import type { Dependency, Variable, Mounts } from '@toa.io/operations'
|
|
@@ -48,19 +48,15 @@ function getSecrets(annotation: Annotation): Variable[] {
|
|
|
48
48
|
const secrets: Variable[] = []
|
|
49
49
|
|
|
50
50
|
for (const [name, declaration] of Object.entries(annotation)) {
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
key: secret.name,
|
|
61
|
-
optional: secret.optional
|
|
62
|
-
}
|
|
63
|
-
})
|
|
51
|
+
for (const secret of declared[declaration.provider])
|
|
52
|
+
secrets.push({
|
|
53
|
+
name: `${ENV_PREFIX}_${name}_${secret.name}`.toUpperCase(),
|
|
54
|
+
secret: {
|
|
55
|
+
name: `toa-storages-${name}`,
|
|
56
|
+
key: secret.name,
|
|
57
|
+
optional: secret.optional
|
|
58
|
+
}
|
|
59
|
+
})
|
|
64
60
|
}
|
|
65
61
|
|
|
66
62
|
return secrets
|
|
@@ -3,6 +3,7 @@ import { Readable } from 'node:stream'
|
|
|
3
3
|
import { v2 as cloudinary } from 'cloudinary'
|
|
4
4
|
import { console } from 'openspan'
|
|
5
5
|
import { Provider } from '../Provider.js'
|
|
6
|
+
import { secrets } from './secrets.js'
|
|
6
7
|
import { ERR_NOT_FOUND } from '../errors.js'
|
|
7
8
|
import type { Maybe } from '@toa.io/core/types'
|
|
8
9
|
import type { Metadata, Stream } from '../Entry.js'
|
|
@@ -13,10 +14,7 @@ import type { ConfigOptions, TransformationOptions, UploadApiOptions } from 'clo
|
|
|
13
14
|
export type CloudinarySecrets = Secrets<'API_KEY' | 'API_SECRET'>
|
|
14
15
|
|
|
15
16
|
export class Cloudinary extends Provider<CloudinaryOptions> {
|
|
16
|
-
public static override readonly SECRETS: readonly Secret[] =
|
|
17
|
-
{ name: 'API_KEY' },
|
|
18
|
-
{ name: 'API_SECRET' }
|
|
19
|
-
]
|
|
17
|
+
public static override readonly SECRETS: readonly Secret[] = secrets.cloudinary
|
|
20
18
|
|
|
21
19
|
private readonly type: StorageType
|
|
22
20
|
private readonly eager: TransformationOptions[] = []
|
package/source/providers/S3.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { Upload } from '@aws-sdk/lib-storage'
|
|
|
6
6
|
import * as s3 from '@aws-sdk/client-s3'
|
|
7
7
|
import { console } from 'openspan'
|
|
8
8
|
import { Provider } from '../Provider.js'
|
|
9
|
+
import { secrets } from './secrets.js'
|
|
9
10
|
import { ERR_NOT_FOUND } from '../errors.js'
|
|
10
11
|
import type { ReadableStream } from 'node:stream/web'
|
|
11
12
|
import type { Maybe } from '@toa.io/core/types'
|
|
@@ -21,10 +22,7 @@ export interface S3Options {
|
|
|
21
22
|
type S3Secrets = Secrets<'ACCESS_KEY_ID' | 'SECRET_ACCESS_KEY'>
|
|
22
23
|
|
|
23
24
|
export class S3 extends Provider<S3Options> {
|
|
24
|
-
public static override readonly SECRETS: readonly Secret[] =
|
|
25
|
-
{ name: 'ACCESS_KEY_ID', optional: true },
|
|
26
|
-
{ name: 'SECRET_ACCESS_KEY', optional: true }
|
|
27
|
-
]
|
|
25
|
+
public static override readonly SECRETS: readonly Secret[] = secrets.s3
|
|
28
26
|
|
|
29
27
|
private readonly bucket: string
|
|
30
28
|
private readonly client: s3.S3Client
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { S3 } from './S3.js'
|
|
2
|
+
import { secrets } from './secrets.js'
|
|
2
3
|
import type { Secret, Secrets } from '../Secrets.js'
|
|
3
4
|
|
|
4
5
|
export interface SpacesOptions {
|
|
@@ -9,10 +10,7 @@ export interface SpacesOptions {
|
|
|
9
10
|
type SpacesSecrets = Secrets<'ACCESS_KEY_ID' | 'SECRET_ACCESS_KEY'>
|
|
10
11
|
|
|
11
12
|
export class Spaces extends S3 {
|
|
12
|
-
public static override readonly SECRETS: readonly Secret[] =
|
|
13
|
-
{ name: 'ACCESS_KEY_ID' },
|
|
14
|
-
{ name: 'SECRET_ACCESS_KEY' }
|
|
15
|
-
]
|
|
13
|
+
public static override readonly SECRETS: readonly Secret[] = secrets.spaces
|
|
16
14
|
|
|
17
15
|
public constructor(options: SpacesOptions, secrets?: SpacesSecrets) {
|
|
18
16
|
super(
|
package/source/providers/Test.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { Temporary, type TemporaryOptions } from './Temporary.js'
|
|
2
|
+
import { secrets } from './secrets.js'
|
|
2
3
|
import type { Secret } from '../Secrets.js'
|
|
3
4
|
|
|
4
5
|
export class Test extends Temporary {
|
|
5
|
-
public static override readonly SECRETS: readonly Secret[] =
|
|
6
|
-
{ name: 'USERNAME' },
|
|
7
|
-
{ name: 'PASSWORD' }
|
|
8
|
-
]
|
|
6
|
+
public static override readonly SECRETS: readonly Secret[] = secrets.test
|
|
9
7
|
|
|
10
8
|
public constructor(options: TemporaryOptions) {
|
|
11
9
|
super(options)
|
|
@@ -25,8 +25,13 @@ for (const suite of suites)
|
|
|
25
25
|
(suite.run ? describe : describe.skip)(`${suite.provider}`, () => {
|
|
26
26
|
const id = Math.random().toString(36).substring(7)
|
|
27
27
|
const test = it
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
let provider: InstanceType<Constructor>
|
|
29
|
+
|
|
30
|
+
before(async () => {
|
|
31
|
+
const Provider: Constructor = await providers[suite.provider]()
|
|
32
|
+
|
|
33
|
+
provider = new Provider(suite.options, suite.secrets)
|
|
34
|
+
})
|
|
30
35
|
|
|
31
36
|
describe('put, get, head', () => {
|
|
32
37
|
let entry: Stream
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { FileSystem } from './FileSystem.js'
|
|
2
|
-
import { S3 } from './S3.js'
|
|
3
|
-
import { Spaces } from './Spaces.js'
|
|
4
|
-
import { Cloudinary } from './Cloudinary.js'
|
|
5
|
-
import { Temporary } from './Temporary.js'
|
|
6
|
-
import { Test } from './Test.js'
|
|
7
1
|
import type { Constructor } from '../Provider.js'
|
|
8
2
|
|
|
3
|
+
/**
|
|
4
|
+
* A provider is loaded when a storage names it: the SDK one is written against is not paid
|
|
5
|
+
* for by a process that declares another.
|
|
6
|
+
*/
|
|
9
7
|
export const providers = {
|
|
10
|
-
s3: S3,
|
|
11
|
-
spaces: Spaces,
|
|
12
|
-
cloudinary: Cloudinary,
|
|
13
|
-
fs: FileSystem,
|
|
14
|
-
tmp: Temporary,
|
|
15
|
-
test: Test
|
|
16
|
-
} as const satisfies Record<string, Constructor
|
|
8
|
+
s3: async () => (await import('./S3.js')).S3,
|
|
9
|
+
spaces: async () => (await import('./Spaces.js')).Spaces,
|
|
10
|
+
cloudinary: async () => (await import('./Cloudinary.js')).Cloudinary,
|
|
11
|
+
fs: async () => (await import('./FileSystem.js')).FileSystem,
|
|
12
|
+
tmp: async () => (await import('./Temporary.js')).Temporary,
|
|
13
|
+
test: async () => (await import('./Test.js')).Test
|
|
14
|
+
} as const satisfies Record<string, () => Promise<Constructor>>
|
|
15
|
+
|
|
16
|
+
export { secrets } from './secrets.js'
|
|
17
17
|
|
|
18
18
|
export type { Declaration } from './Declaration.js'
|
|
19
19
|
|
|
@@ -22,4 +22,4 @@ export type { SpacesOptions } from './Spaces.js'
|
|
|
22
22
|
export type { CloudinaryOptions } from './Cloudinary.js'
|
|
23
23
|
export type { FileSystemOptions } from './FileSystem.js'
|
|
24
24
|
export type { TemporaryOptions } from './Temporary.js'
|
|
25
|
-
export type { FileSystem, S3, Spaces, Cloudinary, Temporary }
|
|
25
|
+
export type { FileSystem, S3, Spaces, Cloudinary, Temporary } from './index.types.js'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Secret } from '../Secrets.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* What each provider reads from the environment, stated apart from the provider so that a
|
|
5
|
+
* deployment enumerates them without loading the SDK the provider is written against.
|
|
6
|
+
*/
|
|
7
|
+
export const secrets: Record<Provider, readonly Secret[]> = {
|
|
8
|
+
s3: [
|
|
9
|
+
{ name: 'ACCESS_KEY_ID', optional: true },
|
|
10
|
+
{ name: 'SECRET_ACCESS_KEY', optional: true }
|
|
11
|
+
],
|
|
12
|
+
spaces: [{ name: 'ACCESS_KEY_ID' }, { name: 'SECRET_ACCESS_KEY' }],
|
|
13
|
+
cloudinary: [{ name: 'API_KEY' }, { name: 'API_SECRET' }],
|
|
14
|
+
fs: [],
|
|
15
|
+
tmp: [],
|
|
16
|
+
test: [{ name: 'USERNAME' }, { name: 'PASSWORD' }]
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
type Provider = 's3' | 'spaces' | 'cloudinary' | 'fs' | 'tmp' | 'test'
|
package/transpiled/Aspect.d.ts
CHANGED
|
@@ -3,7 +3,10 @@ import type { extensions } from '@toa.io/core/types';
|
|
|
3
3
|
import { type Storage, type Storages } from './Storage.js';
|
|
4
4
|
export declare class Aspect extends Connector implements extensions.Aspect {
|
|
5
5
|
readonly name = "storages";
|
|
6
|
-
private readonly
|
|
7
|
-
|
|
6
|
+
private readonly create;
|
|
7
|
+
private storages;
|
|
8
|
+
/** The storages are made as the aspect connects: their providers load then, not before. */
|
|
9
|
+
constructor(create: () => Promise<Storages>);
|
|
10
|
+
protected open(): Promise<void>;
|
|
8
11
|
invoke(name: string, method: keyof Storage, ...args: unknown[]): unknown;
|
|
9
12
|
}
|
package/transpiled/Aspect.js
CHANGED
|
@@ -2,10 +2,15 @@ import assert from 'node:assert';
|
|
|
2
2
|
import { Connector } from '@toa.io/core';
|
|
3
3
|
export class Aspect extends Connector {
|
|
4
4
|
name = 'storages';
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
create;
|
|
6
|
+
storages = {};
|
|
7
|
+
/** The storages are made as the aspect connects: their providers load then, not before. */
|
|
8
|
+
constructor(create) {
|
|
7
9
|
super();
|
|
8
|
-
this.
|
|
10
|
+
this.create = create;
|
|
11
|
+
}
|
|
12
|
+
async open() {
|
|
13
|
+
this.storages = await this.create();
|
|
9
14
|
}
|
|
10
15
|
invoke(name, method, ...args) {
|
|
11
16
|
const storage = this.storages[name];
|
package/transpiled/Aspect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Aspect.js","sourceRoot":"","sources":["../source/Aspect.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAIxC,MAAM,OAAO,MAAO,SAAQ,SAAS;IACnB,IAAI,GAAG,UAAU,CAAA;IAEhB,QAAQ,
|
|
1
|
+
{"version":3,"file":"Aspect.js","sourceRoot":"","sources":["../source/Aspect.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAIxC,MAAM,OAAO,MAAO,SAAQ,SAAS;IACnB,IAAI,GAAG,UAAU,CAAA;IAEhB,MAAM,CAAyB;IACxC,QAAQ,GAAa,EAAE,CAAA;IAE/B,2FAA2F;IAC3F,YAAmB,MAA+B;QAChD,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEkB,KAAK,CAAC,IAAI;QAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;IACrC,CAAC;IAEM,MAAM,CAAC,IAAY,EAAE,MAAqB,EAAE,GAAG,IAAe;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEnC,MAAM,CAAC,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,YAAY,IAAI,kBAAkB,CAAC,CAAA;QAEpE,6DAA6D;QAC7D,mBAAmB;QACnB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IACjC,CAAC;CACF"}
|
package/transpiled/Factory.js
CHANGED
|
@@ -5,27 +5,27 @@ import { Storage } from './Storage.js';
|
|
|
5
5
|
import { Aspect } from './Aspect.js';
|
|
6
6
|
import { ENV_PREFIX } from './deployment.js';
|
|
7
7
|
import { validateAnnotation } from './Annotation.js';
|
|
8
|
+
import { environment } from '@toa.io/generic';
|
|
8
9
|
export class Factory {
|
|
9
10
|
annotation;
|
|
10
11
|
constructor() {
|
|
11
|
-
const env =
|
|
12
|
+
const env = environment.get(ENV_PREFIX);
|
|
12
13
|
assert.ok(env !== undefined, `${ENV_PREFIX} is not defined`);
|
|
13
14
|
this.annotation = JSON.parse(env);
|
|
14
15
|
validateAnnotation(this.annotation);
|
|
15
16
|
}
|
|
16
17
|
aspect() {
|
|
17
|
-
|
|
18
|
-
return new Aspect(storages);
|
|
18
|
+
return new Aspect(() => this.createStorages());
|
|
19
19
|
}
|
|
20
|
-
createStorages() {
|
|
20
|
+
async createStorages() {
|
|
21
21
|
const storages = {};
|
|
22
22
|
for (const [name, declaration] of Object.entries(this.annotation))
|
|
23
|
-
storages[name] = this.createStorage(name, declaration);
|
|
23
|
+
storages[name] = await this.createStorage(name, declaration);
|
|
24
24
|
return storages;
|
|
25
25
|
}
|
|
26
|
-
createStorage(name, declaration) {
|
|
26
|
+
async createStorage(name, declaration) {
|
|
27
27
|
const { provider: id, ...options } = declaration;
|
|
28
|
-
const Provider = providers[id];
|
|
28
|
+
const Provider = await providers[id]();
|
|
29
29
|
const secrets = this.resolveSecrets(name, Provider);
|
|
30
30
|
const provider = new Provider(options, secrets);
|
|
31
31
|
console.debug('Storage created', {
|
|
@@ -41,7 +41,7 @@ export class Factory {
|
|
|
41
41
|
const secrets = {};
|
|
42
42
|
for (const secret of Class.SECRETS) {
|
|
43
43
|
const variable = `${ENV_PREFIX}_${storageName}_${secret.name}`.toUpperCase();
|
|
44
|
-
const value =
|
|
44
|
+
const value = environment.get(variable);
|
|
45
45
|
assert.ok(secret.optional === true || value !== undefined, `'${variable}' is not defined`);
|
|
46
46
|
secrets[secret.name] = value;
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Factory.js","sourceRoot":"","sources":["../source/Factory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"Factory.js","sourceRoot":"","sources":["../source/Factory.ts"],"names":[],"mappings":"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"}
|
package/transpiled/deployment.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as assert from 'node:assert';
|
|
2
|
-
import {
|
|
2
|
+
import { secrets as declared } from './providers/index.js';
|
|
3
3
|
import { validateAnnotation } from './Annotation.js';
|
|
4
4
|
export const ENV_PREFIX = 'TOA_STORAGES';
|
|
5
5
|
export function deployment(instances, annotation) {
|
|
@@ -28,18 +28,15 @@ function contains(instance, annotation) {
|
|
|
28
28
|
function getSecrets(annotation) {
|
|
29
29
|
const secrets = [];
|
|
30
30
|
for (const [name, declaration] of Object.entries(annotation)) {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
optional: secret.optional
|
|
41
|
-
}
|
|
42
|
-
});
|
|
31
|
+
for (const secret of declared[declaration.provider])
|
|
32
|
+
secrets.push({
|
|
33
|
+
name: `${ENV_PREFIX}_${name}_${secret.name}`.toUpperCase(),
|
|
34
|
+
secret: {
|
|
35
|
+
name: `toa-storages-${name}`,
|
|
36
|
+
key: secret.name,
|
|
37
|
+
optional: secret.optional
|
|
38
|
+
}
|
|
39
|
+
});
|
|
43
40
|
}
|
|
44
41
|
return secrets;
|
|
45
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../source/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../source/deployment.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,10 @@ import { Readable } from 'node:stream';
|
|
|
3
3
|
import { v2 as cloudinary } from 'cloudinary';
|
|
4
4
|
import { console } from 'openspan';
|
|
5
5
|
import { Provider } from '../Provider.js';
|
|
6
|
+
import { secrets } from './secrets.js';
|
|
6
7
|
import { ERR_NOT_FOUND } from '../errors.js';
|
|
7
8
|
export class Cloudinary extends Provider {
|
|
8
|
-
static SECRETS =
|
|
9
|
-
{ name: 'API_KEY' },
|
|
10
|
-
{ name: 'API_SECRET' }
|
|
11
|
-
];
|
|
9
|
+
static SECRETS = secrets.cloudinary;
|
|
12
10
|
type;
|
|
13
11
|
eager = [];
|
|
14
12
|
transformations = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cloudinary.js","sourceRoot":"","sources":["../../source/providers/Cloudinary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,EAAE,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAS5C,MAAM,OAAO,UAAW,SAAQ,QAA2B;IAClD,MAAM,CAAmB,OAAO,GAAsB
|
|
1
|
+
{"version":3,"file":"Cloudinary.js","sourceRoot":"","sources":["../../source/providers/Cloudinary.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,10 @@ import { Upload } from '@aws-sdk/lib-storage';
|
|
|
6
6
|
import * as s3 from '@aws-sdk/client-s3';
|
|
7
7
|
import { console } from 'openspan';
|
|
8
8
|
import { Provider } from '../Provider.js';
|
|
9
|
+
import { secrets } from './secrets.js';
|
|
9
10
|
import { ERR_NOT_FOUND } from '../errors.js';
|
|
10
11
|
export class S3 extends Provider {
|
|
11
|
-
static SECRETS =
|
|
12
|
-
{ name: 'ACCESS_KEY_ID', optional: true },
|
|
13
|
-
{ name: 'SECRET_ACCESS_KEY', optional: true }
|
|
14
|
-
];
|
|
12
|
+
static SECRETS = secrets.s3;
|
|
15
13
|
bucket;
|
|
16
14
|
client;
|
|
17
15
|
constructor(options, secrets) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S3.js","sourceRoot":"","sources":["../../source/providers/S3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAc5C,MAAM,OAAO,EAAG,SAAQ,QAAmB;IAClC,MAAM,CAAmB,OAAO,GAAsB
|
|
1
|
+
{"version":3,"file":"S3.js","sourceRoot":"","sources":["../../source/providers/S3.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { S3 } from './S3.js';
|
|
2
|
+
import { secrets } from './secrets.js';
|
|
2
3
|
export class Spaces extends S3 {
|
|
3
|
-
static SECRETS =
|
|
4
|
-
{ name: 'ACCESS_KEY_ID' },
|
|
5
|
-
{ name: 'SECRET_ACCESS_KEY' }
|
|
6
|
-
];
|
|
4
|
+
static SECRETS = secrets.spaces;
|
|
7
5
|
constructor(options, secrets) {
|
|
8
6
|
super({
|
|
9
7
|
bucket: options.space,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spaces.js","sourceRoot":"","sources":["../../source/providers/Spaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"Spaces.js","sourceRoot":"","sources":["../../source/providers/Spaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAUtC,MAAM,OAAO,MAAO,SAAQ,EAAE;IACrB,MAAM,CAAmB,OAAO,GAAsB,OAAO,CAAC,MAAM,CAAA;IAE3E,YAAmB,OAAsB,EAAE,OAAuB;QAChE,KAAK,CACH;YACE,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,WAAW,OAAO,CAAC,MAAM,yBAAyB;SAC7D,EACD,OAAO,CACR,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Temporary } from './Temporary.js';
|
|
2
|
+
import { secrets } from './secrets.js';
|
|
2
3
|
export class Test extends Temporary {
|
|
3
|
-
static SECRETS =
|
|
4
|
-
{ name: 'USERNAME' },
|
|
5
|
-
{ name: 'PASSWORD' }
|
|
6
|
-
];
|
|
4
|
+
static SECRETS = secrets.test;
|
|
7
5
|
constructor(options) {
|
|
8
6
|
super(options);
|
|
9
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Test.js","sourceRoot":"","sources":["../../source/providers/Test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"Test.js","sourceRoot":"","sources":["../../source/providers/Test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,MAAM,OAAO,IAAK,SAAQ,SAAS;IAC1B,MAAM,CAAmB,OAAO,GAAsB,OAAO,CAAC,IAAI,CAAA;IAEzE,YAAmB,OAAyB;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;CACF"}
|