@api-client/core 0.14.5 → 0.14.7
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/build/src/amf/ApiSchemaValues.js.map +1 -1
- package/build/src/modeling/ApiModel.d.ts +27 -17
- package/build/src/modeling/ApiModel.d.ts.map +1 -1
- package/build/src/modeling/ApiModel.js +69 -20
- package/build/src/modeling/ApiModel.js.map +1 -1
- package/build/src/modeling/DataDomain.d.ts +5 -15
- package/build/src/modeling/DataDomain.d.ts.map +1 -1
- package/build/src/modeling/DataDomain.js +18 -14
- package/build/src/modeling/DataDomain.js.map +1 -1
- package/build/src/modeling/DependentModel.d.ts +26 -0
- package/build/src/modeling/DependentModel.d.ts.map +1 -0
- package/build/src/modeling/DependentModel.js +23 -0
- package/build/src/modeling/DependentModel.js.map +1 -0
- package/build/src/modeling/types.d.ts +2 -0
- package/build/src/modeling/types.d.ts.map +1 -1
- package/build/src/modeling/types.js.map +1 -1
- package/build/src/models/store/Backend.d.ts +0 -168
- package/build/src/models/store/Backend.d.ts.map +1 -1
- package/build/src/models/store/Backend.js +1 -12
- package/build/src/models/store/Backend.js.map +1 -1
- package/build/src/sdk/RouteBuilder.d.ts +1 -1
- package/build/src/sdk/RouteBuilder.d.ts.map +1 -1
- package/build/src/sdk/RouteBuilder.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/data/models/example-generator-api.json +8 -8
- package/package.json +1 -1
- package/src/amf/ApiSchemaValues.ts +1 -1
- package/src/modeling/ApiModel.ts +74 -31
- package/src/modeling/DataDomain.ts +18 -25
- package/src/modeling/DependentModel.ts +36 -0
- package/src/modeling/types.ts +2 -0
- package/src/models/store/Backend.ts +0 -176
- package/src/sdk/RouteBuilder.ts +1 -1
- package/tests/unit/modeling/api_model.spec.ts +17 -15
|
@@ -17,7 +17,7 @@ test.group('ApiModel.createSchema()', () => {
|
|
|
17
17
|
assert.deepInclude(schema.info, { name: 'Unnamed API' })
|
|
18
18
|
assert.deepEqual(schema.exposes, [])
|
|
19
19
|
assert.isUndefined(schema.userKey)
|
|
20
|
-
assert.isUndefined(schema.
|
|
20
|
+
assert.isUndefined(schema.dependencyList)
|
|
21
21
|
assert.isUndefined(schema.authentication)
|
|
22
22
|
assert.isUndefined(schema.authorization)
|
|
23
23
|
assert.isUndefined(schema.session)
|
|
@@ -31,7 +31,7 @@ test.group('ApiModel.createSchema()', () => {
|
|
|
31
31
|
info: { name: 'Test API', description: 'A test API' },
|
|
32
32
|
exposes: [{ key: 'entity1', actions: [] }],
|
|
33
33
|
userKey: 'user-entity',
|
|
34
|
-
|
|
34
|
+
dependencyList: [{ key: 'domain1', version: '1.0.0' }],
|
|
35
35
|
authentication: { strategy: 'UsernamePassword' },
|
|
36
36
|
authorization: { strategy: 'RBAC', roleKey: 'role' } as RolesBasedAccessControl,
|
|
37
37
|
session: { secret: 'secret', properties: ['email'] },
|
|
@@ -45,7 +45,7 @@ test.group('ApiModel.createSchema()', () => {
|
|
|
45
45
|
assert.deepInclude(schema.info, { name: 'Test API', description: 'A test API' })
|
|
46
46
|
assert.deepEqual(schema.exposes, [{ key: 'entity1', actions: [] }])
|
|
47
47
|
assert.equal(schema.userKey, 'user-entity')
|
|
48
|
-
assert.deepEqual(schema.
|
|
48
|
+
assert.deepEqual(schema.dependencyList, [{ key: 'domain1', version: '1.0.0' }])
|
|
49
49
|
assert.deepEqual(schema.authentication, { strategy: 'UsernamePassword' })
|
|
50
50
|
assert.deepEqual(schema.authorization, { strategy: 'RBAC', roleKey: 'role' })
|
|
51
51
|
assert.deepEqual(schema.session, { secret: 'secret', properties: ['email'] })
|
|
@@ -73,13 +73,12 @@ test.group('ApiModel.constructor()', () => {
|
|
|
73
73
|
assert.equal(model.info.name, 'Unnamed API')
|
|
74
74
|
assert.deepEqual(model.exposes, [])
|
|
75
75
|
assert.isUndefined(model.userKey)
|
|
76
|
-
assert.isUndefined(model.domain)
|
|
77
76
|
assert.isUndefined(model.authentication)
|
|
78
77
|
assert.isUndefined(model.authorization)
|
|
79
78
|
assert.isUndefined(model.session)
|
|
80
79
|
assert.isUndefined(model.accessRule)
|
|
81
80
|
assert.isUndefined(model.rateLimiting)
|
|
82
|
-
assert.
|
|
81
|
+
assert.deepEqual(model.dependencyList, [])
|
|
83
82
|
})
|
|
84
83
|
|
|
85
84
|
test('creates an instance with provided schema values', ({ assert }) => {
|
|
@@ -89,7 +88,7 @@ test.group('ApiModel.constructor()', () => {
|
|
|
89
88
|
info: { name: 'Test API', description: 'A test API' },
|
|
90
89
|
exposes: [{ key: 'entity1', actions: [] }],
|
|
91
90
|
userKey: 'user-entity',
|
|
92
|
-
|
|
91
|
+
dependencyList: [{ key: 'domain1', version: '1.0.0' }],
|
|
93
92
|
authentication: { strategy: 'UsernamePassword' },
|
|
94
93
|
authorization: { strategy: 'RBAC', roleKey: 'role' } as RolesBasedAccessControl,
|
|
95
94
|
session: { secret: 'secret', properties: ['email'] },
|
|
@@ -102,21 +101,24 @@ test.group('ApiModel.constructor()', () => {
|
|
|
102
101
|
assert.equal(model.info.name, 'Test API')
|
|
103
102
|
assert.deepEqual(model.exposes, [{ key: 'entity1', actions: [] }])
|
|
104
103
|
assert.equal(model.userKey, 'user-entity')
|
|
105
|
-
assert.deepEqual(model.
|
|
104
|
+
assert.deepEqual(model.dependencyList, [{ key: 'domain1', version: '1.0.0' }])
|
|
106
105
|
assert.deepEqual(model.authentication, { strategy: 'UsernamePassword' })
|
|
107
106
|
assert.deepEqual(model.authorization, { strategy: 'RBAC', roleKey: 'role' })
|
|
108
107
|
assert.deepEqual(model.session, { secret: 'secret', properties: ['email'] })
|
|
109
108
|
assert.deepEqual(model.accessRule, [{ type: 'public' }])
|
|
110
109
|
assert.deepEqual(model.rateLimiting, { rules: [] })
|
|
111
|
-
assert.isUndefined(model.dataDomain)
|
|
112
110
|
})
|
|
113
111
|
|
|
114
112
|
test('creates an instance with a DataDomain', ({ assert }) => {
|
|
115
113
|
const domainSchema = DataDomain.createSchema({ key: 'my-domain' })
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
114
|
+
domainSchema.info.version = '1.0.0'
|
|
115
|
+
const model = new ApiModel(
|
|
116
|
+
{ dependencyList: [{ version: domainSchema.info.version, key: domainSchema.key }] },
|
|
117
|
+
domainSchema
|
|
118
|
+
)
|
|
119
|
+
assert.isDefined(model.domain)
|
|
120
|
+
assert.instanceOf(model.domain, DataDomain)
|
|
121
|
+
assert.equal(model.domain!.key, 'my-domain')
|
|
120
122
|
})
|
|
121
123
|
|
|
122
124
|
test('notifies change when info is modified', async ({ assert }) => {
|
|
@@ -141,7 +143,7 @@ test.group('ApiModel.toJSON()', () => {
|
|
|
141
143
|
assert.deepInclude(json.info, { name: 'Unnamed API' })
|
|
142
144
|
assert.deepEqual(json.exposes, [])
|
|
143
145
|
assert.isUndefined(json.userKey)
|
|
144
|
-
assert.isUndefined(json.
|
|
146
|
+
assert.isUndefined(json.dependencyList)
|
|
145
147
|
assert.isUndefined(json.authentication)
|
|
146
148
|
assert.isUndefined(json.authorization)
|
|
147
149
|
assert.isUndefined(json.session)
|
|
@@ -156,7 +158,7 @@ test.group('ApiModel.toJSON()', () => {
|
|
|
156
158
|
info: { name: 'Test API', description: 'A test API' },
|
|
157
159
|
exposes: [{ key: 'entity1', actions: [] }],
|
|
158
160
|
userKey: 'user-entity',
|
|
159
|
-
|
|
161
|
+
dependencyList: [{ key: 'domain1', version: '1.0.0' }],
|
|
160
162
|
authentication: { strategy: 'UsernamePassword' },
|
|
161
163
|
authorization: { strategy: 'RBAC', roleKey: 'role' } as RolesBasedAccessControl,
|
|
162
164
|
session: { secret: 'secret', properties: ['email'] },
|
|
@@ -170,7 +172,7 @@ test.group('ApiModel.toJSON()', () => {
|
|
|
170
172
|
assert.deepInclude(json.info, { name: 'Test API', description: 'A test API' })
|
|
171
173
|
assert.deepEqual(json.exposes, [{ key: 'entity1', actions: [] }])
|
|
172
174
|
assert.equal(json.userKey, 'user-entity')
|
|
173
|
-
assert.deepEqual(json.
|
|
175
|
+
assert.deepEqual(json.dependencyList, [{ key: 'domain1', version: '1.0.0' }])
|
|
174
176
|
assert.deepEqual(json.authentication, { strategy: 'UsernamePassword' })
|
|
175
177
|
assert.deepEqual(json.authorization, { strategy: 'RBAC', roleKey: 'role' })
|
|
176
178
|
assert.deepEqual(json.session, { secret: 'secret', properties: ['email'] })
|