@forge/storage 0.0.0-experimental-490cfcf → 0.0.0-experimental-85df747

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.
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomEntityQueries = exports.UntypedQueries = void 0;
4
+ class UntypedQueries {
5
+ }
6
+ exports.UntypedQueries = UntypedQueries;
7
+ UntypedQueries.get = (contextAri, key, encrypted) => ({
8
+ query: `
9
+ query forge_app_getApplicationStorageEntity($contextAri: ID!, $key: ID!, $encrypted: Boolean!) {
10
+ appStoredEntity(contextAri: $contextAri, key: $key, encrypted: $encrypted) {
11
+ key
12
+ value
13
+ }
14
+ }
15
+ `,
16
+ variables: {
17
+ contextAri,
18
+ key,
19
+ encrypted
20
+ }
21
+ });
22
+ UntypedQueries.set = (contextAri, key, value, encrypted) => ({
23
+ query: `
24
+ mutation forge_app_setApplicationStorageEntity($input: SetAppStoredEntityMutationInput!) {
25
+ appStorage{
26
+ setAppStoredEntity(input: $input) {
27
+ success
28
+
29
+ errors {
30
+ message
31
+ extensions {
32
+ errorType
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+ `,
39
+ variables: {
40
+ input: {
41
+ contextAri,
42
+ key,
43
+ value,
44
+ encrypted
45
+ }
46
+ }
47
+ });
48
+ UntypedQueries.delete = (contextAri, key, encrypted) => ({
49
+ query: `
50
+ mutation forge_app_deleteApplicationStorageEntity($input: DeleteAppStoredEntityMutationInput!) {
51
+ appStorage {
52
+ deleteAppStoredEntity(input: $input) {
53
+ success
54
+
55
+ errors {
56
+ message
57
+ extensions {
58
+ errorType
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ `,
65
+ variables: {
66
+ input: {
67
+ contextAri,
68
+ key,
69
+ encrypted
70
+ }
71
+ }
72
+ });
73
+ UntypedQueries.listQuery = (contextAri, options) => {
74
+ var _a, _b, _c;
75
+ return ({
76
+ query: `
77
+ query forge_app_getApplicationStorageEntities($contextAri: ID!, $where: [AppStoredEntityFilter!], $cursor: String, $limit: Int) {
78
+ appStoredEntities(contextAri: $contextAri, where: $where, after: $cursor, first: $limit) {
79
+ edges {
80
+ node {
81
+ value
82
+ key
83
+ }
84
+
85
+ cursor
86
+ }
87
+ }
88
+ }
89
+ `,
90
+ variables: {
91
+ contextAri,
92
+ where: (_a = options.where) !== null && _a !== void 0 ? _a : null,
93
+ cursor: (_b = options.cursor) !== null && _b !== void 0 ? _b : null,
94
+ limit: (_c = options.limit) !== null && _c !== void 0 ? _c : null
95
+ }
96
+ });
97
+ };
98
+ UntypedQueries.listQueryForCleanup = (contextAri, options) => {
99
+ var _a, _b, _c;
100
+ return ({
101
+ query: `
102
+ query forge_app_getApplicationStorageEntitiesForCleanup($contextAri: ID!, $where: [AppStoredEntityFilter!], $cursor: String, $limit: Int) {
103
+ appStoredEntitiesForCleanup(contextAri: $contextAri, where: $where, after: $cursor, first: $limit) {
104
+ edges {
105
+ node {
106
+ value
107
+ key
108
+ }
109
+
110
+ cursor
111
+ }
112
+ }
113
+ }
114
+ `,
115
+ variables: {
116
+ contextAri,
117
+ where: (_a = options.where) !== null && _a !== void 0 ? _a : null,
118
+ cursor: (_b = options.cursor) !== null && _b !== void 0 ? _b : null,
119
+ limit: (_c = options.limit) !== null && _c !== void 0 ? _c : null
120
+ }
121
+ });
122
+ };
123
+ class CustomEntityQueries {
124
+ }
125
+ exports.CustomEntityQueries = CustomEntityQueries;
126
+ CustomEntityQueries.get = (contextAri, entityName, key) => ({
127
+ query: `
128
+ query forge_app_getApplicationStorageCustomEntity ($contextAri: ID!, $key: ID!, $entityName: String!) {
129
+ appStoredCustomEntity(contextAri: $contextAri, key: $key, entityName: $entityName) {
130
+ value
131
+ entityName
132
+ key
133
+ }
134
+ }
135
+ `,
136
+ variables: {
137
+ contextAri,
138
+ entityName,
139
+ key
140
+ }
141
+ });
142
+ CustomEntityQueries.set = (contextAri, entityName, key, value) => ({
143
+ query: `
144
+ mutation forge_app_setApplicationStorageCustomEntity($input: SetAppStoredCustomEntityMutationInput!) {
145
+ appStorageCustomEntity{
146
+ setAppStoredCustomEntity(input: $input) {
147
+ success
148
+
149
+ errors {
150
+ message
151
+ extensions {
152
+ errorType
153
+ }
154
+ }
155
+ }
156
+ }
157
+ }
158
+ `,
159
+ variables: {
160
+ input: {
161
+ contextAri,
162
+ entityName,
163
+ key,
164
+ value
165
+ }
166
+ }
167
+ });
168
+ CustomEntityQueries.delete = (contextAri, entityName, key) => ({
169
+ query: `
170
+ mutation forge_app_deleteApplicationStorageCustomEntity($input: DeleteAppStoredCustomEntityMutationInput!) {
171
+ appStorageCustomEntity {
172
+ deleteAppStoredCustomEntity(input: $input) {
173
+ success
174
+
175
+ errors {
176
+ message
177
+ extensions {
178
+ errorType
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ `,
185
+ variables: {
186
+ input: {
187
+ contextAri,
188
+ entityName,
189
+ key
190
+ }
191
+ }
192
+ });
193
+ CustomEntityQueries.listQuery = (contextAri, options) => {
194
+ return {
195
+ query: `
196
+ query AppStorageCustomEntityQueries ($contextAri: ID!, $entityName: String!, $indexName: String!, $range: AppStoredCustomEntityRange, $filters: AppStoredCustomEntityFilters, $sort:SortOrder, $limit: Int, $cursor: String, $partition: [AppStoredCustomEntityFieldValue!]) {
197
+ appStoredCustomEntities(contextAri: $contextAri, entityName: $entityName, indexName: $indexName, range: $range, filters: $filters, sort:$sort, limit: $limit, cursor: $cursor, partition: $partition) {
198
+ edges {
199
+ node {
200
+ key
201
+ value
202
+ }
203
+ cursor
204
+ }
205
+ pageInfo {
206
+ hasNextPage
207
+ hasPreviousPage
208
+ }
209
+ totalCount
210
+ cursor
211
+ }
212
+ }
213
+ `,
214
+ variables: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ contextAri, entityName: options.entityName, indexName: options.indexName, range: options.range }, (options.filters && options.filters.length
215
+ ? {
216
+ filters: {
217
+ [options.filterOperator || 'and']: options.filters
218
+ }
219
+ }
220
+ : {})), (options.partition ? { partition: options.partition } : {})), (options.sort ? { sort: options.sort } : {})), (options.cursor ? { cursor: options.cursor } : {})), (options.limit ? { limit: options.limit } : {}))
221
+ };
222
+ };
223
+ CustomEntityQueries.createSchema = (schemas) => ({
224
+ query: `
225
+ mutation forge_app_createApplicationStorageCustomEntity($input: CustomSchemaMutationInput!) {
226
+ customSchema {
227
+ createCustomSchemas(input: $input) {
228
+ success
229
+ errors {
230
+ message
231
+ extensions {
232
+ errorType
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }
238
+ `,
239
+ variables: {
240
+ input: {
241
+ schemas
242
+ }
243
+ }
244
+ });
package/out/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { RequestInit, Response } from 'node-fetch';
2
+ import { EntityStorageBuilder } from './entity-storage';
2
3
  import { GlobalStorage } from './global-storage';
3
4
  import { DefaultQueryBuilder } from './query-api';
4
5
  export declare type APIResponse = Pick<Response, 'json' | 'text' | 'arrayBuffer' | 'ok' | 'status' | 'statusText'>;
@@ -11,9 +12,13 @@ export declare const getStorageInstanceWithQuery: (adapter: GlobalStorage) => {
11
12
  setSecret: (key: string, value: any) => Promise<void>;
12
13
  deleteSecret: (key: string) => Promise<void>;
13
14
  query: () => DefaultQueryBuilder;
15
+ entity: (entityName: string) => EntityStorageBuilder;
16
+ upsertCustomEntities: (schemas: import("./query-interfaces").CustomEntity[]) => Promise<void>;
14
17
  };
15
18
  export { GlobalStorage } from './global-storage';
16
19
  export { startsWith } from './conditions';
17
- export { QueryBuilder, QueryApi, Condition, ListResult, Predicate, Result, Value } from './storage-adapter';
20
+ export { WhereConditions, FilterConditions } from './eap/conditions';
21
+ export { QueryBuilder, QueryApi, Condition, ListResult, Predicate, Result, EntityStorageApi, WherePredicate, FilterPredicate } from './storage-adapter';
22
+ export { Value, CustomEntity } from './query-interfaces';
18
23
  export { APIError } from './errors';
19
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,oBAAY,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC;AAC3G,oBAAY,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAEnF,eAAO,MAAM,2BAA2B,YAAa,aAAa;;;;;;;;CAUjE,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE5G,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,oBAAY,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC;AAC3G,oBAAY,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAEnF,eAAO,MAAM,2BAA2B,YAAa,aAAa;;;;;;;;yBASzC,MAAM;;CAG9B,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
package/out/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStorageInstanceWithQuery = void 0;
3
+ exports.APIError = exports.FilterConditions = exports.WhereConditions = exports.startsWith = exports.GlobalStorage = exports.getStorageInstanceWithQuery = void 0;
4
+ const entity_storage_1 = require("./entity-storage");
4
5
  const query_api_1 = require("./query-api");
5
- exports.getStorageInstanceWithQuery = (adapter) => {
6
+ const getStorageInstanceWithQuery = (adapter) => {
6
7
  return {
7
8
  get: adapter.get.bind(adapter),
8
9
  set: adapter.set.bind(adapter),
@@ -10,12 +11,18 @@ exports.getStorageInstanceWithQuery = (adapter) => {
10
11
  getSecret: adapter.getSecret.bind(adapter),
11
12
  setSecret: adapter.setSecret.bind(adapter),
12
13
  deleteSecret: adapter.deleteSecret.bind(adapter),
13
- query: () => new query_api_1.DefaultQueryBuilder(adapter)
14
+ query: () => new query_api_1.DefaultQueryBuilder(adapter),
15
+ entity: (entityName) => new entity_storage_1.EntityStorageBuilder(entityName, adapter),
16
+ upsertCustomEntities: adapter.upsertCustomEntities.bind(adapter)
14
17
  };
15
18
  };
19
+ exports.getStorageInstanceWithQuery = getStorageInstanceWithQuery;
16
20
  var global_storage_1 = require("./global-storage");
17
21
  Object.defineProperty(exports, "GlobalStorage", { enumerable: true, get: function () { return global_storage_1.GlobalStorage; } });
18
22
  var conditions_1 = require("./conditions");
19
23
  Object.defineProperty(exports, "startsWith", { enumerable: true, get: function () { return conditions_1.startsWith; } });
24
+ var conditions_2 = require("./eap/conditions");
25
+ Object.defineProperty(exports, "WhereConditions", { enumerable: true, get: function () { return conditions_2.WhereConditions; } });
26
+ Object.defineProperty(exports, "FilterConditions", { enumerable: true, get: function () { return conditions_2.FilterConditions; } });
20
27
  var errors_1 = require("./errors");
21
28
  Object.defineProperty(exports, "APIError", { enumerable: true, get: function () { return errors_1.APIError; } });
@@ -1,5 +1,5 @@
1
1
  import { GlobalStorage } from './global-storage';
2
- import { ListOptions } from './queries';
2
+ import { ListOptions } from './query-interfaces';
3
3
  import { QueryBuilder, Condition, Result, ListResult } from './storage-adapter';
4
4
  export declare class DefaultQueryBuilder implements QueryBuilder {
5
5
  private globalStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"query-api.d.ts","sourceRoot":"","sources":["../src/query-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEhF,qBAAa,mBAAoB,YAAW,YAAY;IAC1C,OAAO,CAAC,aAAa;IAA+B,OAAO,CAAC,YAAY;gBAAhE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EAAU,YAAY,GAAE,WAAgB;IAEtG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY;IAYnD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAOpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAO5B,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQrC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;CAGrC"}
1
+ {"version":3,"file":"query-api.d.ts","sourceRoot":"","sources":["../src/query-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEhF,qBAAa,mBAAoB,YAAW,YAAY;IAC1C,OAAO,CAAC,aAAa;IAA+B,OAAO,CAAC,YAAY;gBAAhE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EAAU,YAAY,GAAE,WAAgB;IAEtG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY;IAYnD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAOpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAO5B,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQrC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;CAGrC"}
@@ -0,0 +1,121 @@
1
+ export declare type Value = string;
2
+ export interface StartsWith {
3
+ condition: 'STARTS_WITH';
4
+ value: Value;
5
+ }
6
+ export interface NotEqualTo {
7
+ condition: 'NOT_EQUAL_TO';
8
+ value: Value[];
9
+ }
10
+ export interface In {
11
+ condition: 'IN';
12
+ value: Value[];
13
+ }
14
+ interface FieldClause {
15
+ field: string;
16
+ }
17
+ export declare type StartsWithClause = FieldClause & StartsWith;
18
+ export declare type NotEqualToClause = FieldClause & NotEqualTo;
19
+ export declare type InClause = FieldClause & In;
20
+ export declare type WhereClause = StartsWithClause | NotEqualToClause | InClause;
21
+ export interface ListOptions {
22
+ where?: Array<WhereClause>;
23
+ cursor?: string;
24
+ limit?: number;
25
+ }
26
+ export declare type CustomEntityQueryValue = string | number | boolean;
27
+ export interface BetweenClause {
28
+ condition: 'BETWEEN';
29
+ values: CustomEntityQueryValue[];
30
+ }
31
+ export interface BeginsWithClause {
32
+ condition: 'BEGINS_WITH';
33
+ values: CustomEntityQueryValue[];
34
+ }
35
+ export interface ExistsClause {
36
+ condition: 'EXISTS';
37
+ values: CustomEntityQueryValue[];
38
+ }
39
+ export interface DoesNotExistClause {
40
+ condition: 'NOT_EXISTS';
41
+ values: CustomEntityQueryValue[];
42
+ }
43
+ export interface GreaterThanClause {
44
+ condition: 'GREATER_THAN';
45
+ values: CustomEntityQueryValue[];
46
+ }
47
+ export interface GreaterThanEqualToClause {
48
+ condition: 'GREATER_THAN_EQUAL_TO';
49
+ values: CustomEntityQueryValue[];
50
+ }
51
+ export interface LessThanClause {
52
+ condition: 'LESS_THAN';
53
+ values: CustomEntityQueryValue[];
54
+ }
55
+ export interface LessThanEqualToClause {
56
+ condition: 'LESS_THAN_EQUAL_TO';
57
+ values: CustomEntityQueryValue[];
58
+ }
59
+ export interface ContainsClause {
60
+ condition: 'CONTAINS';
61
+ values: CustomEntityQueryValue[];
62
+ }
63
+ export interface DoesNotContainClause {
64
+ condition: 'NOT_CONTAINS';
65
+ values: CustomEntityQueryValue[];
66
+ }
67
+ export interface EqualToClause {
68
+ condition: 'EQUAL_TO';
69
+ values: CustomEntityQueryValue[];
70
+ }
71
+ export interface IsNotEqualToClause {
72
+ condition: 'NOT_EQUAL_TO';
73
+ values: CustomEntityQueryValue[];
74
+ }
75
+ export declare type FilterOperator = 'or' | 'and';
76
+ export interface FilterPropertyClause {
77
+ property: string;
78
+ }
79
+ export declare type BetweenFilterClause = FilterPropertyClause & BetweenClause;
80
+ export declare type BeginsWithFilterClause = FilterPropertyClause & BeginsWithClause;
81
+ export declare type ExistsFilterClause = FilterPropertyClause & ExistsClause;
82
+ export declare type DoesNotExistFilterClause = FilterPropertyClause & DoesNotExistClause;
83
+ export declare type GreaterThanFilterClause = FilterPropertyClause & GreaterThanClause;
84
+ export declare type GreaterThanEqualToFilterClause = FilterPropertyClause & GreaterThanEqualToClause;
85
+ export declare type LessThanFilterClause = FilterPropertyClause & LessThanClause;
86
+ export declare type LessThanEqualToFilterClause = FilterPropertyClause & LessThanEqualToClause;
87
+ export declare type ContainsFilterClause = FilterPropertyClause & ContainsClause;
88
+ export declare type DoesNotContainFilterClause = FilterPropertyClause & DoesNotContainClause;
89
+ export declare type EqualToFilterClause = FilterPropertyClause & EqualToClause;
90
+ export declare type IsNotEqualToFilterClause = FilterPropertyClause & IsNotEqualToClause;
91
+ export declare type RangeClause = BetweenClause | BeginsWithClause | EqualToClause | GreaterThanClause | GreaterThanEqualToClause | LessThanClause | LessThanEqualToClause;
92
+ export declare type FilterClause = BetweenFilterClause | BeginsWithFilterClause | ExistsFilterClause | DoesNotExistFilterClause | GreaterThanFilterClause | GreaterThanEqualToFilterClause | LessThanFilterClause | LessThanEqualToFilterClause | ContainsFilterClause | DoesNotContainFilterClause | EqualToFilterClause | IsNotEqualToFilterClause;
93
+ export declare enum SortOrder {
94
+ ASC = "ASC",
95
+ DESC = "DESC"
96
+ }
97
+ export declare type CustomEntityPartitionValue = string | number | boolean;
98
+ export interface CustomEntityListOptions {
99
+ sort?: SortOrder;
100
+ entityName?: string;
101
+ indexName?: string;
102
+ partition?: CustomEntityPartitionValue[];
103
+ range?: RangeClause;
104
+ filters?: FilterClause[];
105
+ filterOperator?: FilterOperator;
106
+ cursor?: string;
107
+ limit?: number;
108
+ }
109
+ export declare type CustomEntity = {
110
+ name: string;
111
+ attributes: Record<string, {
112
+ type: 'string' | 'float' | 'boolean' | 'any';
113
+ }>;
114
+ indexes?: {
115
+ name: string;
116
+ partition: string[];
117
+ range: string[];
118
+ }[];
119
+ };
120
+ export {};
121
+ //# sourceMappingURL=query-interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-interfaces.d.ts","sourceRoot":"","sources":["../src/query-interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SortOrder = void 0;
4
+ var SortOrder;
5
+ (function (SortOrder) {
6
+ SortOrder["ASC"] = "ASC";
7
+ SortOrder["DESC"] = "DESC";
8
+ })(SortOrder = exports.SortOrder || (exports.SortOrder = {}));
@@ -1,3 +1,5 @@
1
+ import { EntityStorageBuilderType } from './entity-storage';
2
+ import { BeginsWithClause, BetweenClause, ExistsClause, DoesNotExistClause, FilterOperator, GreaterThanClause, GreaterThanEqualToClause, StartsWith, NotEqualTo, In, LessThanClause, LessThanEqualToClause, ContainsClause, DoesNotContainClause, IsNotEqualToClause, EqualToClause, SortOrder, CustomEntity, CustomEntityPartitionValue } from './query-interfaces';
1
3
  export interface StorageAdapter {
2
4
  get(key: string): Promise<any>;
3
5
  set(key: string, value: any): Promise<void>;
@@ -5,22 +7,19 @@ export interface StorageAdapter {
5
7
  getSecret(key: string): Promise<any>;
6
8
  setSecret(key: string, value: any): Promise<void>;
7
9
  deleteSecret(key: string): Promise<void>;
10
+ upsertCustomEntities(schemas: CustomEntity[]): Promise<void>;
8
11
  }
9
- export interface QueryApi {
10
- query(): QueryBuilder;
11
- }
12
- export declare type Value = string;
13
- export interface StartsWith {
14
- condition: 'STARTS_WITH';
15
- value: Value;
12
+ export interface EntityStorageAdapter {
13
+ getEntity<T>(entityName: string, entityKey: string): Promise<T>;
14
+ setEntity<T>(entityName: string, entityKey: string, value: T): Promise<void>;
15
+ deleteEntity(entityName: string, entityKey: string): Promise<void>;
16
16
  }
17
- export interface NotEqualTo {
18
- condition: 'NOT_EQUAL_TO';
19
- value: Value[];
17
+ export interface EntityStorageApi {
18
+ entity(entityKey: string): EntityStorageBuilderType;
20
19
  }
21
- export interface In {
22
- condition: 'IN';
23
- value: Value[];
20
+ export declare type SharedStorageAdapter = StorageAdapter & EntityStorageAdapter;
21
+ export interface QueryApi {
22
+ query(): QueryBuilder | CustomEntityQueryBuilder;
24
23
  }
25
24
  export declare type Predicate = StartsWith | NotEqualTo | In;
26
25
  export declare type Condition = Predicate;
@@ -31,6 +30,20 @@ export interface QueryBuilder {
31
30
  getMany(): Promise<ListResult>;
32
31
  getOne(): Promise<Result | undefined>;
33
32
  }
33
+ export declare type FilterPredicate = BetweenClause | BeginsWithClause | ExistsClause | DoesNotExistClause | GreaterThanClause | GreaterThanEqualToClause | LessThanClause | LessThanEqualToClause | ContainsClause | DoesNotContainClause | EqualToClause | IsNotEqualToClause;
34
+ export declare type WherePredicate = BetweenClause | BeginsWithClause | EqualToClause | GreaterThanClause | GreaterThanEqualToClause | LessThanClause | LessThanEqualToClause;
35
+ export interface CustomEntityQueryBuilder {
36
+ index(indexName: string): CustomEntityQueryBuilder;
37
+ partition(partition: CustomEntityPartitionValue[]): CustomEntityQueryBuilder;
38
+ where(condition: WherePredicate): CustomEntityQueryBuilder;
39
+ sortOrder(sort: SortOrder): CustomEntityQueryBuilder;
40
+ filters(property: string, condition: FilterPredicate): CustomEntityQueryBuilder;
41
+ filterOperator(operator: FilterOperator): CustomEntityQueryBuilder;
42
+ cursor(cursor: string): CustomEntityQueryBuilder;
43
+ limit(limit: number): CustomEntityQueryBuilder;
44
+ getMany(): Promise<ListResult>;
45
+ getOne(): Promise<Result | undefined>;
46
+ }
34
47
  export interface Result {
35
48
  key: string;
36
49
  value: object;
@@ -1 +1 @@
1
- {"version":3,"file":"storage-adapter.d.ts","sourceRoot":"","sources":["../src/storage-adapter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,IAAI,YAAY,CAAC;CACvB;AAED,oBAAY,KAAK,GAAG,MAAM,CAAC;AAC3B,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;CACd;AACD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AACD,MAAM,WAAW,EAAE;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AAED,oBAAY,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,EAAE,CAAC;AACrD,oBAAY,SAAS,GAAG,SAAS,CAAC;AAElC,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,YAAY,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"storage-adapter.d.ts","sourceRoot":"","sources":["../src/storage-adapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/storage",
3
- "version": "0.0.0-experimental-490cfcf",
3
+ "version": "0.0.0-experimental-85df747",
4
4
  "description": "Forge Storage methods",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -17,6 +17,6 @@
17
17
  "devDependencies": {
18
18
  "@types/node": "^12.12.63",
19
19
  "@types/node-fetch": "^2.5.7",
20
- "node-fetch": "2.6.1"
20
+ "node-fetch": "2.6.7"
21
21
  }
22
22
  }
package/CHANGELOG.md DELETED
@@ -1,114 +0,0 @@
1
- # @forge/storage
2
-
3
- ## 0.0.0-experimental-490cfcf
4
-
5
- ### Minor Changes
6
-
7
- - 21e392d: Added new filters for Early Access Program
8
-
9
- ## 1.2.0-next.0
10
-
11
- ### Minor Changes
12
-
13
- - 21e392d: Added new filters for Early Access Program
14
-
15
- ## 1.1.0
16
-
17
- ### Minor Changes
18
-
19
- - 0d7fe27: Support secret storage API
20
-
21
- ## 1.1.0-next.0
22
-
23
- ### Minor Changes
24
-
25
- - 0d7fe27: Support secret storage API
26
-
27
- ## 1.0.5
28
-
29
- ### Patch Changes
30
-
31
- - 0700578: Fix GraphQL query naming convention
32
-
33
- ## 1.0.5-next.0
34
-
35
- ### Patch Changes
36
-
37
- - 0700578: Fix GraphQL query naming convention
38
-
39
- ## 1.0.4
40
-
41
- ### Patch Changes
42
-
43
- - 5ff60ec: FRGE-273 Remove engines for storage and resolver
44
-
45
- ## 1.0.4-next.0
46
-
47
- ### Patch Changes
48
-
49
- - 5ff60ec: FRGE-273 Remove engines for storage and resolver
50
-
51
- ## 1.0.3
52
-
53
- ### Patch Changes
54
-
55
- - 9b496aa: Fixed parsing of response for cleanup functions
56
-
57
- ## 1.0.3-next.0
58
-
59
- ### Patch Changes
60
-
61
- - 9b496aa: Fixed parsing of response for cleanup functions
62
-
63
- ## 1.0.2
64
-
65
- ### Patch Changes
66
-
67
- - c7c6de2: Support larger list queries for GDPR purposes
68
-
69
- ## 1.0.2-next.0
70
-
71
- ### Patch Changes
72
-
73
- - c7c6de2: Support larger list queries for GDPR purposes
74
-
75
- ## 1.0.1
76
-
77
- ### Patch Changes
78
-
79
- - c0e9085: Improve README
80
-
81
- ## 1.0.1-next.0
82
-
83
- ### Patch Changes
84
-
85
- - c0e9085: Improve README
86
-
87
- ## 1.0.0
88
-
89
- ### Major Changes
90
-
91
- - 1daf2c5: Forge packages to 1.0.0 for upcoming platform GA 🎉
92
-
93
- ## 1.0.0-next.0
94
-
95
- ### Major Changes
96
-
97
- - 1daf2c5: Forge is now generally available 🎉
98
-
99
- ## 0.0.2
100
-
101
- ### Patch Changes
102
-
103
- - 843a703: Add forge-storage library
104
-
105
- ## 0.0.2-next.0
106
-
107
- ### Patch Changes
108
-
109
- - 843a703: Add forge-storage library
110
-
111
- ## 0.0.1
112
-
113
- - First release
114
- - Refactored from `forge-api` package