@toa.io/pointer 0.20.0-dev.31 → 0.20.0-dev.34

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 (67) hide show
  1. package/package.json +15 -8
  2. package/readme.md +113 -76
  3. package/schemas/urimap.cos.yaml +2 -0
  4. package/source/Deployment.ts +90 -0
  5. package/source/annotation.test.ts +66 -0
  6. package/source/annotation.ts +46 -0
  7. package/source/createVariables.test.ts +186 -0
  8. package/source/createVariables.ts +12 -0
  9. package/source/index.ts +7 -0
  10. package/source/naming.ts +11 -0
  11. package/source/resolve.ts +53 -0
  12. package/transpiled/Deployment.d.ts +7 -1
  13. package/transpiled/Deployment.js +37 -16
  14. package/transpiled/Deployment.js.map +1 -1
  15. package/transpiled/annotation.d.ts +1 -1
  16. package/transpiled/annotation.js +3 -3
  17. package/transpiled/annotation.js.map +1 -1
  18. package/transpiled/index.d.ts +3 -1
  19. package/transpiled/index.js +28 -1
  20. package/transpiled/index.js.map +1 -1
  21. package/transpiled/{env.d.ts → naming.d.ts} +1 -0
  22. package/transpiled/naming.js +16 -0
  23. package/transpiled/naming.js.map +1 -0
  24. package/transpiled/resolve.d.ts +3 -1
  25. package/transpiled/resolve.js +28 -5
  26. package/transpiled/resolve.js.map +1 -1
  27. package/tsconfig.json +12 -0
  28. package/source/.deployment/.variables/credentials.js +0 -35
  29. package/source/.deployment/.variables/index.js +0 -7
  30. package/source/.deployment/.variables/pointer.js +0 -18
  31. package/source/.deployment/index.js +0 -8
  32. package/source/.deployment/validate.js +0 -19
  33. package/source/.deployment/variables.js +0 -22
  34. package/source/.pointer/env.js +0 -44
  35. package/source/.pointer/index.js +0 -9
  36. package/source/.pointer/label.js +0 -15
  37. package/source/.pointer/local.js +0 -17
  38. package/source/deployment.js +0 -17
  39. package/source/index.js +0 -11
  40. package/source/pointer.js +0 -34
  41. package/source/uris/construct.js +0 -18
  42. package/source/uris/index.js +0 -9
  43. package/source/uris/normalize.js +0 -12
  44. package/source/uris/resolve.js +0 -18
  45. package/source/uris/schema.yaml +0 -17
  46. package/source/uris/validate.js +0 -17
  47. package/source/variable.js +0 -12
  48. package/test/deployment.test.js +0 -92
  49. package/test/pointer.test.js +0 -213
  50. package/test/uris.fixtures.js +0 -10
  51. package/test/uris.test.js +0 -146
  52. package/test/variable.test.js +0 -37
  53. package/transpiled/Variables.d.ts +0 -15
  54. package/transpiled/Variables.js +0 -42
  55. package/transpiled/Variables.js.map +0 -1
  56. package/transpiled/createDeployment.d.ts +0 -4
  57. package/transpiled/createDeployment.js +0 -12
  58. package/transpiled/createDeployment.js.map +0 -1
  59. package/transpiled/env.js +0 -10
  60. package/transpiled/env.js.map +0 -1
  61. package/transpiled/tsconfig.tsbuildinfo +0 -1
  62. package/types/_uris.d.ts +0 -27
  63. package/types/deployment.d.ts +0 -21
  64. package/types/index.d.ts +0 -1
  65. package/types/pointer.d.ts +0 -19
  66. package/types/uris.d.ts +0 -19
  67. package/types/variable.d.ts +0 -8
@@ -1,18 +0,0 @@
1
- 'use strict'
2
-
3
- const { normalize } = require('./normalize')
4
- const { validate } = require('./validate')
5
-
6
- /**
7
- * @param {toa.pointer.URIs | string} declaration
8
- * @returns {toa.pointer.URIs}
9
- */
10
- const construct = (declaration) => {
11
- const normalized = normalize(declaration)
12
-
13
- validate(normalized)
14
-
15
- return normalized
16
- }
17
-
18
- exports.construct = construct
@@ -1,9 +0,0 @@
1
- 'use strict'
2
-
3
- const { construct } = require('./construct')
4
- const { resolve } = require('./resolve')
5
- const { validate } = require('./validate')
6
-
7
- exports.construct = construct
8
- exports.resolve = resolve
9
- exports.validate = validate
@@ -1,12 +0,0 @@
1
- 'use strict'
2
-
3
- /**
4
- * @param {toa.pointer.URIs | string} declaration
5
- * @returns {toa.pointer.URIs}
6
- */
7
- const normalize = (declaration) => {
8
- if (typeof declaration === 'string') return { default: declaration }
9
- return declaration
10
- }
11
-
12
- exports.normalize = normalize
@@ -1,18 +0,0 @@
1
- 'use strict'
2
-
3
- /** @type {toa.pointer.uris.Resolver} */
4
- const resolve = (locator, uris) => {
5
- const keys = [locator.id, locator.namespace, 'default']
6
- const entry = keys.find((key) => key in uris)
7
- const uri = uris[entry]
8
-
9
- if (entry === undefined) throw new Error(`URI annotation for '${locator.id}' is not found`)
10
-
11
- const url = new URL(uri)
12
-
13
- if (url.hostname === '') throw new Error(`URI annotation for '${locator.id}' must contain a hostname`)
14
-
15
- return { url, entry }
16
- }
17
-
18
- exports.resolve = resolve
@@ -1,17 +0,0 @@
1
- $schema: https://json-schema.org/draft/2019-09/schema
2
-
3
- definitions:
4
- node:
5
- oneOf:
6
- - $ref: '#/definitions/locator'
7
- - type: object
8
- patternProperties:
9
- '.*':
10
- $ref: '#/definitions/node'
11
- locator:
12
- type: string
13
-
14
- type: object
15
- patternProperties:
16
- '.*':
17
- $ref: '#/definitions/node'
@@ -1,17 +0,0 @@
1
- 'use strict'
2
-
3
- const path = require('path')
4
-
5
- const schemas = require('@toa.io/schemas')
6
- const { load } = require('@toa.io/yaml')
7
-
8
- const cos = load.sync(path.resolve(__dirname, 'schema.yaml'))
9
- const schema = schemas.schema(cos)
10
-
11
- const validate = (declaration) => {
12
- const error = schema.fit(declaration)
13
-
14
- if (error) throw new TypeError(error.message)
15
- }
16
-
17
- exports.validate = validate
@@ -1,12 +0,0 @@
1
- 'use strict'
2
-
3
- const { letters: { up } } = require('@toa.io/generic')
4
-
5
- /** @type {toa.pointer.Variable} */
6
- const variable = (scope, locator, label, value) => {
7
- const name = `TOA_${up(scope)}_${locator.uppercase}_${up(label)}`
8
-
9
- return { name, value }
10
- }
11
-
12
- exports.variable = variable
@@ -1,92 +0,0 @@
1
- 'use strict'
2
-
3
- const { encode, letters: { up, down } } = require('@toa.io/generic')
4
- const mock = require('@toa.io/mock')
5
-
6
- const { deployment } = require('../')
7
-
8
- const prefix = 'foo-bar'
9
-
10
- /** @type {toa.norm.context.dependencies.Instance[]} */
11
- let instances
12
-
13
- /** @type {toa.pointer.deployment.Options} */
14
- let options
15
-
16
- beforeEach(() => {
17
- instances = mock.dependencies.instances()
18
- options = { prefix }
19
- })
20
-
21
- it('should be', () => {
22
- expect(deployment).toBeInstanceOf(Function)
23
- })
24
-
25
- it('should throw if protocol is omitted', () => {
26
- const annotation = { default: 'no-protocol' }
27
-
28
- expect(() => deployment(instances, annotation, options)).toThrow('Invalid URL')
29
- })
30
-
31
- it('should throw if hostname is omitted', () => {
32
- const annotation = { default: 'amqps:///' }
33
-
34
- expect(() => deployment(instances, annotation, options)).toThrow('must contain a hostname')
35
- })
36
-
37
- it('should consider string annotation as default', () => {
38
- const annotation = 'pg://host0'
39
-
40
- const output = deployment(instances, annotation, options)
41
-
42
- const name = `TOA_${up(prefix)}_POINTER`
43
- const value = encode({ default: annotation })
44
-
45
- expect(output.variables.global).toStrictEqual(expect.arrayContaining([{ name, value }]))
46
- })
47
-
48
- describe('variables', () => {
49
- it('should export POINTER variable', () => {
50
- const annotation = { default: 'amqps://host0' }
51
- const json = JSON.stringify(annotation)
52
- const value = encode(json)
53
- const output = deployment(instances, annotation, options)
54
-
55
- expect(output.variables.global).toStrictEqual(expect.arrayContaining([{
56
- name: `TOA_${up(prefix)}_POINTER`,
57
- value
58
- }]))
59
- })
60
-
61
- it('should export USERNAME and PASSWORD for each entry of URI Set', () => {
62
- const annotation = {
63
- default: 'amqps://host0',
64
- system: 'amqps://host2',
65
- dummies: 'amqps://host3',
66
- 'dummies.one': 'amqps://host4'
67
- }
68
-
69
- const expected = []
70
-
71
- const env = `TOA_${up(prefix)}_`
72
- const sec = `toa-${down(prefix)}-`
73
-
74
- for (const key of Object.keys(annotation)) {
75
- const label = key.replaceAll('.', '-').toLowerCase()
76
-
77
- for (const property of ['username', 'password']) {
78
- expected.push({
79
- name: `${env}${up(label)}_${up(property)}`,
80
- secret: {
81
- name: `${sec}${down(label)}`,
82
- key: property
83
- }
84
- })
85
- }
86
- }
87
-
88
- const output = deployment(instances, annotation, options)
89
-
90
- expect(output.variables.global).toStrictEqual(expect.arrayContaining(expected))
91
- })
92
- })
@@ -1,213 +0,0 @@
1
- 'use strict'
2
-
3
- const { generate } = require('randomstring')
4
- const { encode, letters: { up } } = require('@toa.io/generic')
5
-
6
- const mock = { console: { info: jest.fn(), warn: jest.fn() } }
7
-
8
- jest.mock('@toa.io/console', () => mock)
9
-
10
- const { Locator } = require('@toa.io/core')
11
- const { Pointer } = require('../')
12
-
13
- it('should be', () => {
14
- expect(Pointer).toBeDefined()
15
- expect(Pointer).toBeInstanceOf(Function)
16
- })
17
-
18
- const prefix = 'bindings-amqp'
19
-
20
- /** @type {toa.core.Locator} */
21
- let locator
22
-
23
- /** @type {toa.pointer.Options} */
24
- const options = { protocol: 'protocol:' }
25
-
26
- /** @type {toa.pointer.Pointer} */
27
- let pointer
28
-
29
- /** @type {URL} */
30
- let url
31
-
32
- const uris = (uris) => (process.env[`TOA_${up(prefix)}_POINTER`] = encode(uris))
33
-
34
- beforeEach(() => {
35
- jest.clearAllMocks()
36
-
37
- const name = generate()
38
- const namespace = generate()
39
-
40
- locator = new Locator(name, namespace)
41
-
42
- url = new URL('amqp://whatever:3000')
43
-
44
- uris({ default: url.href })
45
- })
46
-
47
- it('should throw if env not set', () => {
48
- const name = `TOA_${up(prefix)}_POINTER`
49
- delete process.env[name]
50
-
51
- expect(() => new Pointer(prefix, locator, options)).toThrow(`Environment variable ${name} is not set`)
52
- })
53
-
54
- it('should use declared protocol', () => {
55
- pointer = new Pointer(prefix, locator, options)
56
-
57
- expect(pointer.protocol).toStrictEqual(url.protocol)
58
- })
59
-
60
- it('should point to host', () => {
61
- pointer = new Pointer(prefix, locator, options)
62
-
63
- expect(pointer.hostname).toStrictEqual(url.hostname)
64
- })
65
-
66
- it('should resolve credentials', () => {
67
- const check = (entry) => {
68
- const env = `TOA_${up(prefix)}_${up(entry)}_`
69
- const username = generate()
70
- const password = generate()
71
-
72
- process.env[env + 'USERNAME'] = username
73
- process.env[env + 'PASSWORD'] = password
74
-
75
- pointer = new Pointer(prefix, locator, options)
76
-
77
- delete process.env[env + 'USERNAME']
78
- delete process.env[env + 'PASSWORD']
79
-
80
- expect(pointer.username).toStrictEqual(username)
81
- expect(pointer.password).toStrictEqual(password)
82
- }
83
-
84
- // default resolution
85
- check('default')
86
-
87
- // namespace resolution
88
- uris({ [locator.namespace]: 'pg://host0/db' })
89
- check(locator.namespace)
90
-
91
- // id resolution
92
- uris({ [locator.id]: 'pg://host0/db' })
93
- check(locator.label)
94
- })
95
-
96
- it('should expose port as number', () => {
97
- pointer = new Pointer(prefix, locator, options)
98
-
99
- expect(pointer.port).toStrictEqual(Number(url.port))
100
- })
101
-
102
- it('should expose reference', () => {
103
- pointer = new Pointer(prefix, locator, options)
104
-
105
- expect(pointer.reference).toStrictEqual(url.href)
106
- })
107
-
108
- it('should use localhost and given protocol on local environment', () => {
109
- process.env.TOA_DEV = '1'
110
-
111
- pointer = new Pointer(prefix, locator, options)
112
-
113
- delete process.env.TOA_DEV
114
-
115
- expect(pointer.hostname).toStrictEqual('localhost')
116
- expect(pointer.protocol).toStrictEqual(options.protocol)
117
- })
118
-
119
- it('should use default protocol and credentials on local environment', () => {
120
- process.env.TOA_DEV = '1'
121
-
122
- pointer = new Pointer(prefix, locator, options)
123
-
124
- delete process.env.TOA_DEV
125
-
126
- expect(pointer.reference).toStrictEqual(`${options.protocol}//developer:secret@localhost`)
127
- expect(pointer.label).toStrictEqual(`${options.protocol}//developer@localhost`)
128
- })
129
-
130
- describe('environment variables', () => {
131
- const username = generate()
132
- const password = generate()
133
-
134
- const env = `TOA_${up(prefix)}_DEFAULT`
135
-
136
- let set
137
- let unset
138
-
139
- beforeEach(() => {
140
- jest.clearAllMocks()
141
-
142
- set = (name, value, prefix = env) => {
143
- const key = prefix + '_' + up(name)
144
-
145
- process.env[key] = value
146
- url[name] = value
147
- }
148
-
149
- unset = (name, prefix = env) => {
150
- const key = prefix + '_' + up(name)
151
-
152
- delete process.env[key]
153
- url[name] = ''
154
- }
155
-
156
- set('username', username)
157
- set('password', password)
158
- })
159
-
160
- afterEach(() => {
161
- unset('username')
162
- unset('password')
163
- })
164
-
165
- it('should use env variables for credentials', () => {
166
- pointer = new Pointer(prefix, locator, options)
167
-
168
- expect(pointer.reference).toStrictEqual(url.href)
169
-
170
- url.password = ''
171
-
172
- expect(pointer.label).toStrictEqual(url.href)
173
- })
174
-
175
- it('should warn if username is not set', () => {
176
- url.hostname = locator.hostname(prefix)
177
-
178
- unset('username')
179
- url.password = ''
180
-
181
- const pointer = new Pointer(prefix, locator, options)
182
-
183
- expect(pointer).toBeDefined()
184
- expect(mock.console.warn).toHaveBeenCalledWith(`Username for ${env} is not set`)
185
- })
186
-
187
- it('should warn if password is not set', () => {
188
- url.hostname = locator.hostname(prefix)
189
-
190
- unset('password')
191
-
192
- const pointer = new Pointer(prefix, locator, options)
193
-
194
- expect(pointer).toBeDefined()
195
- expect(mock.console.warn).toHaveBeenCalledWith(`Password for ${env} is not set`)
196
- })
197
-
198
- it('should not warn it credentials are set', () => {
199
- uris({ [locator.id]: 'amqp://host0' })
200
-
201
- const username = generate()
202
- const password = generate()
203
- const env = `TOA_${up(prefix)}_${locator.uppercase}`
204
-
205
- set('username', username, env)
206
- set('password', password, env)
207
-
208
- const pointer = new Pointer(prefix, locator, options)
209
-
210
- expect(pointer).toBeDefined()
211
- expect(mock.console.warn).not.toHaveBeenCalled()
212
- })
213
- })
@@ -1,10 +0,0 @@
1
- 'use strict'
2
-
3
- const annotations = {
4
- default: 'http://host.docker.internal/',
5
- credits: {
6
- balance: 'amqp://host.docker.internal'
7
- }
8
- }
9
-
10
- exports.annotations = annotations
package/test/uris.test.js DELETED
@@ -1,146 +0,0 @@
1
- 'use strict'
2
-
3
- const clone = require('clone-deep')
4
- const { generate } = require('randomstring')
5
- const { random } = require('@toa.io/generic')
6
- const { Locator } = require('@toa.io/core')
7
-
8
- const fixtures = require('./uris.fixtures')
9
- const { uris } = require('../')
10
-
11
- const gen = () => 'schema://host-' + generate().toLowerCase() + ':' + (random(1000) + 1000)
12
-
13
- describe('construct', () => {
14
- const construct = uris.construct
15
-
16
- let annotations
17
-
18
- beforeEach(() => {
19
- annotations = clone(fixtures.annotations)
20
- })
21
-
22
- it('should be', () => {
23
- expect(construct).toBeDefined()
24
- expect(construct).toBeInstanceOf(Function)
25
- })
26
-
27
- describe('normalize', () => {
28
- it('should treat string value as default', () => {
29
- const declaration = gen()
30
- const result = construct(declaration)
31
-
32
- expect(result).toStrictEqual({ default: declaration })
33
- })
34
-
35
- it('should allow dot notation', () => {
36
- const url = gen()
37
-
38
- annotations['foo.bar'] = url
39
-
40
- construct(annotations)
41
-
42
- expect(annotations['foo.bar']).toStrictEqual(url)
43
- })
44
-
45
- it('should allow shards', () => {
46
- const annotations = 'schema://host{1-2}-' + generate().toLowerCase()
47
-
48
- construct(annotations)
49
-
50
- expect(annotations).toStrictEqual(annotations)
51
- })
52
-
53
- it('should allow dot notation with namespace value', () => {
54
- annotations.foo = gen()
55
- annotations['foo.bar'] = gen()
56
-
57
- expect(() => construct(annotations)).not.toThrow()
58
- })
59
- })
60
-
61
- describe('validate', () => {
62
- it('should throw if declaration is not a string or an object', () => {
63
- // noinspection JSCheckFunctionSignatures
64
- expect(() => construct(1)).toThrow(TypeError)
65
- expect(() => construct(null)).toThrow(TypeError)
66
- })
67
- })
68
- })
69
-
70
- describe('resolve', () => {
71
- const resolve = uris.resolve
72
-
73
- let name
74
- let namespace
75
- let uri
76
-
77
- /** @type {toa.pointer.URIs} */
78
- let annotation
79
-
80
- /** @type {toa.core.Locator} */
81
- let locator
82
-
83
- beforeEach(() => {
84
- name = generate()
85
- namespace = generate()
86
- uri = gen()
87
-
88
- annotation = {
89
- [namespace + '.' + name]: uri
90
- }
91
-
92
- locator = new Locator(name, namespace)
93
- })
94
-
95
- it('should be', () => {
96
- expect(uris.resolve).toBeDefined()
97
- expect(uris.resolve).toBeInstanceOf(Function)
98
- })
99
-
100
- it('should resolve by id', () => {
101
- const { url } = resolve(locator, annotation)
102
-
103
- expect(url).toBeInstanceOf(URL)
104
- expect(url.href).toStrictEqual(uri)
105
- })
106
-
107
- it('should throw if not found', () => {
108
- const name = generate()
109
- const namespace = generate()
110
- const locator = new Locator(name, namespace)
111
-
112
- expect(() => resolve(locator, annotation)).toThrow(`URI annotation for '${locator.id}' is not found`)
113
- })
114
-
115
- it('should resolve by namespace', () => {
116
- annotation[namespace] = uri
117
-
118
- const { url } = resolve(locator, annotation)
119
-
120
- expect(url.href).toStrictEqual(uri)
121
- })
122
-
123
- it('should resolve default', () => {
124
- annotation = { default: gen() }
125
-
126
- const { url } = resolve(locator, annotation)
127
-
128
- expect(url.href).toStrictEqual(annotation.default)
129
- })
130
-
131
- it('should resolve global locators', () => {
132
- const name = generate()
133
- const locator = new Locator(name)
134
- const uri = gen()
135
-
136
- annotation = { [name]: uri }
137
-
138
- const { url } = resolve(locator, annotation)
139
-
140
- expect(url.href).toStrictEqual(uri)
141
- })
142
- })
143
-
144
- it('should expose validate function', async () => {
145
- expect(uris.validate).toBeInstanceOf(Function)
146
- })
@@ -1,37 +0,0 @@
1
- 'use strict'
2
-
3
- const { generate } = require('randomstring')
4
- const { Locator } = require('@toa.io/core')
5
- const { random, letters: { up } } = require('@toa.io/generic')
6
-
7
- const { variable } = require('../')
8
-
9
- it('should be', () => {
10
- expect(variable).toBeInstanceOf(Function)
11
- })
12
-
13
- it('should create variable', () => {
14
- const prefix = 'foo-bar'
15
- const namespace = generate()
16
- const component = generate()
17
- const locator = new Locator(component, namespace)
18
- const name = generate()
19
-
20
- let value = generate()
21
-
22
- const string = variable(prefix, locator, name, value)
23
-
24
- const expected = {
25
- name: `TOA_${up(prefix)}_${locator.uppercase}_${up(name)}`,
26
- value
27
- }
28
-
29
- expect(string).toStrictEqual(expected)
30
-
31
- value = random()
32
- expected.value = value
33
-
34
- const number = variable(prefix, locator, name, value)
35
-
36
- expect(number).toStrictEqual(expected)
37
- })
@@ -1,15 +0,0 @@
1
- import type * as operations from '@toa.io/operations';
2
- export declare class Variables {
3
- private readonly id;
4
- private readonly annotation;
5
- constructor(id: string, annotation: URIMap);
6
- export(requests: Request[]): operations.Variables;
7
- private createVariables;
8
- private createVariable;
9
- private resolve;
10
- }
11
- export interface Request {
12
- group: string;
13
- selectors: string[];
14
- }
15
- export type URIMap = Record<string, string[]>;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Variables = void 0;
4
- const env_1 = require("./env");
5
- class Variables {
6
- id;
7
- annotation;
8
- constructor(id, annotation) {
9
- this.id = id;
10
- this.annotation = annotation;
11
- }
12
- export(requests) {
13
- const variables = {};
14
- for (const request of requests)
15
- variables[request.group] = this.createVariables(request.selectors);
16
- return variables;
17
- }
18
- createVariables(selectors) {
19
- return selectors.map((selector) => this.createVariable(selector));
20
- }
21
- createVariable(selector) {
22
- const name = (0, env_1.nameVariable)(this.id, selector);
23
- const values = this.resolve(selector);
24
- const value = values.join(' ');
25
- return { name, value };
26
- }
27
- resolve(selector) {
28
- if (selector in this.annotation)
29
- return this.annotation[selector];
30
- const segments = selector.split('.');
31
- while (segments.pop() !== undefined) {
32
- const current = segments.join('.');
33
- if (current in this.annotation)
34
- return this.annotation[current];
35
- }
36
- if (this.annotation['.'] === undefined)
37
- throw new Error(`Selector '${selector}' cannot be resolved.`);
38
- return this.annotation['.'];
39
- }
40
- }
41
- exports.Variables = Variables;
42
- //# sourceMappingURL=Variables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Variables.js","sourceRoot":"","sources":["../source/Variables.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAGpC,MAAa,SAAS;IACH,EAAE,CAAQ;IACV,UAAU,CAAQ;IAEnC,YAAoB,EAAU,EAAE,UAAkB;QAChD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAE,QAAmB;QAChC,MAAM,SAAS,GAAyB,EAAE,CAAA;QAE1C,KAAK,MAAM,OAAO,IAAI,QAAQ;YAC5B,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEpE,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,eAAe,CAAE,SAAmB;QAC1C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IACnE,CAAC;IAEO,cAAc,CAAE,QAAgB;QACtC,MAAM,IAAI,GAAG,IAAA,kBAAY,EAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAE9B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;IAEO,OAAO,CAAE,QAAgB;QAC/B,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEpC,OAAO,QAAQ,CAAC,GAAG,EAAE,KAAK,SAAS,EAAE;YACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAElC,IAAI,OAAO,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;SAChE;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS;YACpC,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,uBAAuB,CAAC,CAAA;QAE/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;CACF;AA9CD,8BA8CC"}
@@ -1,4 +0,0 @@
1
- import { type Request } from './Deployment';
2
- import type { Variables } from '@toa.io/operations';
3
- import type { Declaration } from './annotation';
4
- export declare function createVariables(id: string, declaration: Declaration, requests: Request[]): Variables;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createVariables = void 0;
4
- const Deployment_1 = require("./Deployment");
5
- const annotation_1 = require("./annotation");
6
- function createVariables(id, declaration, requests) {
7
- const annotation = (0, annotation_1.normalize)(declaration);
8
- const deployment = new Deployment_1.Deployment(id, annotation);
9
- return deployment.export(requests);
10
- }
11
- exports.createVariables = createVariables;
12
- //# sourceMappingURL=createDeployment.js.map