@boostercloud/framework-provider-azure 0.26.14 → 0.28.0

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.
@@ -1,11 +1,11 @@
1
1
  export declare const eventsStoreAttributes: {
2
- readonly partitionKey: 'entityTypeName_entityID_kind'
3
- readonly sortKey: 'createdAt'
4
- }
2
+ readonly partitionKey: "entityTypeName_entityID_kind";
3
+ readonly sortKey: "createdAt";
4
+ };
5
5
  export declare const environmentVarNames: {
6
- readonly restAPIURL: 'BOOSTER_REST_API_URL'
7
- readonly websocketAPIURL: 'BOOSTER_WEBSOCKET_API_URL'
8
- readonly cosmosDbConnectionString: 'COSMOSDB_CONNECTION_STRING'
9
- }
10
- export declare const AZURE_CONFLICT_ERROR_CODE = 409
11
- export declare const AZURE_PRECONDITION_FAILED_ERROR = 412
6
+ readonly restAPIURL: "BOOSTER_REST_API_URL";
7
+ readonly websocketAPIURL: "BOOSTER_WEBSOCKET_API_URL";
8
+ readonly cosmosDbConnectionString: "COSMOSDB_CONNECTION_STRING";
9
+ };
10
+ export declare const AZURE_CONFLICT_ERROR_CODE = 409;
11
+ export declare const AZURE_PRECONDITION_FAILED_ERROR = 412;
@@ -1,13 +1,3 @@
1
- import { CosmosClient } from '@azure/cosmos'
2
- import { BoosterConfig, FilterFor, Logger, ReadModelListResult, SortFor } from '@boostercloud/framework-types'
3
- export declare function search(
4
- cosmosDb: CosmosClient,
5
- config: BoosterConfig,
6
- logger: Logger,
7
- containerName: string,
8
- filters: FilterFor<unknown>,
9
- limit?: number | undefined,
10
- afterCursor?: Record<string, string> | undefined,
11
- paginatedVersion?: boolean,
12
- order?: SortFor<unknown>
13
- ): Promise<Array<any> | ReadModelListResult<any>>
1
+ import { CosmosClient } from '@azure/cosmos';
2
+ import { BoosterConfig, FilterFor, Logger, ReadModelListResult, SortFor } from '@boostercloud/framework-types';
3
+ export declare function search(cosmosDb: CosmosClient, config: BoosterConfig, logger: Logger, containerName: string, filters: FilterFor<unknown>, limit?: number | undefined, afterCursor?: Record<string, string> | undefined, paginatedVersion?: boolean, order?: SortFor<unknown>): Promise<Array<any> | ReadModelListResult<any>>;
@@ -81,6 +81,9 @@ function buildOperation(propName, filter = {}, usedPlaceholders, nested) {
81
81
  case 'includes': {
82
82
  return `ARRAY_CONTAINS(${propName}, ${holder(index)}, true)`;
83
83
  }
84
+ case 'isDefined': {
85
+ return value ? `IS_DEFINED(${propName})` : `NOT IS_DEFINED(${propName})`;
86
+ }
84
87
  default:
85
88
  if (typeof value === 'object') {
86
89
  return buildOperation(operation, value, usedPlaceholders, propName);
@@ -137,10 +140,10 @@ function buildAttributeValue(propName, filter = {}, usedPlaceholders) {
137
140
  });
138
141
  });
139
142
  }
140
- else if (typeof value === 'object' && key !== 'includes') {
143
+ else if (typeof value === 'object' && key !== 'includes' && value !== null) {
141
144
  attributeValues = [...attributeValues, ...buildExpressionAttributeValues({ [key]: value }, usedPlaceholders)];
142
145
  }
143
- else {
146
+ else if (key !== 'isDefined') {
144
147
  attributeValues.push({
145
148
  name: holder(index),
146
149
  value: value,
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { HasInfrastructure, ProviderLibrary, RocketDescriptor } from '@boostercloud/framework-types'
2
- export declare function loadInfrastructurePackage(packageName: string): HasInfrastructure
3
- export declare const Provider: (rockets?: RocketDescriptor[] | undefined) => ProviderLibrary
4
- export * from './constants'
1
+ import { HasInfrastructure, ProviderLibrary, RocketDescriptor } from '@boostercloud/framework-types';
2
+ export declare function loadInfrastructurePackage(packageName: string): HasInfrastructure;
3
+ export declare const Provider: (rockets?: RocketDescriptor[] | undefined) => ProviderLibrary;
4
+ export * from './constants';
package/dist/index.js CHANGED
@@ -84,4 +84,4 @@ const Provider = (rockets) => ({
84
84
  });
85
85
  exports.Provider = Provider;
86
86
  function notImplemented() { }
87
- tslib_1.__exportStar(require("./constants"), exports);
87
+ (0, tslib_1.__exportStar)(require("./constants"), exports);
@@ -1,13 +1,13 @@
1
- import { Cookie } from '@azure/functions'
1
+ import { Cookie } from '@azure/functions';
2
2
  /**
3
3
  * See https://docs.microsoft.com/es-es/azure/azure-functions/functions-reference-node#response-object
4
4
  */
5
5
  export interface ContextResponse {
6
- body: string
7
- headers: object
8
- isRaw?: boolean
9
- status: number
10
- cookies?: Cookie[]
6
+ body: string;
7
+ headers: object;
8
+ isRaw?: boolean;
9
+ status: number;
10
+ cookies?: Cookie[];
11
11
  }
12
- export declare function requestSucceeded(body?: any): Promise<ContextResponse>
13
- export declare function requestFailed(error: Error): Promise<ContextResponse>
12
+ export declare function requestSucceeded(body?: any): Promise<ContextResponse>;
13
+ export declare function requestFailed(error: Error): Promise<ContextResponse>;
@@ -15,7 +15,7 @@ async function requestSucceeded(body) {
15
15
  }
16
16
  exports.requestSucceeded = requestSucceeded;
17
17
  async function requestFailed(error) {
18
- const status = framework_types_1.httpStatusCodeFor(error);
18
+ const status = (0, framework_types_1.httpStatusCodeFor)(error);
19
19
  return {
20
20
  headers: {
21
21
  'Access-Control-Allow-Origin': '*',
@@ -24,7 +24,7 @@ async function requestFailed(error) {
24
24
  status,
25
25
  body: JSON.stringify({
26
26
  status,
27
- title: framework_types_1.toClassTitle(error),
27
+ title: (0, framework_types_1.toClassTitle)(error),
28
28
  reason: error.message,
29
29
  }),
30
30
  };
@@ -1,26 +1,8 @@
1
- import { EventEnvelope } from '@boostercloud/framework-types'
2
- import { CosmosClient } from '@azure/cosmos'
3
- import { BoosterConfig, Logger, UUID } from '@boostercloud/framework-types'
4
- import { Context } from '@azure/functions'
5
- export declare function rawEventsToEnvelopes(context: Context): Array<EventEnvelope>
6
- export declare function readEntityEventsSince(
7
- cosmosDb: CosmosClient,
8
- config: BoosterConfig,
9
- logger: Logger,
10
- entityTypeName: string,
11
- entityID: UUID,
12
- since?: string
13
- ): Promise<Array<EventEnvelope>>
14
- export declare function readEntityLatestSnapshot(
15
- cosmosDb: CosmosClient,
16
- config: BoosterConfig,
17
- logger: Logger,
18
- entityTypeName: string,
19
- entityID: UUID
20
- ): Promise<EventEnvelope | null>
21
- export declare function storeEvents(
22
- cosmosDb: CosmosClient,
23
- eventEnvelopes: Array<EventEnvelope>,
24
- config: BoosterConfig,
25
- logger: Logger
26
- ): Promise<void>
1
+ import { EventEnvelope } from '@boostercloud/framework-types';
2
+ import { CosmosClient } from '@azure/cosmos';
3
+ import { BoosterConfig, Logger, UUID } from '@boostercloud/framework-types';
4
+ import { Context } from '@azure/functions';
5
+ export declare function rawEventsToEnvelopes(context: Context): Array<EventEnvelope>;
6
+ export declare function readEntityEventsSince(cosmosDb: CosmosClient, config: BoosterConfig, logger: Logger, entityTypeName: string, entityID: UUID, since?: string): Promise<Array<EventEnvelope>>;
7
+ export declare function readEntityLatestSnapshot(cosmosDb: CosmosClient, config: BoosterConfig, logger: Logger, entityTypeName: string, entityID: UUID): Promise<EventEnvelope | null>;
8
+ export declare function storeEvents(cosmosDb: CosmosClient, eventEnvelopes: Array<EventEnvelope>, config: BoosterConfig, logger: Logger): Promise<void>;
@@ -17,7 +17,7 @@ async function readEntityEventsSince(cosmosDb, config, logger, entityTypeName, e
17
17
  parameters: [
18
18
  {
19
19
  name: '@partitionKey',
20
- value: partition_keys_1.partitionKeyForEvent(entityTypeName, entityID),
20
+ value: (0, partition_keys_1.partitionKeyForEvent)(entityTypeName, entityID),
21
21
  },
22
22
  {
23
23
  name: '@fromTime',
@@ -43,7 +43,7 @@ async function readEntityLatestSnapshot(cosmosDb, config, logger, entityTypeName
43
43
  parameters: [
44
44
  {
45
45
  name: '@partitionKey',
46
- value: partition_keys_1.partitionKeyForEvent(entityTypeName, entityID, 'snapshot'),
46
+ value: (0, partition_keys_1.partitionKeyForEvent)(entityTypeName, entityID, 'snapshot'),
47
47
  },
48
48
  ],
49
49
  })
@@ -67,7 +67,7 @@ async function storeEvents(cosmosDb, eventEnvelopes, config, logger) {
67
67
  .container(config.resourceNames.eventsStore)
68
68
  .items.create({
69
69
  ...eventEnvelope,
70
- [constants_1.eventsStoreAttributes.partitionKey]: partition_keys_1.partitionKeyForEvent(eventEnvelope.entityTypeName, eventEnvelope.entityID, eventEnvelope.kind),
70
+ [constants_1.eventsStoreAttributes.partitionKey]: (0, partition_keys_1.partitionKeyForEvent)(eventEnvelope.entityTypeName, eventEnvelope.entityID, eventEnvelope.kind),
71
71
  [constants_1.eventsStoreAttributes.sortKey]: new Date().toISOString(),
72
72
  });
73
73
  }
@@ -1,8 +1,3 @@
1
- import { BoosterConfig, EventSearchParameters, EventSearchResponse, Logger } from '@boostercloud/framework-types'
2
- import { CosmosClient } from '@azure/cosmos'
3
- export declare function searchEvents(
4
- cosmosDb: CosmosClient,
5
- config: BoosterConfig,
6
- logger: Logger,
7
- parameters: EventSearchParameters
8
- ): Promise<Array<EventSearchResponse>>
1
+ import { BoosterConfig, EventSearchParameters, EventSearchResponse, Logger } from '@boostercloud/framework-types';
2
+ import { CosmosClient } from '@azure/cosmos';
3
+ export declare function searchEvents(cosmosDb: CosmosClient, config: BoosterConfig, logger: Logger, parameters: EventSearchParameters): Promise<Array<EventSearchResponse>>;
@@ -6,13 +6,13 @@ const events_searcher_builder_1 = require("./events-searcher-builder");
6
6
  async function searchEvents(cosmosDb, config, logger, parameters) {
7
7
  logger.debug('Initiating an events search. Filters: ', parameters);
8
8
  const eventStore = config.resourceNames.eventsStore;
9
- const timeFilterQuery = events_searcher_builder_1.buildFiltersForByTime(parameters.from, parameters.to);
10
- const eventFilterQuery = events_searcher_builder_1.buildFiltersForByFilters(parameters);
9
+ const timeFilterQuery = (0, events_searcher_builder_1.buildFiltersForByTime)(parameters.from, parameters.to);
10
+ const eventFilterQuery = (0, events_searcher_builder_1.buildFiltersForByFilters)(parameters);
11
11
  const filterQuery = { ...eventFilterQuery, ...timeFilterQuery, kind: { eq: 'event' } };
12
- const result = (await query_helper_1.search(cosmosDb, config, logger, eventStore, filterQuery, parameters.limit, undefined, undefined, {
12
+ const result = (await (0, query_helper_1.search)(cosmosDb, config, logger, eventStore, filterQuery, parameters.limit, undefined, undefined, {
13
13
  createdAt: 'DESC',
14
14
  }));
15
- const eventEnvelopes = events_searcher_builder_1.resultToEventSearchResponse(result);
15
+ const eventEnvelopes = (0, events_searcher_builder_1.resultToEventSearchResponse)(result);
16
16
  logger.debug('Events search result: ', eventEnvelopes);
17
17
  return eventEnvelopes;
18
18
  }
@@ -1,18 +1,11 @@
1
- import {
2
- EventParametersFilterByEntity,
3
- EventParametersFilterByType,
4
- EventSearchResponse,
5
- FilterFor,
6
- } from '@boostercloud/framework-types'
1
+ import { EventParametersFilterByEntity, EventParametersFilterByType, EventSearchResponse, FilterFor } from '@boostercloud/framework-types';
7
2
  interface QueryFields {
8
- createdAt: string
9
- entityTypeName_entityID_kind: string
10
- entityTypeName: string
11
- typeName: string
3
+ createdAt: string;
4
+ entityTypeName_entityID_kind: string;
5
+ entityTypeName: string;
6
+ typeName: string;
12
7
  }
13
- export declare function buildFiltersForByTime(fromValue?: string, toValue?: string): FilterFor<QueryFields>
14
- export declare function buildFiltersForByFilters(
15
- parameters: EventParametersFilterByEntity | EventParametersFilterByType
16
- ): FilterFor<QueryFields>
17
- export declare function resultToEventSearchResponse(result: any[]): Array<EventSearchResponse>
18
- export {}
8
+ export declare function buildFiltersForByTime(fromValue?: string, toValue?: string): FilterFor<QueryFields>;
9
+ export declare function buildFiltersForByFilters(parameters: EventParametersFilterByEntity | EventParametersFilterByType): FilterFor<QueryFields>;
10
+ export declare function resultToEventSearchResponse(result: any[]): Array<EventSearchResponse>;
11
+ export {};
@@ -1,6 +1,3 @@
1
- import { GraphQLRequestEnvelope, Logger, GraphQLRequestEnvelopeError } from '@boostercloud/framework-types'
2
- import { Context } from '@azure/functions'
3
- export declare function rawGraphQLRequestToEnvelope(
4
- context: Context,
5
- logger: Logger
6
- ): Promise<GraphQLRequestEnvelope | GraphQLRequestEnvelopeError>
1
+ import { GraphQLRequestEnvelope, Logger, GraphQLRequestEnvelopeError } from '@boostercloud/framework-types';
2
+ import { Context } from '@azure/functions';
3
+ export declare function rawGraphQLRequestToEnvelope(context: Context, logger: Logger): Promise<GraphQLRequestEnvelope | GraphQLRequestEnvelopeError>;
@@ -1,7 +1,3 @@
1
- import { EventEnvelope, UUID } from '@boostercloud/framework-types'
2
- export declare function partitionKeyForEvent(
3
- entityTypeName: string,
4
- entityID: UUID,
5
- kind?: EventEnvelope['kind']
6
- ): string
7
- export declare function partitionKeyForIndexByEntity(entityTypeName: string, kind: EventEnvelope['kind']): string
1
+ import { EventEnvelope, UUID } from '@boostercloud/framework-types';
2
+ export declare function partitionKeyForEvent(entityTypeName: string, entityID: UUID, kind?: EventEnvelope['kind']): string;
3
+ export declare function partitionKeyForIndexByEntity(entityTypeName: string, kind: EventEnvelope['kind']): string;
@@ -1,23 +1,5 @@
1
- import { CosmosClient } from '@azure/cosmos'
2
- import { BoosterConfig, Logger, ReadModelInterface, ReadOnlyNonEmptyArray, UUID } from '@boostercloud/framework-types'
3
- export declare function fetchReadModel(
4
- db: CosmosClient,
5
- config: BoosterConfig,
6
- logger: Logger,
7
- readModelName: string,
8
- readModelID: UUID
9
- ): Promise<ReadOnlyNonEmptyArray<ReadModelInterface>>
10
- export declare function storeReadModel(
11
- db: CosmosClient,
12
- config: BoosterConfig,
13
- logger: Logger,
14
- readModelName: string,
15
- readModel: ReadModelInterface
16
- ): Promise<void>
17
- export declare function deleteReadModel(
18
- db: CosmosClient,
19
- config: BoosterConfig,
20
- logger: Logger,
21
- readModelName: string,
22
- readModel: ReadModelInterface
23
- ): Promise<void>
1
+ import { CosmosClient } from '@azure/cosmos';
2
+ import { BoosterConfig, Logger, ReadModelInterface, ReadOnlyNonEmptyArray, UUID } from '@boostercloud/framework-types';
3
+ export declare function fetchReadModel(db: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, readModelID: UUID): Promise<ReadOnlyNonEmptyArray<ReadModelInterface>>;
4
+ export declare function storeReadModel(db: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, readModel: ReadModelInterface): Promise<void>;
5
+ export declare function deleteReadModel(db: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, readModel: ReadModelInterface): Promise<void>;
@@ -1,11 +1,8 @@
1
- import { Logger, ScheduledCommandEnvelope } from '@boostercloud/framework-types'
1
+ import { Logger, ScheduledCommandEnvelope } from '@boostercloud/framework-types';
2
2
  interface AzureScheduledCommandEnvelope {
3
- bindings: {
4
- [name: string]: unknown
5
- }
3
+ bindings: {
4
+ [name: string]: unknown;
5
+ };
6
6
  }
7
- export declare function rawScheduledInputToEnvelope(
8
- input: Partial<AzureScheduledCommandEnvelope>,
9
- logger: Logger
10
- ): Promise<ScheduledCommandEnvelope>
11
- export {}
7
+ export declare function rawScheduledInputToEnvelope(input: Partial<AzureScheduledCommandEnvelope>, logger: Logger): Promise<ScheduledCommandEnvelope>;
8
+ export {};
@@ -1,13 +1,3 @@
1
- import { CosmosClient } from '@azure/cosmos'
2
- import { BoosterConfig, FilterFor, Logger, ReadModelListResult, SortFor } from '@boostercloud/framework-types'
3
- export declare function searchReadModel(
4
- cosmosDb: CosmosClient,
5
- config: BoosterConfig,
6
- logger: Logger,
7
- readModelName: string,
8
- filters: FilterFor<unknown>,
9
- sortBy?: SortFor<unknown>,
10
- limit?: number,
11
- afterCursor?: Record<string, string> | undefined,
12
- paginatedVersion?: boolean
13
- ): Promise<Array<any> | ReadModelListResult<any>>
1
+ import { CosmosClient } from '@azure/cosmos';
2
+ import { BoosterConfig, FilterFor, Logger, ReadModelListResult, SortFor } from '@boostercloud/framework-types';
3
+ export declare function searchReadModel(cosmosDb: CosmosClient, config: BoosterConfig, logger: Logger, readModelName: string, filters: FilterFor<unknown>, sortBy?: SortFor<unknown>, limit?: number, afterCursor?: Record<string, string> | undefined, paginatedVersion?: boolean): Promise<Array<any> | ReadModelListResult<any>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boostercloud/framework-provider-azure",
3
- "version": "0.26.14",
3
+ "version": "0.28.0",
4
4
  "description": "Handle Booster's integration with Azure",
5
5
  "keywords": [
6
6
  "framework-provider-azure"
@@ -22,7 +22,7 @@
22
22
  "dependencies": {
23
23
  "@azure/cosmos": "3.7.3",
24
24
  "@azure/functions": "^1.2.2",
25
- "@boostercloud/framework-types": "^0.26.14",
25
+ "@boostercloud/framework-types": "^0.28.0",
26
26
  "chai": "4.2.0",
27
27
  "chai-as-promised": "7.1.1",
28
28
  "mocha": "8.4.0",
@@ -41,5 +41,5 @@
41
41
  "bugs": {
42
42
  "url": "https://github.com/boostercloud/booster/issues"
43
43
  },
44
- "gitHead": "65c23b55c20c47b04ea847c6f931b4fc23b842b0"
44
+ "gitHead": "9bf305ca5a10ffe2807e237bf84c2d800c094aca"
45
45
  }