@forge/kvs
1.2.7-next.0-experimental-d9973071.2.7-next.0-experimental-44a932f
~
Modified (34 files)
Index: package/out/entity-query.js
===================================================================
--- package/out/entity-query.js
+++ package/out/entity-query.js
@@ -3,17 +3,14 @@
exports.FilterBuilder = exports.BaseFilter = exports.KvsIndexQueryBuilder = void 0;
class KvsIndexQueryBuilder {
entityName;
storageApi;
- options;
- constructor(entityName, storageApi, options) {
+ constructor(entityName, storageApi) {
this.entityName = entityName;
this.storageApi = storageApi;
- this.options = options;
}
index(name, indexOptions) {
return new KvsEntityQueryBuilder(this.storageApi, {
- ...this.options,
entityName: this.entityName,
indexName: name,
partition: indexOptions?.partition,
filters: []
@@ -56,22 +53,18 @@
}
return undefined;
}
async getMany() {
- const maybeOptions = {
- ...(this.queryOptions?.metadataFields ? { options: { metadataFields: this.queryOptions.metadataFields } } : {})
- };
- const { filters, filterOperator, metadataFields, ...rest } = this.queryOptions;
+ const { filters, filterOperator, ...rest } = this.queryOptions;
if (filters && filterOperator && filters.length > 0) {
return this.storageApi.queryEntity({
...rest,
- ...maybeOptions,
filters: {
[filterOperator]: filters
}
});
}
- return this.storageApi.queryEntity({ ...rest, ...maybeOptions });
+ return this.storageApi.queryEntity(rest);
}
}
class BaseFilter {
items; Index: package/out/entity.js
===================================================================
--- package/out/entity.js
+++ package/out/entity.js
@@ -15,23 +15,22 @@
key,
options
});
}
- set(key, value, options) {
+ set(key, value) {
return this.storageApi.setEntity({
entityName: this.entityName,
key,
- value,
- options
+ value
});
}
delete(key) {
return this.storageApi.deleteEntity({
entityName: this.entityName,
key
});
}
- query(options) {
- return new entity_query_1.KvsIndexQueryBuilder(this.entityName, this.storageApi, options);
+ query() {
+ return new entity_query_1.KvsIndexQueryBuilder(this.entityName, this.storageApi);
}
}
exports.EntityImpl = EntityImpl; Index: package/out/__test__/index.test.js
===================================================================
--- package/out/__test__/index.test.js
+++ package/out/__test__/index.test.js
@@ -29,67 +29,28 @@
expect(apiClient).toHaveBeenCalledWith('/api/v1/get', expect.objectContaining({
body: JSON.stringify({ key: 'foo' })
}));
});
- it('should get with metadata fields correctly for get', async () => {
- const response = new Response(JSON.stringify({
- key: 'foo',
- value: 'bar',
- createdAt: 1718236800,
- updatedAt: 1718236800,
- expireTime: '2025-01-12T13:00:00Z'
- }), {
+ it('should get with metadata fields correctly', async () => {
+ const response = new Response(JSON.stringify({ key: 'foo', value: 'bar', createdAt: 1718236800, updatedAt: 1718236800 }), {
status: 200,
headers: { 'x-trace-id': traceId }
});
const { sut, apiClient } = prepare(response);
- const rs = await sut.get('foo', {
- metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
+ const rs = await sut.get('foo', { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] });
expect(rs).toEqual({
key: 'foo',
value: 'bar',
createdAt: 1718236800,
- updatedAt: 1718236800,
- expireTime: '2025-01-12T13:00:00Z'
+ updatedAt: 1718236800
});
expect(apiClient).toHaveBeenCalledWith('/api/v1/get', expect.objectContaining({
body: JSON.stringify({
key: 'foo',
- options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME] }
+ options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] }
})
}));
});
- it('should get with metadata fields correctly for entity.get', async () => {
- const response = new Response(JSON.stringify({
- key: 'key-foo',
- value: { foo: 'bar' },
- createdAt: 1718236800,
- updatedAt: 1718236800,
- expireTime: '2025-01-12T13:00:00Z'
- }), {
- status: 200,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.entity('foo').get('key-foo', {
- metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
- expect(rs).toEqual({
- key: 'key-foo',
- value: { foo: 'bar' },
- createdAt: 1718236800,
- updatedAt: 1718236800,
- expireTime: '2025-01-12T13:00:00Z'
- });
- expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/get', expect.objectContaining({
- body: JSON.stringify({
- entityName: 'foo',
- key: 'key-foo',
- options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME] }
- })
- }));
- });
it('should return undefined when get receives 404', async () => {
const response = new Response(JSON.stringify({ code: 'KEY_NOT_FOUND', message: 'Provided key does not exist' }), {
status: 404,
headers: { 'x-trace-id': traceId }
@@ -142,33 +103,24 @@
body: JSON.stringify({ key: 'foo' })
}));
});
it('should getSecret with metadata fields correctly', async () => {
- const response = new Response(JSON.stringify({
- key: 'foo',
- value: 'bar',
- createdAt: 1718236800,
- updatedAt: 1718236800,
- expireTime: '2025-01-12T13:00:00Z'
- }), {
+ const response = new Response(JSON.stringify({ key: 'foo', value: 'bar', createdAt: 1718236800, updatedAt: 1718236800 }), {
status: 200,
headers: { 'x-trace-id': traceId }
});
const { sut, apiClient } = prepare(response);
- const rs = await sut.getSecret('foo', {
- metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
+ const rs = await sut.getSecret('foo', { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] });
expect(rs).toEqual({
key: 'foo',
value: 'bar',
createdAt: 1718236800,
- updatedAt: 1718236800,
- expireTime: '2025-01-12T13:00:00Z'
+ updatedAt: 1718236800
});
expect(apiClient).toHaveBeenCalledWith('/api/v1/secret/get', expect.objectContaining({
body: JSON.stringify({
key: 'foo',
- options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME] }
+ options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] }
})
}));
});
it('should return undefined when getSecret receives 404', async () => {
@@ -195,34 +147,27 @@
body: JSON.stringify({ entityName: 'employees', key: 'foo' })
}));
});
it('should getEntity with metadata fields correctly', async () => {
- const response = new Response(JSON.stringify({
- key: 'foo',
- value: { name: 'Jane Doe' },
- createdAt: 1718236800,
- updatedAt: 1718236800,
- expireTime: '2025-01-12T13:00:00Z'
- }), {
+ const response = new Response(JSON.stringify({ key: 'foo', value: { name: 'Jane Doe' }, createdAt: 1718236800, updatedAt: 1718236800 }), {
status: 200,
headers: { 'x-trace-id': traceId }
});
const { sut, apiClient } = prepare(response);
const rs = await sut
.entity('employees')
- .get('foo', { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME] });
+ .get('foo', { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] });
expect(rs).toEqual({
key: 'foo',
value: { name: 'Jane Doe' },
createdAt: 1718236800,
- updatedAt: 1718236800,
- expireTime: '2025-01-12T13:00:00Z'
+ updatedAt: 1718236800
});
expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/get', expect.objectContaining({
body: JSON.stringify({
entityName: 'employees',
key: 'foo',
- options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME] }
+ options: { metadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT] }
})
}));
});
it('should return undefined when getEntity receives 404', async () => {
@@ -248,95 +193,8 @@
expect(apiClient).toHaveBeenCalledWith('/api/v1/set', expect.objectContaining({
body: JSON.stringify({ key: 'foo', value: 'bar' })
}));
});
- it('should set correctly with TTL', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.set('foo', 'bar', { ttl: { value: 5, unit: 'MINUTES' } });
- expect(rs).toBeUndefined();
- expect(apiClient).toHaveBeenCalledWith('/api/v1/set', expect.objectContaining({
- body: JSON.stringify({ key: 'foo', value: 'bar', options: { ttl: { value: 5, unit: 'MINUTES' } } })
- }));
- });
- it('should set correctly with keyPolicy "FAIL_IF_EXISTS"', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.set('foo', 'bar', { ttl: { value: 5, unit: 'MINUTES' }, keyPolicy: 'FAIL_IF_EXISTS' });
- expect(rs).toBeUndefined();
- expect(apiClient).toHaveBeenCalledWith('/api/v1/set', expect.objectContaining({
- body: JSON.stringify({
- key: 'foo',
- value: 'bar',
- options: { ttl: { value: 5, unit: 'MINUTES' }, keyPolicy: 'FAIL_IF_EXISTS' }
- })
- }));
- });
- it('should set correctly with keyPolicy "OVERRIDE" and return value', async () => {
- const responseBody = {
- key: 'foo',
- value: 'bar',
- createdAt: Date.now(),
- updatedAt: Date.now(),
- expireTime: '2025-01-12T13:00:00Z'
- };
- const response = new Response(JSON.stringify(responseBody), {
- status: 200,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.set('foo', 'bar', {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'LATEST',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
- expect(rs).toEqual(responseBody);
- expect(apiClient).toHaveBeenCalledWith('/api/v1/set', expect.objectContaining({
- body: JSON.stringify({
- key: 'foo',
- value: 'bar',
- options: {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'LATEST',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- }
- })
- }));
- });
- it('should set and return undefined when no previous value exists', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.set('foo', 'bar', {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'PREVIOUS',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
- expect(rs).toEqual(undefined);
- expect(apiClient).toHaveBeenCalledWith('/api/v1/set', expect.objectContaining({
- body: JSON.stringify({
- key: 'foo',
- value: 'bar',
- options: {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'PREVIOUS',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- }
- })
- }));
- });
it('should setSecret correctly', async () => {
const response = new Response(undefined, {
status: 204,
headers: { 'x-trace-id': traceId }
@@ -347,95 +205,8 @@
expect(apiClient).toHaveBeenCalledWith('/api/v1/secret/set', expect.objectContaining({
body: JSON.stringify({ key: 'foo', value: 'bar' })
}));
});
- it('should setSecret correctly with TTL', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.setSecret('foo', 'bar', { ttl: { value: 5, unit: 'MINUTES' } });
- expect(rs).toBeUndefined();
- expect(apiClient).toHaveBeenCalledWith('/api/v1/secret/set', expect.objectContaining({
- body: JSON.stringify({ key: 'foo', value: 'bar', options: { ttl: { value: 5, unit: 'MINUTES' } } })
- }));
- });
- it('should setSecret correctly with keyPolicy "FAIL_IF_EXISTS"', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.setSecret('foo', 'bar', { ttl: { value: 5, unit: 'MINUTES' }, keyPolicy: 'FAIL_IF_EXISTS' });
- expect(rs).toBeUndefined();
- expect(apiClient).toHaveBeenCalledWith('/api/v1/secret/set', expect.objectContaining({
- body: JSON.stringify({
- key: 'foo',
- value: 'bar',
- options: { ttl: { value: 5, unit: 'MINUTES' }, keyPolicy: 'FAIL_IF_EXISTS' }
- })
- }));
- });
- it('should setSecret correctly with keyPolicy "OVERRIDE" and return value', async () => {
- const responseBody = {
- key: 'foo',
- value: 'bar',
- createdAt: Date.now(),
- updatedAt: Date.now(),
- expireTime: '2025-01-12T13:00:00Z'
- };
- const response = new Response(JSON.stringify(responseBody), {
- status: 200,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.setSecret('foo', 'bar', {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'LATEST',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
- expect(rs).toEqual(responseBody);
- expect(apiClient).toHaveBeenCalledWith('/api/v1/secret/set', expect.objectContaining({
- body: JSON.stringify({
- key: 'foo',
- value: 'bar',
- options: {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'LATEST',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- }
- })
- }));
- });
- it('should setSecret and return undefined when no previous value exists', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.setSecret('foo', 'bar', {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'PREVIOUS',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
- expect(rs).toEqual(undefined);
- expect(apiClient).toHaveBeenCalledWith('/api/v1/secret/set', expect.objectContaining({
- body: JSON.stringify({
- key: 'foo',
- value: 'bar',
- options: {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'PREVIOUS',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- }
- })
- }));
- });
it('should setEntity correctly', async () => {
const response = new Response(undefined, {
status: 204,
headers: { 'x-trace-id': traceId }
@@ -446,105 +217,8 @@
expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/set', expect.objectContaining({
body: JSON.stringify({ entityName: 'employees', key: 'foo', value: { name: 'Jane Doe' } })
}));
});
- it('should setEntity correctly with TTL', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.entity('employees').set('foo', { name: 'Jane Doe' }, { ttl: { value: 5, unit: 'MINUTES' } });
- expect(rs).toBeUndefined();
- expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/set', expect.objectContaining({
- body: JSON.stringify({
- entityName: 'employees',
- key: 'foo',
- value: { name: 'Jane Doe' },
- options: { ttl: { value: 5, unit: 'MINUTES' } }
- })
- }));
- });
- it('should setEntity correctly with "FAIL_IF_EXISTS"', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut
- .entity('employees')
- .set('foo', { name: 'Jane Doe' }, { ttl: { value: 5, unit: 'MINUTES' }, keyPolicy: 'FAIL_IF_EXISTS' });
- expect(rs).toBeUndefined();
- expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/set', expect.objectContaining({
- body: JSON.stringify({
- entityName: 'employees',
- key: 'foo',
- value: { name: 'Jane Doe' },
- options: { ttl: { value: 5, unit: 'MINUTES' }, keyPolicy: 'FAIL_IF_EXISTS' }
- })
- }));
- });
- it('should setEntity correctly with "OVERRIDE" and return value', async () => {
- const responseBody = {
- key: 'foo',
- value: 'bar',
- createdAt: Date.now(),
- updatedAt: Date.now(),
- expireTime: '2025-01-12T13:00:00Z'
- };
- const response = new Response(JSON.stringify(responseBody), {
- status: 200,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.entity('employees').set('foo', { name: 'Jane Doe' }, {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'LATEST',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
- expect(rs).toEqual(responseBody);
- expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/set', expect.objectContaining({
- body: JSON.stringify({
- entityName: 'employees',
- key: 'foo',
- value: { name: 'Jane Doe' },
- options: {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'LATEST',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- }
- })
- }));
- });
- it('should setEntity and return undefined when no previous value exists', async () => {
- const response = new Response(undefined, {
- status: 204,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut.entity('employees').set('foo', { name: 'Jane Doe' }, {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'PREVIOUS',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- });
- expect(rs).toBeUndefined();
- expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/set', expect.objectContaining({
- body: JSON.stringify({
- entityName: 'employees',
- key: 'foo',
- value: { name: 'Jane Doe' },
- options: {
- ttl: { value: 5, unit: 'MINUTES' },
- keyPolicy: 'OVERRIDE',
- returnValue: 'PREVIOUS',
- returnMetadataFields: [types_1.MetadataField.CREATED_AT, types_1.MetadataField.UPDATED_AT, types_1.MetadataField.EXPIRE_TIME]
- }
- })
- }));
- });
it('should delete correctly', async () => {
const response = new Response(undefined, {
status: 204,
headers: { 'x-trace-id': traceId }
@@ -639,38 +313,8 @@
where: [{ property: 'key', condition: 'BEGINS_WITH', values: ['fo'] }]
})
}));
});
- it('should query correctly with TTL fields', async () => {
- const response = new Response(JSON.stringify({
- cursor: 'third-page',
- data: [{ key: 'foo', value: 'bar', expireTime: '2025-01-12T13:00:00Z' }]
- }), {
- status: 200,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const rs = await sut
- .query({ metadataFields: [types_1.MetadataField.EXPIRE_TIME] })
- .cursor('second-page')
- .limit(1)
- .where('key', conditions_1.WhereConditions.beginsWith('fo'))
- .getMany();
- expect(rs).toEqual({
- results: [{ key: 'foo', value: 'bar', expireTime: '2025-01-12T13:00:00Z' }],
- nextCursor: 'third-page'
- });
- expect(apiClient).toHaveBeenCalledWith('/api/v1/query', expect.objectContaining({
- body: JSON.stringify({
- limit: 1,
- after: 'second-page',
- where: [{ property: 'key', condition: 'BEGINS_WITH', values: ['fo'] }],
- options: {
- metadataFields: [types_1.MetadataField.EXPIRE_TIME]
- }
- })
- }));
- });
it('should getOne out of a list of results', async () => {
const response = new Response(JSON.stringify({
data: [
{ key: 'foo', value: 'bar' },
@@ -698,30 +342,27 @@
expect(apiClient).toHaveBeenCalledWith('/api/v1/query', expect.objectContaining({
body: JSON.stringify({ limit: 1 })
}));
});
- it('should query entity correctly and pass partition with index and metadata fields', async () => {
- const response = new Response(JSON.stringify({ data: [{ key: 'foo', value: { name: 'Jane Doe' }, expireTime: '2025-01-12T13:00:00Z' }] }), {
+ it('should query entity correctly and pass partition with index', async () => {
+ const response = new Response(JSON.stringify({ data: [{ key: 'foo', value: { name: 'Jane Doe' } }] }), {
status: 200,
headers: { 'x-trace-id': traceId }
});
const { sut, apiClient } = prepare(response);
const rs = await sut
.entity('employees')
- .query({ metadataFields: [types_1.MetadataField.EXPIRE_TIME] })
+ .query()
.index('by-employmentyear', { partition: [2000] })
.getMany();
expect(rs).toEqual({
- results: [{ key: 'foo', value: { name: 'Jane Doe' }, expireTime: '2025-01-12T13:00:00Z' }]
+ results: [{ key: 'foo', value: { name: 'Jane Doe' } }]
});
expect(apiClient).toHaveBeenCalledWith('/api/v1/entity/query', expect.objectContaining({
body: JSON.stringify({
entityName: 'employees',
indexName: 'by-employmentyear',
- partition: [2000],
- options: {
- metadataFields: [types_1.MetadataField.EXPIRE_TIME]
- }
+ partition: [2000]
})
}));
});
it('should query entity correctly (without any filters)', async () => {
@@ -1016,26 +657,8 @@
delete: [{ key: 'bar' }]
})
}));
});
- it('should sumbit transaction correctly with TTL', async () => {
- const response = new Response(undefined, {
- status: 200,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- await sut
- .transact()
- .set('foo', 'bar', undefined, { ttl: { unit: 'SECONDS', value: 5 } })
- .delete('bar')
- .execute();
- expect(apiClient).toHaveBeenCalledWith('/api/v1/transaction', expect.objectContaining({
- body: JSON.stringify({
- set: [{ key: 'foo', value: 'bar', options: { ttl: { unit: 'SECONDS', value: 5 } } }],
- delete: [{ key: 'bar' }]
- })
- }));
- });
it('should batchSet correctly with mixed entity and non-entity items', async () => {
const response = new Response(JSON.stringify({
successfulKeys: [{ key: 'foo', entityName: 'employees' }, { key: 'bar' }],
failedKeys: [
@@ -1069,45 +692,8 @@
expect(apiClient).toHaveBeenCalledWith('/api/v1/batch/set', expect.objectContaining({
body: JSON.stringify(items)
}));
});
- it('should batchSet correctly with mixed entity and non-entity items with TTL', async () => {
- const response = new Response(JSON.stringify({
- successfulKeys: [{ key: 'foo', entityName: 'employees' }, { key: 'bar' }, { key: 'xxx' }],
- failedKeys: [
- {
- key: 'baz',
- entityName: 'departments',
- error: { code: 'VALIDATION_ERROR', message: 'Invalid value' }
- }
- ]
- }), {
- status: 200,
- headers: { 'x-trace-id': traceId }
- });
- const { sut, apiClient } = prepare(response);
- const ttl = { value: 10, unit: 'MINUTES' };
- const items = [
- { key: 'foo', value: 'John Doe', entityName: 'employees', options: { ttl } },
- { key: 'bar', value: 'simple value', options: { ttl } },
- { key: 'baz', value: 'IT Department', entityName: 'departments', options: { ttl } },
- { key: 'xxx', value: 'yyy', options: { ttl } }
- ];
- const rs = await sut.batchSet(items);
- expect(rs).toEqual({
- successfulKeys: [{ key: 'foo', entityName: 'employees' }, { key: 'bar' }, { key: 'xxx' }],
- failedKeys: [
- {
- key: 'baz',
- entityName: 'departments',
- error: { code: 'VALIDATION_ERROR', message: 'Invalid value' }
- }
- ]
- });
- expect(apiClient).toHaveBeenCalledWith('/api/v1/batch/set', expect.objectContaining({
- body: JSON.stringify(items)
- }));
- });
it('should handle batchSet with all successful keys', async () => {
const response = new Response(JSON.stringify({
successfulKeys: [{ key: 'foo' }, { key: 'bar' }],
failedKeys: [] Index: package/out/kvs.js
===================================================================
--- package/out/kvs.js
+++ package/out/kvs.js
@@ -11,25 +11,25 @@
}
get(key, options) {
return this.storageApi.get({ key, options });
}
- set(key, value, options) {
- return this.storageApi.set({ key, value, options });
+ set(key, value) {
+ return this.storageApi.set({ key, value });
}
batchSet(items) {
return this.storageApi.batchSet(items);
}
delete(key) {
return this.storageApi.delete({ key });
}
- query(options) {
- return new query_1.KvsQueryBuilder(this.storageApi, options);
+ query() {
+ return new query_1.KvsQueryBuilder(this.storageApi);
}
getSecret(key, options) {
return this.storageApi.getSecret({ key, options });
}
- setSecret(key, value, options) {
- return this.storageApi.setSecret({ key, value, options });
+ setSecret(key, value) {
+ return this.storageApi.setSecret({ key, value });
}
deleteSecret(key) {
return this.storageApi.deleteSecret({ key });
} Index: package/out/query.js
===================================================================
--- package/out/query.js
+++ package/out/query.js
@@ -27,16 +27,12 @@
}
return undefined;
}
getMany() {
- const maybeOptions = {
- ...(this.options?.metadataFields ? { options: { metadataFields: this.options.metadataFields } } : {})
- };
return this.storageApi.query({
limit: this.options.limit,
after: this.options.cursor,
- where: this.options.where,
- ...maybeOptions
+ where: this.options.where
});
}
}
exports.KvsQueryBuilder = KvsQueryBuilder; Index: package/out/storage-api.js
===================================================================
--- package/out/storage-api.js
+++ package/out/storage-api.js
@@ -3,87 +3,78 @@
exports.StorageApi = void 0;
const types_1 = require("./interfaces/types");
const error_handling_1 = require("./utils/error-handling");
const errors_1 = require("./errors");
-var ResponseType;
-(function (ResponseType) {
- ResponseType[ResponseType["NONE"] = 0] = "NONE";
- ResponseType[ResponseType["EXPECTED"] = 1] = "EXPECTED";
- ResponseType[ResponseType["OPTIONAL"] = 2] = "OPTIONAL";
-})(ResponseType || (ResponseType = {}));
class StorageApi {
apiClient;
constructor(apiClient) {
this.apiClient = apiClient;
}
async get(body) {
const rs = await this.handleKeyNotFound(async () => {
- return this.request('/api/v1/get', body, ResponseType.EXPECTED);
+ return this.request('/api/v1/get', body, true);
});
- return this.processGetResponse(rs, body.options);
+ return this.processGetResponse(rs, body.options?.metadataFields);
}
async getSecret(body) {
const rs = await this.handleKeyNotFound(async () => {
- return this.request('/api/v1/secret/get', body, ResponseType.EXPECTED);
+ return this.request('/api/v1/secret/get', body, true);
});
- return this.processGetResponse(rs, body.options);
+ return this.processGetResponse(rs, body.options?.metadataFields);
}
async getEntity(body) {
const rs = await this.handleKeyNotFound(async () => {
- return this.request('/api/v1/entity/get', body, ResponseType.EXPECTED);
+ return this.request('/api/v1/entity/get', body, true);
});
- return this.processGetResponse(rs, body.options);
+ return this.processGetResponse(rs, body.options?.metadataFields);
}
async set(body) {
- const rs = await this.request('/api/v1/set', body, ResponseType.OPTIONAL);
- return rs && (0, types_1.isOverrideAndReturnOptions)(body.options) ? this.processSetResponse(rs, body.options) : undefined;
+ await this.request('/api/v1/set', body, false);
}
async setSecret(body) {
- const rs = await this.request('/api/v1/secret/set', body, ResponseType.OPTIONAL);
- return rs && (0, types_1.isOverrideAndReturnOptions)(body.options) ? this.processSetResponse(rs, body.options) : undefined;
+ await this.request('/api/v1/secret/set', body, false);
}
async setEntity(body) {
- const rs = await this.request('/api/v1/entity/set', body, ResponseType.OPTIONAL);
- return rs && (0, types_1.isOverrideAndReturnOptions)(body.options) ? this.processSetResponse(rs, body.options) : undefined;
+ await this.request('/api/v1/entity/set', body, false);
}
async delete(body) {
await this.handleKeyNotFound(async () => {
- return this.request('/api/v1/delete', body, ResponseType.NONE);
+ return this.request('/api/v1/delete', body, false);
});
}
async deleteSecret(body) {
await this.handleKeyNotFound(async () => {
- return this.request('/api/v1/secret/delete', body, ResponseType.NONE);
+ return this.request('/api/v1/secret/delete', body, false);
});
}
async deleteEntity(body) {
await this.handleKeyNotFound(async () => {
- return this.request('/api/v1/entity/delete', body, ResponseType.NONE);
+ return this.request('/api/v1/entity/delete', body, false);
});
}
async query(body) {
- const rs = await this.request('/api/v1/query', body, ResponseType.EXPECTED);
+ const rs = await this.request('/api/v1/query', body, true);
return {
results: rs.data,
nextCursor: rs.cursor
};
}
async queryEntity(body) {
- const rs = await this.request('/api/v1/entity/query', body, ResponseType.EXPECTED);
+ const rs = await this.request('/api/v1/entity/query', body, true);
return {
results: rs.data,
nextCursor: rs.cursor
};
}
async batchSet(body) {
- const rs = await this.request('/api/v1/batch/set', body, ResponseType.EXPECTED);
+ const rs = await this.request('/api/v1/batch/set', body, true);
return {
successfulKeys: rs.successfulKeys,
failedKeys: rs.failedKeys
};
}
async transact(transactionRequest) {
- await this.request('/api/v1/transaction', transactionRequest, ResponseType.NONE);
+ await this.request('/api/v1/transaction', transactionRequest, false);
}
async handleKeyNotFound(fn) {
try {
return await fn();
@@ -94,9 +85,9 @@
}
throw e;
}
}
- async request(path, body, responseType) {
+ async request(path, body, isResponseExpected) {
const requestBody = {
method: 'POST',
body: JSON.stringify(body),
headers: {
@@ -104,53 +95,34 @@
}
};
const response = await this.apiClient(path, requestBody);
await (0, error_handling_1.checkResponseError)(response);
- if (responseType === ResponseType.NONE) {
- return;
+ if (!isResponseExpected) {
+ return {};
}
const responseText = await response.text();
- if (responseType === ResponseType.OPTIONAL && !responseText) {
- return undefined;
- }
try {
return JSON.parse(responseText);
}
catch (error) {
throw new errors_1.ForgeKvsError(`Unexpected error. Response was not valid JSON: ${responseText}`);
}
}
- processGetResponse(response, options) {
- if (response && options) {
- const maybeCreatedAt = options.metadataFields?.includes(types_1.MetadataField.CREATED_AT)
+ processGetResponse(response, requestedMetadataFields) {
+ if (response && requestedMetadataFields?.length) {
+ const maybeCreatedAt = requestedMetadataFields.includes(types_1.MetadataField.CREATED_AT)
? { createdAt: response.createdAt }
: {};
- const maybeUpdatedAt = options.metadataFields?.includes(types_1.MetadataField.UPDATED_AT)
+ const maybeUpdatedAt = requestedMetadataFields.includes(types_1.MetadataField.UPDATED_AT)
? { updatedAt: response.updatedAt }
: {};
- const maybeExpireTime = options.metadataFields?.includes(types_1.MetadataField.EXPIRE_TIME)
- ? { expireTime: response.expireTime }
- : {};
return {
key: response.key,
value: response.value,
...maybeCreatedAt,
- ...maybeUpdatedAt,
- ...maybeExpireTime
+ ...maybeUpdatedAt
};
}
return response?.value;
}
- processSetResponse(response, options) {
- if (!response) {
- return undefined;
- }
- return {
- key: response.key,
- value: response.value,
- ...(options.returnMetadataFields?.includes(types_1.MetadataField.CREATED_AT) && { createdAt: response.createdAt }),
- ...(options.returnMetadataFields?.includes(types_1.MetadataField.UPDATED_AT) && { updatedAt: response.updatedAt }),
- ...(options.returnMetadataFields?.includes(types_1.MetadataField.EXPIRE_TIME) && { expireTime: response.expireTime })
- };
- }
}
exports.StorageApi = StorageApi; Index: package/out/transaction-api.js
===================================================================
--- package/out/transaction-api.js
+++ package/out/transaction-api.js
@@ -12,13 +12,12 @@
this.sets = sets;
this.deletes = deletes;
this.checks = checks;
}
- set(key, value, entity, options) {
+ set(key, value, entity) {
const transactSet = {
key,
- value,
- options
+ value
};
if (entity) {
transactSet.entity = {
entityName: entity.entityName, Index: package/out/utils/transaction-request-builder.js
===================================================================
--- package/out/utils/transaction-request-builder.js
+++ package/out/utils/transaction-request-builder.js
@@ -13,17 +13,16 @@
[filter.operator()]: filter.filters()
};
}
const buildRequestSet = (setOperation) => {
- const { key, value, entity, options } = setOperation;
+ const { key, value, entity } = setOperation;
const entityName = entity?.entityName;
const conditions = buildConditionsRequest(entity?.conditions);
return {
key,
value,
entityName,
- conditions,
- options
+ conditions
};
};
exports.buildRequestSet = buildRequestSet;
const buildRequestDeletes = (deleteOperation) => { Index: package/out/interfaces/types.js
===================================================================
--- package/out/interfaces/types.js
+++ package/out/interfaces/types.js
@@ -1,17 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.Sort = exports.isOverrideAndReturnOptions = exports.MetadataField = void 0;
+exports.Sort = exports.MetadataField = void 0;
var MetadataField;
(function (MetadataField) {
MetadataField["CREATED_AT"] = "CREATED_AT";
MetadataField["UPDATED_AT"] = "UPDATED_AT";
- MetadataField["EXPIRE_TIME"] = "EXPIRE_TIME";
})(MetadataField = exports.MetadataField || (exports.MetadataField = {}));
-function isOverrideAndReturnOptions(options) {
- return options !== undefined && 'returnValue' in options;
-}
-exports.isOverrideAndReturnOptions = isOverrideAndReturnOptions;
var Sort;
(function (Sort) {
Sort["ASC"] = "ASC";
Sort["DESC"] = "DESC"; Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
{
"name": "@forge/kvs",
- "version": "1.2.7-next.0-experimental-d997307",
+ "version": "1.2.7-next.0-experimental-44a932f",
"description": "Forge Key Value Store SDK",
"author": "Atlassian",
"license": "SEE LICENSE IN LICENSE.txt",
"main": "out/index.js",
@@ -18,9 +18,9 @@
"@atlassian/xen-test-util": "^4.2.0",
"@types/node": "20.19.1"
},
"dependencies": {
- "@forge/api": "^7.0.1-next.0-experimental-d997307"
+ "@forge/api": "^7.0.1-next.0-experimental-44a932f"
},
"publishConfig": {
"registry": "https://packages.atlassian.com/api/npm/npm-public/"
} Index: package/out/entity-query.d.ts.map
===================================================================
--- package/out/entity-query.d.ts.map
+++ package/out/entity-query.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"entity-query.d.ts","sourceRoot":"","sources":["../src/entity-query.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAElB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,YAAY,EACZ,QAAQ,EACT,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,oBAAoB,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IAEhE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAFR,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,4CAAgC;IAG3D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;CAU3E;AA4DD,8BAAsB,UAAU,CAAC,CAAC;IACpB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAA3B,KAAK,GAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAM;IAExD,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAI/B,QAAQ;CAGhB;AAED,qBAAa,aAAa,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IACtE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAIxE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC;CAGvE;AAED,cAAM,gBAAgB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACrE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,IAAI;CAI1D;AAED,cAAM,eAAe,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IACnE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,IAAI;CAIzD"}
\ No newline at end of file
+{"version":3,"file":"entity-query.d.ts","sourceRoot":"","sources":["../src/entity-query.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAGnB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,YAAY,EACZ,QAAQ,EACT,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,oBAAoB,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IAEhE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU;IAGzC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;CAQ3E;AAwDD,8BAAsB,UAAU,CAAC,CAAC;IACpB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAA3B,KAAK,GAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAM;IAExD,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAI/B,QAAQ;CAGhB;AAED,qBAAa,aAAa,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IACtE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAIxE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC;CAGvE;AAED,cAAM,gBAAgB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACrE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,IAAI;CAI1D;AAED,cAAM,eAAe,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IACnE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,mBAAmB,GAAG,IAAI;CAIzD"}
\ No newline at end of file Index: package/out/interfaces/entity-query.d.ts.map
===================================================================
--- package/out/interfaces/entity-query.d.ts.map
+++ package/out/interfaces/entity-query.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"entity-query.d.ts","sourceRoot":"","sources":["../../src/interfaces/entity-query.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"entity-query.d.ts","sourceRoot":"","sources":["../../src/interfaces/entity-query.ts"],"names":[],"mappings":"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"}
\ No newline at end of file Index: package/out/entity.d.ts.map
===================================================================
--- package/out/entity.d.ts.map
+++ package/out/entity.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../src/entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,SAAS,EAEV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU;IAGzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IASxE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACpE,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAU1G,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAGrF"}
\ No newline at end of file
+{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../src/entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU;IAGzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IASxE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC;CAG9B"}
\ No newline at end of file Index: package/out/interfaces/kvs-api.d.ts.map
===================================================================
--- package/out/interfaces/kvs-api.d.ts.map
+++ package/out/interfaces/kvs-api.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"kvs-api.d.ts","sourceRoot":"","sources":["../../src/interfaces/kvs-api.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"kvs-api.d.ts","sourceRoot":"","sources":["../../src/interfaces/kvs-api.ts"],"names":[],"mappings":"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"}
\ No newline at end of file Index: package/out/interfaces/kvs.d.ts.map
===================================================================
--- package/out/interfaces/kvs.d.ts.map
+++ package/out/interfaces/kvs.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"kvs.d.ts","sourceRoot":"","sources":["../../src/interfaces/kvs.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"kvs.d.ts","sourceRoot":"","sources":["../../src/interfaces/kvs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,GAAG;IAClB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC5C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC5E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAChG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,YAAY,CAAC;IAEtB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAClD,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAClF,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAE5C,QAAQ,IAAI,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACzE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC/B"}
\ No newline at end of file Index: package/out/kvs.d.ts.map
===================================================================
--- package/out/kvs.d.ts.map
+++ package/out/kvs.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"kvs.d.ts","sourceRoot":"","sources":["../src/kvs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,SAAS,EAEV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,OAAQ,YAAW,GAAG;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEnD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAI3E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAClE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACvE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAK7G,QAAQ,CAAC,CAAC,EACR,KAAK,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC,GACjF,OAAO,CAAC,WAAW,CAAC;IAIvB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,GAAG,YAAY;IAInE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAKjF,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IACxE,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7E,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAKnH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAI3C,QAAQ,IAAI,kBAAkB;CAG/B"}
\ No newline at end of file
+{"version":3,"file":"kvs.d.ts","sourceRoot":"","sources":["../src/kvs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,OAAQ,YAAW,GAAG;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEnD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAK3E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/F,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,YAAY;IAIrB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAKjF,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAI3C,QAAQ,IAAI,kBAAkB;CAG/B"}
\ No newline at end of file Index: package/out/interfaces/query.d.ts.map
===================================================================
--- package/out/interfaces/query.d.ts.map
+++ package/out/interfaces/query.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/interfaces/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE9E,oBAAY,WAAW,GAAG,gBAAgB,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,CAAC;IAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,GAAG,WAAW,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC"}
\ No newline at end of file
+{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/interfaces/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE/D,oBAAY,WAAW,GAAG,gBAAgB,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,CAAC;IAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,GAAG,WAAW,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
\ No newline at end of file Index: package/out/query.d.ts.map
===================================================================
--- package/out/query.d.ts.map
+++ package/out/query.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,eAAgB,YAAW,YAAY;IAEhD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;gBADP,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,YAAiB;IAGpC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI;IAKpD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpB,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAQjD,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAWrC"}
\ No newline at end of file
+{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,eAAgB,YAAW,YAAY;IAEhD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;gBADP,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,YAAiB;IAGpC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI;IAKpD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpB,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAQjD,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAOrC"}
\ No newline at end of file Index: package/out/storage-api.d.ts.map
===================================================================
--- package/out/storage-api.d.ts.map
+++ package/out/storage-api.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"storage-api.d.ts","sourceRoot":"","sources":["../src/storage-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EAGX,SAAS,EAGV,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EAEf,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAEhB,kBAAkB,EAElB,gBAAgB,EAChB,UAAU,EAEV,YAAY,EAEZ,mBAAmB,EACnB,gBAAgB,EAEhB,gBAAgB,EAChB,UAAU,EAEV,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAQ9B,qBAAa,UAAU;IACT,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,WAAW;IAEpC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO/D,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO3E,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO3E,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAKrE,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAKjF,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAKjF,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQpD,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQhE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAI7D,iBAAiB;YAWjB,OAAO;IAiCrB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,kBAAkB;CAgB3B"}
\ No newline at end of file
+{"version":3,"file":"storage-api.d.ts","sourceRoot":"","sources":["../src/storage-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AAGvF,OAAO,EACL,eAAe,EAEf,aAAa,EAEb,mBAAmB,EAEnB,gBAAgB,EAEhB,kBAAkB,EAElB,gBAAgB,EAEhB,UAAU,EAEV,YAAY,EAEZ,mBAAmB,EAEnB,gBAAgB,EAEhB,gBAAgB,EAEhB,UAAU,EAEV,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,UAAU;IACT,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,WAAW;IAEpC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO/D,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO3E,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAO3E,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQpD,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQhE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3D,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAI7D,iBAAiB;YAWjB,OAAO;IA0BrB,OAAO,CAAC,kBAAkB;CAoB3B"}
\ No newline at end of file Index: package/out/transaction-api.d.ts.map
===================================================================
--- package/out/transaction-api.d.ts.map
+++ package/out/transaction-api.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"transaction-api.d.ts","sourceRoot":"","sources":["../src/transaction-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,qBAAa,sBAAuB,YAAW,kBAAkB;IAE7D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;IACtC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE;IAC5C,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE;gBAHzB,UAAU,EAAE,UAAU,EAC7B,IAAI,GAAE,WAAW,CAAC,OAAO,CAAC,EAAO,EACjC,OAAO,GAAE,cAAc,CAAC,OAAO,CAAC,EAAO,EACvC,MAAM,GAAE,aAAa,CAAC,OAAO,CAAC,EAAO;IAGjD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAmBvF,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;IAiB1D,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI;IAa9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAY/B"}
\ No newline at end of file
+{"version":3,"file":"transaction-api.d.ts","sourceRoot":"","sources":["../src/transaction-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAIlC,qBAAa,sBAAuB,YAAW,kBAAkB;IAE7D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;IACtC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE;IAC5C,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE;gBAHzB,UAAU,EAAE,UAAU,EAC7B,IAAI,GAAE,WAAW,CAAC,OAAO,CAAC,EAAO,EACjC,OAAO,GAAE,cAAc,CAAC,OAAO,CAAC,EAAO,EACvC,MAAM,GAAE,aAAa,CAAC,OAAO,CAAC,EAAO;IAGjD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;IAkBjE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;IAiB1D,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI;IAa9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAY/B"}
\ No newline at end of file Index: package/out/utils/transaction-request-builder.d.ts.map
===================================================================
--- package/out/utils/transaction-request-builder.d.ts.map
+++ package/out/utils/transaction-request-builder.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"transaction-request-builder.d.ts","sourceRoot":"","sources":["../../src/utils/transaction-request-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAoBvF,eAAO,MAAM,eAAe,oDAY3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,6CAA4C,aAU3E,CAAC;AAEF,eAAO,MAAM,kBAAkB,2CAA0C,YAUxE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"transaction-request-builder.d.ts","sourceRoot":"","sources":["../../src/utils/transaction-request-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAoBvF,eAAO,MAAM,eAAe,oDAW3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,6CAA4C,aAU3E,CAAC;AAEF,eAAO,MAAM,kBAAkB,2CAA0C,YAUxE,CAAC"}
\ No newline at end of file Index: package/out/interfaces/transaction.d.ts.map
===================================================================
--- package/out/interfaces/transaction.d.ts.map
+++ package/out/interfaces/transaction.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/interfaces/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAKD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC9B;AAKD,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;CACrC;AAKD,oBAAY,gBAAgB,CAAC,CAAC,IAAI;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAC;AAKF,oBAAY,wBAAwB,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG;IAClF,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC;AAKF,oBAAY,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;AAMnF,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACxF,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3D,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACjE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
\ No newline at end of file
+{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/interfaces/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC9B;AAKD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC9B;AAKD,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IAEZ,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;CACrC;AAKD,oBAAY,gBAAgB,CAAC,CAAC,IAAI;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAC;AAKF,oBAAY,wBAAwB,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG;IAClF,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC;AAKF,oBAAY,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;AAMnF,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3D,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACjE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
\ No newline at end of file Index: package/out/interfaces/types.d.ts.map
===================================================================
--- package/out/interfaces/types.d.ts.map
+++ package/out/interfaces/types.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interfaces/types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interfaces/types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file Index: package/out/entity-query.d.ts
===================================================================
--- package/out/entity-query.d.ts
+++ package/out/entity-query.d.ts
@@ -1,11 +1,10 @@
-import { EntityFilterClauses, EntityQueryOptions, AndFilter, EntityQueryBuilder, IndexQueryBuilder, Filter, FilterItem, IndexOptions, OrFilter } from './interfaces/entity-query';
+import { EntityFilterClauses, AndFilter, EntityQueryBuilder, IndexQueryBuilder, Filter, FilterItem, IndexOptions, OrFilter } from './interfaces/entity-query';
import { StorageApi } from './storage-api';
export declare class KvsIndexQueryBuilder<T> implements IndexQueryBuilder<T> {
private readonly entityName;
private readonly storageApi;
- private readonly options?;
- constructor(entityName: string, storageApi: StorageApi, options?: Partial<EntityQueryOptions<T>> | undefined);
+ constructor(entityName: string, storageApi: StorageApi);
index(name: string, indexOptions?: IndexOptions<T>): EntityQueryBuilder<T>;
}
export declare abstract class BaseFilter<T> {
protected readonly items: Array<FilterItem<T>>; Index: package/out/interfaces/entity-query.d.ts
===================================================================
--- package/out/interfaces/entity-query.d.ts
+++ package/out/interfaces/entity-query.d.ts
@@ -1,5 +1,5 @@
-import { BeginsWithClause, BetweenClause, ContainsClause, EqualToClause, ExistsClause, FilterOperator, GreaterThanClause, GreaterThanEqualToClause, LessThanClause, LessThanEqualToClause, ListResult, MetadataField, NotContainsClause, NotEqualToClause, NotExistsClause, Result, Sort, StringOrNumber } from './types';
+import { BeginsWithClause, BetweenClause, ContainsClause, EqualToClause, ExistsClause, FilterOperator, GreaterThanClause, GreaterThanEqualToClause, LessThanClause, LessThanEqualToClause, ListResult, NotContainsClause, NotEqualToClause, NotExistsClause, Result, Sort, StringOrNumber } from './types';
export declare type IndexOptions<T> = Pick<EntityQueryOptions<T>, 'partition'>;
export interface IndexQueryBuilder<T> {
index(name: string, indexOptions?: IndexOptions<T>): EntityQueryBuilder<T>;
}
@@ -36,7 +36,6 @@
filters?: Array<FilterItem<T>>;
filterOperator?: FilterOperator;
cursor?: string;
limit?: number;
- metadataFields?: MetadataField[];
}
//# sourceMappingURL=entity-query.d.ts.map
\ No newline at end of file Index: package/out/entity.d.ts
===================================================================
--- package/out/entity.d.ts
+++ package/out/entity.d.ts
@@ -1,17 +1,15 @@
-import { EntityQueryOptions, IndexQueryBuilder } from './interfaces/entity-query';
+import { IndexQueryBuilder } from './interfaces/entity-query';
import { KvsEntity } from './interfaces/kvs';
-import { GetOptions, GetResult, SetOptions, PolicySetOptions, OverrideAndReturnSetOptions, SetResult } from './interfaces/types';
+import { GetOptions, GetResult } from './interfaces/types';
import { StorageApi } from './storage-api';
export declare class EntityImpl<T> implements KvsEntity<T> {
private readonly entityName;
private readonly storageApi;
constructor(entityName: string, storageApi: StorageApi);
get(key: string): Promise<T | undefined>;
get(key: string, options: GetOptions): Promise<GetResult<T> | undefined>;
- set(key: string, value: T, options?: SetOptions): Promise<void>;
- set(key: string, value: T, options: PolicySetOptions): Promise<void>;
- set<U = T>(key: string, value: T, options: OverrideAndReturnSetOptions): Promise<SetResult<U> | undefined>;
+ set(key: string, value: T): Promise<void>;
delete(key: string): Promise<void>;
- query(options?: Pick<EntityQueryOptions<T>, 'metadataFields'>): IndexQueryBuilder<T>;
+ query(): IndexQueryBuilder<T>;
}
//# sourceMappingURL=entity.d.ts.map
\ No newline at end of file Index: package/out/interfaces/kvs-api.d.ts
===================================================================
--- package/out/interfaces/kvs-api.d.ts
+++ package/out/interfaces/kvs-api.d.ts
@@ -1,23 +1,21 @@
-import { ExtendedSetOptions, GetOptions, MetadataField, SetOptions } from './types';
+import { GetOptions } from './types';
declare type KeySchema = {
key: string;
};
declare type KeyValueSchema<T> = KeySchema & {
value: T;
createdAt?: number;
updatedAt?: number;
- expireTime?: string;
};
export declare type GetRequest = KeySchema & {
options?: GetOptions;
};
export declare type GetResponse<T> = KeyValueSchema<T>;
-export declare type SetRequest<T> = Pick<KeyValueSchema<T>, 'key' | 'value'> & {
- options?: ExtendedSetOptions;
-};
-export declare type SetResponse<T> = KeyValueSchema<T>;
+export declare type SetRequest<T> = KeyValueSchema<T>;
+export declare type SetResponse = void;
export declare type DeleteRequest = KeySchema;
+export declare type DeleteResponse = void;
declare type QueryWhere = {
condition: 'BEGINS_WITH';
property: 'key';
values: Array<unknown>;
@@ -25,11 +23,8 @@
export declare type QueryRequest = {
limit?: number;
after?: string;
where?: Array<QueryWhere>;
- options?: {
- metadataFields?: Array<MetadataField>;
- };
};
export declare type QueryResponse<T> = {
data: Array<KeyValueSchema<T>>;
cursor?: string;
@@ -37,30 +32,29 @@
export declare type SecretGetRequest = KeySchema & {
options?: GetOptions;
};
export declare type SecretGetResponse<T> = KeyValueSchema<T>;
-export declare type SecretSetRequest<T> = KeyValueSchema<T> & {
- options?: ExtendedSetOptions;
-};
+export declare type SecretSetRequest<T> = KeyValueSchema<T>;
+export declare type SecretSetResponse = void;
export declare type SecretDeleteRequest = KeySchema;
+export declare type SecretDeleteResponse = void;
declare type EntityKeySchema = {
entityName: string;
key: string;
};
declare type EntityKeyValueSchema<T> = EntityKeySchema & {
value: T;
createdAt?: number;
updatedAt?: number;
- expireTime?: string;
};
export declare type EntityGetRequest = EntityKeySchema & {
options?: GetOptions;
};
export declare type EntityGetResponse<T> = EntityKeyValueSchema<T>;
-export declare type EntitySetRequest<T> = EntityKeyValueSchema<T> & {
- options?: ExtendedSetOptions;
-};
+export declare type EntitySetRequest<T> = EntityKeyValueSchema<T>;
+export declare type EntitySetResponse = void;
export declare type EntityDeleteRequest = EntityKeySchema;
+export declare type EntityDeleteResponse = void;
export declare type EntityQueryFilter = {
condition: 'BEGINS_WITH' | 'BETWEEN' | 'CONTAINS' | 'EQUAL_TO' | 'EXISTS' | 'GREATER_THAN' | 'GREATER_THAN_EQUAL_TO' | 'LESS_THAN' | 'LESS_THAN_EQUAL_TO' | 'NOT_CONTAINS' | 'NOT_EQUAL_TO' | 'NOT_EXISTS';
property: string;
values: Array<unknown>;
@@ -80,9 +74,8 @@
sort?: 'ASC' | 'DESC';
partition?: Array<unknown>;
entityName: string;
indexName: string;
- metadataFields?: Array<MetadataField>;
};
export declare type EntityQueryResponse<T> = {
data: Array<KeyValueSchema<T>>;
cursor?: string;
@@ -92,9 +85,8 @@
key: string;
value: T;
entityName?: string;
conditions?: TransactionCondition;
- options?: SetOptions;
};
export declare type RequestDelete = {
key: string;
entityName?: string;
@@ -113,9 +105,8 @@
export declare type BatchSetItem<T> = {
entityName?: string;
key: string;
value: T;
- options?: SetOptions;
};
export declare type BatchSetRequest<T> = Array<BatchSetItem<T>>;
export declare type BatchSetResponse = {
successfulKeys: BatchItemSuccess[]; Index: package/out/interfaces/kvs.d.ts
===================================================================
--- package/out/interfaces/kvs.d.ts
+++ package/out/interfaces/kvs.d.ts
@@ -1,37 +1,30 @@
import { IndexQueryBuilder } from './entity-query';
import { QueryBuilder } from './query';
import { TransactionBuilder } from './transaction';
-import { GetOptions, GetResult, BatchResult, PolicySetOptions, OverrideAndReturnSetOptions, SetResult, SetOptions, QueryOptions } from './types';
+import { GetOptions, GetResult, BatchResult } from './types';
export interface Kvs {
get<T>(key: string): Promise<T | undefined>;
get<T>(key: string, options: GetOptions): Promise<GetResult<T> | undefined>;
- set<T>(key: string, value: T, options?: SetOptions): Promise<void>;
- set<T>(key: string, value: T, options: PolicySetOptions): Promise<void>;
- set<T, U = T>(key: string, value: T, options: OverrideAndReturnSetOptions): Promise<SetResult<U> | undefined>;
+ set<T>(key: string, value: T): Promise<void>;
batchSet<T>(items: Array<{
key: string;
value: T;
entityName?: string;
- options?: SetOptions;
}>): Promise<BatchResult>;
delete(key: string): Promise<void>;
- query(options?: QueryOptions): QueryBuilder;
+ query(): QueryBuilder;
getSecret<T>(key: string): Promise<T | undefined>;
getSecret<T>(key: string, options: GetOptions): Promise<GetResult<T> | undefined>;
- setSecret<T>(key: string, value: T, options?: SetOptions): Promise<void>;
- setSecret<T>(key: string, value: T, options: PolicySetOptions): Promise<void>;
- setSecret<T, U = T>(key: string, value: T, options: OverrideAndReturnSetOptions): Promise<SetResult<U> | undefined>;
+ setSecret<T>(key: string, value: T): Promise<void>;
deleteSecret(key: string): Promise<void>;
entity<T>(entityName: string): KvsEntity<T>;
transact(): TransactionBuilder;
}
export interface KvsEntity<T> {
get(key: string): Promise<T | undefined>;
get(key: string, options: GetOptions): Promise<GetResult<T> | undefined>;
- set(key: string, value: T, options?: SetOptions): Promise<void>;
- set(key: string, value: T, options: PolicySetOptions): Promise<void>;
- set<U = T>(key: string, value: T, options: OverrideAndReturnSetOptions): Promise<SetResult<U> | undefined>;
+ set(key: string, value: T): Promise<void>;
delete(key: string): Promise<void>;
- query(options?: QueryOptions): IndexQueryBuilder<T>;
+ query(): IndexQueryBuilder<T>;
}
//# sourceMappingURL=kvs.d.ts.map
\ No newline at end of file Index: package/out/kvs.d.ts
===================================================================
--- package/out/kvs.d.ts
+++ package/out/kvs.d.ts
@@ -1,30 +1,25 @@
import { KvsEntity, Kvs } from './interfaces/kvs';
-import { QueryBuilder, QueryOptions } from './interfaces/query';
+import { QueryBuilder } from './interfaces/query';
import { TransactionBuilder } from './interfaces/transaction';
-import { GetOptions, GetResult, BatchResult, SetOptions, PolicySetOptions, OverrideAndReturnSetOptions, SetResult } from './interfaces/types';
+import { GetOptions, GetResult, BatchResult } from './interfaces/types';
import { StorageApi } from './storage-api';
export declare class KvsImpl implements Kvs {
private readonly storageApi;
constructor(storageApi: StorageApi);
get<T>(key: string): Promise<T | undefined>;
get<T>(key: string, options: GetOptions): Promise<GetResult<T> | undefined>;
- set<T>(key: string, value: T, options?: SetOptions): Promise<void>;
- set<T>(key: string, value: T, options: PolicySetOptions): Promise<void>;
- set<T, U = T>(key: string, value: T, options: OverrideAndReturnSetOptions): Promise<SetResult<U> | undefined>;
+ set<T>(key: string, value: T): Promise<void>;
batchSet<T>(items: Array<{
key: string;
value: T;
entityName?: string;
- options?: SetOptions;
}>): Promise<BatchResult>;
delete(key: string): Promise<void>;
- query(options?: Pick<QueryOptions, 'metadataFields'>): QueryBuilder;
+ query(): QueryBuilder;
getSecret<T>(key: string): Promise<T | undefined>;
getSecret<T>(key: string, options: GetOptions): Promise<GetResult<T> | undefined>;
- setSecret<T>(key: string, value: T, options?: SetOptions): Promise<void>;
- setSecret<T>(key: string, value: T, options: PolicySetOptions): Promise<void>;
- setSecret<T, U = T>(key: string, value: T, options: OverrideAndReturnSetOptions): Promise<SetResult<U> | undefined>;
+ setSecret<T>(key: string, value: T): Promise<void>;
deleteSecret(key: string): Promise<void>;
entity<T>(entityName: string): KvsEntity<T>;
transact(): TransactionBuilder;
} Index: package/out/interfaces/query.d.ts
===================================================================
--- package/out/interfaces/query.d.ts
+++ package/out/interfaces/query.d.ts
@@ -1,5 +1,5 @@
-import { BeginsWithClause, ListResult, MetadataField, Result } from './types';
+import { BeginsWithClause, ListResult, Result } from './types';
export declare type WhereClause = BeginsWithClause;
export interface QueryBuilder {
where(property: 'key', condition: WhereClause): QueryBuilder;
cursor(cursor: string): QueryBuilder;
@@ -12,7 +12,6 @@
property: 'key';
} & WhereClause>;
cursor?: string;
limit?: number;
- metadataFields?: MetadataField[];
}
//# sourceMappingURL=query.d.ts.map
\ No newline at end of file Index: package/out/storage-api.d.ts
===================================================================
--- package/out/storage-api.d.ts
+++ package/out/storage-api.d.ts
@@ -1,16 +1,16 @@
import { FetchMethod } from '@forge/api';
-import { GetResult, ListResult, BatchResult, SetResult } from './interfaces/types';
+import { GetResult, ListResult, BatchResult } from './interfaces/types';
import { BatchSetRequest, DeleteRequest, EntityDeleteRequest, EntityGetRequest, EntityQueryRequest, EntitySetRequest, GetRequest, QueryRequest, SecretDeleteRequest, SecretGetRequest, SecretSetRequest, SetRequest, TransactionRequest } from './interfaces/kvs-api';
export declare class StorageApi {
private apiClient;
constructor(apiClient: FetchMethod);
get<T>(body: GetRequest): Promise<T | GetResult<T> | undefined>;
getSecret<T>(body: SecretGetRequest): Promise<T | GetResult<T> | undefined>;
getEntity<T>(body: EntityGetRequest): Promise<T | GetResult<T> | undefined>;
- set<T, U = T>(body: SetRequest<T>): Promise<SetResult<U> | undefined>;
- setSecret<T, U = T>(body: SecretSetRequest<T>): Promise<SetResult<U> | undefined>;
- setEntity<T, U = T>(body: EntitySetRequest<T>): Promise<SetResult<U> | undefined>;
+ set<T>(body: SetRequest<T>): Promise<void>;
+ setSecret<T>(body: SecretSetRequest<T>): Promise<void>;
+ setEntity<T>(body: EntitySetRequest<T>): Promise<void>;
delete(body: DeleteRequest): Promise<void>;
deleteSecret(body: SecretDeleteRequest): Promise<void>;
deleteEntity(body: EntityDeleteRequest): Promise<void>;
query<T>(body: QueryRequest): Promise<ListResult<T>>;
@@ -19,7 +19,6 @@
transact<T>(transactionRequest: TransactionRequest<T>): Promise<void>;
private handleKeyNotFound;
private request;
private processGetResponse;
- private processSetResponse;
}
//# sourceMappingURL=storage-api.d.ts.map
\ No newline at end of file Index: package/out/transaction-api.d.ts
===================================================================
--- package/out/transaction-api.d.ts
+++ package/out/transaction-api.d.ts
@@ -1,14 +1,13 @@
import { StorageApi } from './storage-api';
import { EntityConditions, EntityRequiredConditions, TransactCheck, TransactDelete, TransactionBuilder, TransactSet } from './interfaces/transaction';
-import { SetOptions } from './interfaces/types';
export declare class TransactionBuilderImpl implements TransactionBuilder {
private readonly storageApi;
protected sets: TransactSet<unknown>[];
protected deletes: TransactDelete<unknown>[];
protected checks: TransactCheck<unknown>[];
constructor(storageApi: StorageApi, sets?: TransactSet<unknown>[], deletes?: TransactDelete<unknown>[], checks?: TransactCheck<unknown>[]);
- set<T>(key: string, value: T, entity?: EntityConditions<T>, options?: SetOptions): this;
+ set<T>(key: string, value: T, entity?: EntityConditions<T>): this;
delete<T>(key: string, entity?: EntityConditions<T>): this;
check<T>(key: string, { entityName, conditions }: EntityRequiredConditions<T>): this;
execute(): Promise<void>;
} Index: package/out/interfaces/transaction.d.ts
===================================================================
--- package/out/interfaces/transaction.d.ts
+++ package/out/interfaces/transaction.d.ts
@@ -1,11 +1,9 @@
import { BaseFilter } from '../entity-query';
-import { SetOptions } from './types';
export interface TransactSet<T> {
key: string;
value: T;
entity?: EntityConditions<T>;
- options?: SetOptions;
}
export interface TransactDelete<T> {
key: string;
entity?: EntityConditions<T>;
@@ -22,9 +20,9 @@
conditions: BaseFilter<T>;
};
export declare type StorageValue = string | number | boolean | Record<string, any> | any[];
export interface TransactionBuilder {
- set<T>(key: string, value: T, entity?: EntityConditions<T>, options?: SetOptions): this;
+ set<T>(key: string, value: T, entity?: EntityConditions<T>): this;
delete<T>(key: string, entity?: EntityConditions<T>): this;
check<T>(key: string, entity: EntityRequiredConditions<T>): this;
execute(): Promise<void>;
} Index: package/out/interfaces/types.d.ts
===================================================================
--- package/out/interfaces/types.d.ts
+++ package/out/interfaces/types.d.ts
@@ -1,51 +1,20 @@
export declare enum MetadataField {
CREATED_AT = "CREATED_AT",
- UPDATED_AT = "UPDATED_AT",
- EXPIRE_TIME = "EXPIRE_TIME"
+ UPDATED_AT = "UPDATED_AT"
}
export interface GetOptions {
metadataFields?: MetadataField[];
}
-export interface QueryOptions {
- metadataFields?: MetadataField[];
-}
-export declare type TtlUnit = 'SECONDS' | 'MINUTES' | 'HOURS' | 'DAYS';
-export declare type Ttl = {
- value: number;
- unit: TtlUnit;
-};
-export interface SetOptions {
- ttl?: Ttl;
-}
export interface GetResult<T> {
key: string;
value: T;
createdAt?: number;
updatedAt?: number;
- expireTime?: string;
}
-export interface PolicySetOptions extends SetOptions {
- keyPolicy: 'OVERRIDE' | 'FAIL_IF_EXISTS';
-}
-export interface OverrideAndReturnSetOptions extends SetOptions {
- keyPolicy: 'OVERRIDE';
- returnValue: 'PREVIOUS' | 'LATEST';
- returnMetadataFields?: MetadataField[];
-}
-export declare function isOverrideAndReturnOptions(options?: ExtendedSetOptions): options is OverrideAndReturnSetOptions;
-export declare type ExtendedSetOptions = PolicySetOptions | OverrideAndReturnSetOptions;
-export interface SetResult<T> {
- key: string;
- value: T;
- createdAt?: number;
- updatedAt?: number;
- expireTime?: string;
-}
export interface Result<T> {
key: string;
value: T;
- expireTime?: string;
}
export interface ListResult<T> {
results: Result<T>[];
nextCursor?: string;