@pwrdrvr/microapps-datalib 0.0.26 → 0.2.1

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,25 +1,46 @@
1
1
  import { DBManager } from '..';
2
2
  export declare type VersionStatus = 'pending' | 'assets-copied' | 'permissioned' | 'integrated' | 'routed' | 'deployed';
3
+ export declare type AppTypes = 'static' | 'lambda';
3
4
  export interface IVersionRecord {
4
5
  PK: string;
5
6
  SK: string;
6
7
  AppName: string;
7
8
  SemVer: string;
8
- Type: string;
9
+ Type: 'lambda' | 'static';
9
10
  Status: VersionStatus;
10
11
  DefaultFile: string;
11
12
  IntegrationID: string;
13
+ RouteIDAppVersion: string;
14
+ RouteIDAppVersionSplat: string;
12
15
  }
13
16
  export declare type IVersionRecordNoKeysLoose = Partial<Omit<IVersionRecord, 'PK' | 'SK' | 'AppName' | 'SemVer'>> & Pick<IVersionRecord, 'AppName' | 'SemVer'>;
14
17
  export declare class Version implements IVersionRecord {
18
+ /**
19
+ * Load records for all the versions of an app
20
+ * @param opts
21
+ * @returns
22
+ */
15
23
  static LoadVersions(opts: {
16
24
  dbManager: DBManager;
17
25
  key: Pick<IVersionRecord, 'AppName'>;
18
26
  }): Promise<Version[]>;
27
+ /**
28
+ * Load record for a single version of an app
29
+ */
19
30
  static LoadVersion(opts: {
20
31
  dbManager: DBManager;
21
32
  key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
22
33
  }): Promise<Version>;
34
+ /**
35
+ * Delete record for a single version of an app
36
+ */
37
+ static DeleteVersion(opts: {
38
+ dbManager: DBManager;
39
+ key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
40
+ }): Promise<void>;
41
+ /**
42
+ * Get PK (primary key / hash key) field value for current KeyBy
43
+ */
23
44
  get PK(): string;
24
45
  private _keyBy;
25
46
  private _appName;
@@ -28,21 +49,31 @@ export declare class Version implements IVersionRecord {
28
49
  private _status;
29
50
  private _defaultFile;
30
51
  private _integrationID;
52
+ private _routeIDAppVersion;
53
+ private _routeIDAppVersionSplat;
31
54
  constructor(init?: Partial<IVersionRecordNoKeysLoose>);
32
55
  get DbStruct(): IVersionRecord;
56
+ /**
57
+ * Save this record to DynamoDB
58
+ * @param dbManager
59
+ */
33
60
  Save(dbManager: DBManager): Promise<void>;
34
61
  get SK(): string;
35
62
  get AppName(): string;
36
63
  set AppName(value: string);
37
64
  get SemVer(): string;
38
65
  set SemVer(value: string);
39
- get Type(): string;
40
- set Type(value: string);
66
+ get Type(): AppTypes;
67
+ set Type(value: AppTypes);
41
68
  get Status(): VersionStatus;
42
69
  set Status(value: VersionStatus);
43
70
  get DefaultFile(): string;
44
71
  set DefaultFile(value: string);
45
72
  get IntegrationID(): string;
46
73
  set IntegrationID(value: string);
74
+ get RouteIDAppVersion(): string;
75
+ set RouteIDAppVersion(value: string);
76
+ get RouteIDAppVersionSplat(): string;
77
+ set RouteIDAppVersionSplat(value: string);
47
78
  }
48
79
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAM/B,oBAAY,aAAa,GACrB,SAAS,GACT,eAAe,GACf,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,oBAAY,yBAAyB,GAAG,OAAO,CAC7C,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC,CACzD,GACC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;AAE7C,qBAAa,OAAQ,YAAW,cAAc;WACxB,YAAY,CAAC,IAAI,EAAE;QACrC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;KACtC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAsBF,WAAW,CAAC,IAAI,EAAE;QACpC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;KACjD,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpB,IAAW,EAAE,IAAI,MAAM,CAOtB;IAED,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAS;gBAEZ,IAAI,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAU5D,IAAW,QAAQ,IAAI,cAAc,CAWpC;IAEY,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,IAAW,EAAE,IAAI,MAAM,CAOtB;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IACD,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAE/B;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IACD,IAAW,MAAM,CAAC,KAAK,EAAE,MAAM,EAE9B;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IACD,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAE5B;IAED,IAAW,MAAM,IAAI,aAAa,CAEjC;IACD,IAAW,MAAM,CAAC,KAAK,EAAE,aAAa,EAErC;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IACD,IAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAEnC;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IACD,IAAW,aAAa,CAAC,KAAK,EAAE,MAAM,EAErC;CACF"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,16 @@ class Version {
12
12
  this._status = 'pending';
13
13
  this._defaultFile = '';
14
14
  this._integrationID = '';
15
+ this._routeIDAppVersion = '';
16
+ this._routeIDAppVersionSplat = '';
15
17
  // Save any passed in values over the defaults
16
18
  Object.assign(this, init);
17
19
  }
20
+ /**
21
+ * Load records for all the versions of an app
22
+ * @param opts
23
+ * @returns
24
+ */
18
25
  static async LoadVersions(opts) {
19
26
  const { dbManager, key } = opts;
20
27
  const { Items } = await dbManager.ddbDocClient.query({
@@ -34,6 +41,9 @@ class Version {
34
41
  }
35
42
  return records;
36
43
  }
44
+ /**
45
+ * Load record for a single version of an app
46
+ */
37
47
  static async LoadVersion(opts) {
38
48
  const { dbManager, key } = opts;
39
49
  const { Item } = await dbManager.ddbDocClient.get({
@@ -46,6 +56,22 @@ class Version {
46
56
  const record = class_transformer_1.plainToClass(Version, Item);
47
57
  return record;
48
58
  }
59
+ /**
60
+ * Delete record for a single version of an app
61
+ */
62
+ static async DeleteVersion(opts) {
63
+ const { dbManager, key } = opts;
64
+ await dbManager.ddbDocClient.delete({
65
+ TableName: dbManager.tableName,
66
+ Key: {
67
+ PK: `appName#${key.AppName}`.toLowerCase(),
68
+ SK: `version#${key.SemVer}`.toLowerCase(),
69
+ },
70
+ });
71
+ }
72
+ /**
73
+ * Get PK (primary key / hash key) field value for current KeyBy
74
+ */
49
75
  get PK() {
50
76
  switch (this._keyBy) {
51
77
  case SaveBy.AppName:
@@ -64,8 +90,14 @@ class Version {
64
90
  Status: this.Status,
65
91
  DefaultFile: this.DefaultFile,
66
92
  IntegrationID: this.IntegrationID,
93
+ RouteIDAppVersion: this.RouteIDAppVersion,
94
+ RouteIDAppVersionSplat: this.RouteIDAppVersionSplat,
67
95
  };
68
96
  }
97
+ /**
98
+ * Save this record to DynamoDB
99
+ * @param dbManager
100
+ */
69
101
  async Save(dbManager) {
70
102
  // TODO: Validate that all the fields needed are present
71
103
  // Save under specific AppName key
@@ -119,6 +151,18 @@ class Version {
119
151
  set IntegrationID(value) {
120
152
  this._integrationID = value;
121
153
  }
154
+ get RouteIDAppVersion() {
155
+ return this._routeIDAppVersion;
156
+ }
157
+ set RouteIDAppVersion(value) {
158
+ this._routeIDAppVersion = value;
159
+ }
160
+ get RouteIDAppVersionSplat() {
161
+ return this._routeIDAppVersionSplat;
162
+ }
163
+ set RouteIDAppVersionSplat(value) {
164
+ this._routeIDAppVersionSplat = value;
165
+ }
122
166
  }
123
167
  exports.Version = Version;
124
168
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/models/version.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pwrdrvr/microapps-datalib",
3
- "version": "0.0.26",
3
+ "version": "0.2.1",
4
4
  "description": "Data library for the microapps framework",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
@@ -137,7 +137,7 @@ describe('application records', () => {
137
137
  IntegrationID: 'abcd',
138
138
  SemVer: '3.2.1-beta0',
139
139
  Status: 'deployed',
140
- Type: 'next.js',
140
+ Type: 'lambda',
141
141
  });
142
142
  await version.Save(dbManager);
143
143
 
@@ -176,7 +176,7 @@ describe('application records', () => {
176
176
  IntegrationID: 'abcd',
177
177
  SemVer: '3.2.1-beta0',
178
178
  Status: 'deployed',
179
- Type: 'next.js',
179
+ Type: 'lambda',
180
180
  });
181
181
  await version.Save(dbManager);
182
182
 
@@ -29,9 +29,11 @@ describe('version records', () => {
29
29
  version.AppName = 'Cat';
30
30
  version.SemVer = '1.2.3-Beta4';
31
31
  version.Status = 'pending';
32
- version.Type = 'type';
32
+ version.Type = 'lambda';
33
33
  version.DefaultFile = 'index.html';
34
34
  version.IntegrationID = 'abcd';
35
+ version.RouteIDAppVersion = '123';
36
+ version.RouteIDAppVersionSplat = '456';
35
37
 
36
38
  await version.Save(dbManager);
37
39
 
@@ -45,9 +47,11 @@ describe('version records', () => {
45
47
  expect(Item?.AppName).toBe('cat');
46
48
  expect(Item?.SemVer).toBe('1.2.3-Beta4');
47
49
  expect(Item?.Status).toBe('pending');
48
- expect(Item?.Type).toBe('type');
50
+ expect(Item?.Type).toBe('lambda');
49
51
  expect(Item?.DefaultFile).toBe('index.html');
50
52
  expect(Item?.IntegrationID).toBe('abcd');
53
+ expect(Item?.RouteIDAppVersion).toEqual('123');
54
+ expect(Item?.RouteIDAppVersionSplat).toEqual('456');
51
55
  });
52
56
 
53
57
  it('load 1 version should load 1 version', async () => {
@@ -55,7 +59,7 @@ describe('version records', () => {
55
59
  version.AppName = 'Dog';
56
60
  version.SemVer = '1.2.3-Beta5';
57
61
  version.Status = 'pending';
58
- version.Type = 'type';
62
+ version.Type = 'lambda';
59
63
  version.DefaultFile = 'index.html';
60
64
  version.IntegrationID = 'abcd';
61
65
 
@@ -65,7 +69,7 @@ describe('version records', () => {
65
69
  version.AppName = 'Dog';
66
70
  version.SemVer = '1.2.3-Beta6';
67
71
  version.Status = 'pending';
68
- version.Type = 'type';
72
+ version.Type = 'lambda';
69
73
  version.DefaultFile = 'index.html';
70
74
  version.IntegrationID = 'abcd';
71
75
 
@@ -98,9 +102,11 @@ describe('version records', () => {
98
102
  version.AppName = 'Frog';
99
103
  version.SemVer = '2.2.3-Beta5';
100
104
  version.Status = 'pending';
101
- version.Type = 'type';
102
- version.DefaultFile = 'index.html';
103
- version.IntegrationID = 'abcd';
105
+ version.Type = 'lambda';
106
+ version.DefaultFile = 'index1.html';
107
+ version.IntegrationID = 'abcd1';
108
+ version.RouteIDAppVersion = 'routeAppVersion1';
109
+ version.RouteIDAppVersionSplat = 'routeAppVersionSplat1';
104
110
 
105
111
  await version.Save(dbManager);
106
112
 
@@ -108,9 +114,11 @@ describe('version records', () => {
108
114
  version.AppName = 'Frog';
109
115
  version.SemVer = '2.2.3-Beta6';
110
116
  version.Status = 'pending';
111
- version.Type = 'type';
112
- version.DefaultFile = 'index.html';
113
- version.IntegrationID = 'abcd';
117
+ version.Type = 'lambda';
118
+ version.DefaultFile = 'index2.html';
119
+ version.IntegrationID = 'abcd2';
120
+ version.RouteIDAppVersion = 'routeAppVersion2';
121
+ version.RouteIDAppVersionSplat = 'routeAppVersionSplat2';
114
122
 
115
123
  await version.Save(dbManager);
116
124
 
@@ -121,8 +129,14 @@ describe('version records', () => {
121
129
  expect(versions[0].AppName).toBe('frog');
122
130
  expect(versions[0].SK).toBe('version#2.2.3-beta5');
123
131
  expect(versions[0].SemVer).toBe('2.2.3-Beta5');
132
+ expect(versions[0].DefaultFile).toEqual('index1.html');
133
+ expect(versions[0].RouteIDAppVersion).toEqual('routeAppVersion1');
134
+ expect(versions[0].RouteIDAppVersionSplat).toEqual('routeAppVersionSplat1');
124
135
  expect(versions[1].AppName).toBe('frog');
125
136
  expect(versions[1].SK).toBe('version#2.2.3-beta6');
126
137
  expect(versions[1].SemVer).toBe('2.2.3-Beta6');
138
+ expect(versions[1].DefaultFile).toEqual('index2.html');
139
+ expect(versions[1].RouteIDAppVersion).toEqual('routeAppVersion2');
140
+ expect(versions[1].RouteIDAppVersionSplat).toEqual('routeAppVersionSplat2');
127
141
  });
128
142
  });
@@ -13,15 +13,19 @@ export type VersionStatus =
13
13
  | 'routed'
14
14
  | 'deployed';
15
15
 
16
+ export type AppTypes = 'static' | 'lambda';
17
+
16
18
  export interface IVersionRecord {
17
19
  PK: string;
18
20
  SK: string;
19
21
  AppName: string;
20
22
  SemVer: string;
21
- Type: string;
23
+ Type: 'lambda' | 'static';
22
24
  Status: VersionStatus;
23
25
  DefaultFile: string;
24
26
  IntegrationID: string;
27
+ RouteIDAppVersion: string;
28
+ RouteIDAppVersionSplat: string;
25
29
  }
26
30
 
27
31
  export type IVersionRecordNoKeysLoose = Partial<
@@ -30,6 +34,11 @@ export type IVersionRecordNoKeysLoose = Partial<
30
34
  Pick<IVersionRecord, 'AppName' | 'SemVer'>;
31
35
 
32
36
  export class Version implements IVersionRecord {
37
+ /**
38
+ * Load records for all the versions of an app
39
+ * @param opts
40
+ * @returns
41
+ */
33
42
  public static async LoadVersions(opts: {
34
43
  dbManager: DBManager;
35
44
  key: Pick<IVersionRecord, 'AppName'>;
@@ -55,6 +64,9 @@ export class Version implements IVersionRecord {
55
64
  return records;
56
65
  }
57
66
 
67
+ /**
68
+ * Load record for a single version of an app
69
+ */
58
70
  public static async LoadVersion(opts: {
59
71
  dbManager: DBManager;
60
72
  key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
@@ -72,6 +84,27 @@ export class Version implements IVersionRecord {
72
84
  return record;
73
85
  }
74
86
 
87
+ /**
88
+ * Delete record for a single version of an app
89
+ */
90
+ public static async DeleteVersion(opts: {
91
+ dbManager: DBManager;
92
+ key: Pick<IVersionRecord, 'AppName' | 'SemVer'>;
93
+ }): Promise<void> {
94
+ const { dbManager, key } = opts;
95
+
96
+ await dbManager.ddbDocClient.delete({
97
+ TableName: dbManager.tableName,
98
+ Key: {
99
+ PK: `appName#${key.AppName}`.toLowerCase(),
100
+ SK: `version#${key.SemVer}`.toLowerCase(),
101
+ },
102
+ });
103
+ }
104
+
105
+ /**
106
+ * Get PK (primary key / hash key) field value for current KeyBy
107
+ */
75
108
  public get PK(): string {
76
109
  switch (this._keyBy) {
77
110
  case SaveBy.AppName:
@@ -84,16 +117,20 @@ export class Version implements IVersionRecord {
84
117
  private _keyBy: SaveBy;
85
118
  private _appName: string | undefined;
86
119
  private _semVer: string | undefined;
87
- private _type: string | undefined;
120
+ private _type: AppTypes | undefined;
88
121
  private _status: VersionStatus;
89
122
  private _defaultFile: string;
90
123
  private _integrationID: string;
124
+ private _routeIDAppVersion: string;
125
+ private _routeIDAppVersionSplat: string | undefined;
91
126
 
92
127
  public constructor(init?: Partial<IVersionRecordNoKeysLoose>) {
93
128
  this._keyBy = SaveBy.AppName;
94
129
  this._status = 'pending';
95
130
  this._defaultFile = '';
96
131
  this._integrationID = '';
132
+ this._routeIDAppVersion = '';
133
+ this._routeIDAppVersionSplat = '';
97
134
 
98
135
  // Save any passed in values over the defaults
99
136
  Object.assign(this, init);
@@ -109,9 +146,15 @@ export class Version implements IVersionRecord {
109
146
  Status: this.Status,
110
147
  DefaultFile: this.DefaultFile,
111
148
  IntegrationID: this.IntegrationID,
149
+ RouteIDAppVersion: this.RouteIDAppVersion,
150
+ RouteIDAppVersionSplat: this.RouteIDAppVersionSplat,
112
151
  };
113
152
  }
114
153
 
154
+ /**
155
+ * Save this record to DynamoDB
156
+ * @param dbManager
157
+ */
115
158
  public async Save(dbManager: DBManager): Promise<void> {
116
159
  // TODO: Validate that all the fields needed are present
117
160
 
@@ -146,10 +189,10 @@ export class Version implements IVersionRecord {
146
189
  this._semVer = value;
147
190
  }
148
191
 
149
- public get Type(): string {
150
- return this._type as string;
192
+ public get Type(): AppTypes {
193
+ return this._type as AppTypes;
151
194
  }
152
- public set Type(value: string) {
195
+ public set Type(value: AppTypes) {
153
196
  this._type = value;
154
197
  }
155
198
 
@@ -173,4 +216,18 @@ export class Version implements IVersionRecord {
173
216
  public set IntegrationID(value: string) {
174
217
  this._integrationID = value;
175
218
  }
219
+
220
+ public get RouteIDAppVersion(): string {
221
+ return this._routeIDAppVersion as string;
222
+ }
223
+ public set RouteIDAppVersion(value: string) {
224
+ this._routeIDAppVersion = value;
225
+ }
226
+
227
+ public get RouteIDAppVersionSplat(): string {
228
+ return this._routeIDAppVersionSplat as string;
229
+ }
230
+ public set RouteIDAppVersionSplat(value: string) {
231
+ this._routeIDAppVersionSplat = value;
232
+ }
176
233
  }