@dereekb/util 5.3.0 → 6.0.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ # [6.0.0](https://github.com/dereekb/dbx-components/compare/v5.3.0-dev...v6.0.0) (2022-06-03)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * added asIterable to handle strings ([9d5b785](https://github.com/dereekb/dbx-components/commit/9d5b7854b6ce4f3c08b4b36fa75419fb97e8d548))
11
+ * hasAuthRoleHook fix ([e4749ba](https://github.com/dereekb/dbx-components/commit/e4749bae9a657d7cdc82974d129211392261aa3c))
12
+
13
+
14
+ ### Features
15
+
16
+ * added ContextGrantedModelRolesReader ([6fba1cc](https://github.com/dereekb/dbx-components/commit/6fba1cc637beeff55523df599eb88391352f9f58))
17
+ * added FirebaseModelService ([3876575](https://github.com/dereekb/dbx-components/commit/387657559a86908eee57326b655c63a0a836c239))
18
+ * added firebaseModelsService ([7432e55](https://github.com/dereekb/dbx-components/commit/7432e55111cec66a239856ecb2db6adfc9e9780d))
19
+ * added grantedRoleMapReader ([11d2f17](https://github.com/dereekb/dbx-components/commit/11d2f1786f06024dfbbbfd9ac00e48791cbc0521))
20
+ * added OnCallDeleteModel ([358189d](https://github.com/dereekb/dbx-components/commit/358189d6db6ef7d8db93d6dd881d29cc724dd083))
21
+ * added orderByDocumentId, startAtValue, endAtValue constraints ([c846fee](https://github.com/dereekb/dbx-components/commit/c846feef6c26a3818bb006a807b6e931b7b14eaf))
22
+
23
+
24
+
5
25
  # [5.3.0](https://github.com/dereekb/dbx-components/compare/v5.2.1-dev...v5.3.0) (2022-05-30)
6
26
 
7
27
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/util",
3
- "version": "5.3.0",
3
+ "version": "6.0.0",
4
4
  "type": "commonjs",
5
5
  "exports": {
6
6
  ".": {
@@ -59,7 +59,7 @@ function authRoleClaimsService(config, defaults = {}) {
59
59
  entry.claimKey = x[0];
60
60
  return [x[0], entry];
61
61
  });
62
- const authRolesMap = new Map(tuples.map((x) => [x[0].toLowerCase(), x[1]]));
62
+ const authRoleMap = new Map(tuples.map((x) => [x[0].toLowerCase(), x[1]]));
63
63
  const toClaims = (roles) => {
64
64
  const claims = {};
65
65
  // iterate by each claim value to build the claims.
@@ -74,7 +74,7 @@ function authRoleClaimsService(config, defaults = {}) {
74
74
  const roles = new Set();
75
75
  (0, object_1.forEachKeyValue)(claims, {
76
76
  forEach: ([claimsKey, value]) => {
77
- const entry = authRolesMap.get(claimsKey);
77
+ const entry = authRoleMap.get(claimsKey);
78
78
  if (entry != null) {
79
79
  const decodedRoles = entry.decodeRolesFromValue(value);
80
80
  (0, set_1.addToSet)(roles, decodedRoles);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.role.claims.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/auth/auth.role.claims.ts"],"names":[],"mappings":";;;AACA,6CAA2G;AAC3G,qDAAsD;AACtD,0CAAuD;AACvD,gCAAwD;AAsH3C,QAAA,oCAAoC,GAAG,CAAC,CAAC;AACzC,QAAA,oCAAoC,GAAG,IAAI,CAAC;AAMzD;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAA6B,MAAsC,EAAE,WAA0C,EAAE;;IACpJ,MAAM,iBAAiB,GAAmB,MAAA,CAAC,IAAA,qBAAY,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,CAAC,CAAC,4CAAoC,CAAC,mCAAI,4CAAoC,CAAC;IACvL,MAAM,iBAAiB,GAAyC,MAAA,CAAC,IAAA,qBAAY,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,CAAC,CAAC,4CAAoC,CAAC,mCAAI,IAAI,CAAC;IAE7K,SAAS,eAAe,CAAC,KAA4C;QACnE,OAAQ,KAAuD,CAAC,KAAK,IAAI,IAAI,CAAC;IAChF,CAAC;IAED,MAAM,MAAM,GAA0D,IAAA,2BAAc,EAAgD,MAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;QAC3J,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,KAAoD,CAAC;QAEzD,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE;YAC/B,MAAM,aAAa,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,iBAAiB,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAE7C,kGAAkG;YAClG,8IAA8I;YAC9I,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;aAChI;YAED,KAAK,GAAG;gBACN,oBAAoB,EAAE,CAAC,KAAkB,EAAE,EAAE;;oBAC3C,IAAI,WAAW,CAAC;oBAEhB,qEAAqE;oBACrE,IAAI,IAAA,0BAAoB,EAAC,KAAK,EAAE,UAAU,CAAC,EAAE;wBAC3C,WAAW,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,iBAAiB,CAAC;qBACrD;oBAED,OAAO,WAAW,CAAC;gBACrB,CAAC;gBACD,oBAAoB,EAAE,CAAC,KAA4B,EAAE,EAAE;oBACrD,IAAI,KAAK,KAAK,aAAa,EAAE;wBAC3B,OAAO,UAAU,CAAC;qBACnB;yBAAM;wBACL,OAAO,EAAE,CAAC;qBACX;gBACH,CAAC;aACF,CAAC;SACH;aAAM;YACL,KAAK,GAAG,UAA2D,CAAC;SACrE;QAEA,KAA6C,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAA4C,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAoD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/H,MAAM,QAAQ,GAAG,CAAC,KAAkB,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,EAAyB,CAAC;QAEzC,mDAAmD;QACnD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;;YACpC,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,mCAAI,iBAAiB,CAAC;YAC3E,MAAM,CAAC,SAAoB,CAAC,GAAG,WAAoC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAqC,CAAC,MAA2B,EAAE,EAAE;QAChF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,IAAA,wBAAe,EAAC,MAAM,EAAE;YACtB,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAmB,CAAC,CAAC;gBAEpD,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,MAAM,YAAY,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBACvD,IAAA,cAAQ,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC;iBAC/B;YACH,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,OAAO;QACP,iBAAiB;QACjB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAtFD,sDAsFC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAgD,gBAAqC;IAC7G,OAAO,IAAA,uBAAc,EAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,iCAAwB,CAAC,IAAI,EAAE,EAAE,CAAkB,CAAC;AACvH,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"auth.role.claims.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/auth/auth.role.claims.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Maybe } from '../value/maybe';
2
- import { ReadableError, ReadableDataError, StringErrorCode } from './error';
2
+ import { ReadableError, ReadableDataError, StringErrorCode, CodedError } from './error';
3
3
  /**
4
4
  * The expected error object returned from the server.
5
5
  */
@@ -15,6 +15,9 @@ export interface ServerErrorResponseData extends ReadableError {
15
15
  export interface ServerError<T = ServerErrorResponseData> extends ReadableDataError<T> {
16
16
  status: number;
17
17
  }
18
+ export interface ServerErrorMakeConfig<T> extends ServerError<T>, Partial<CodedError> {
19
+ }
20
+ export declare function serverError<T>(config: ServerErrorMakeConfig<T>): ServerError<T>;
18
21
  /**
19
22
  * Base server-error class.
20
23
  */
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnauthorizedServerErrorResponse = exports.ServerErrorResponse = void 0;
3
+ exports.UnauthorizedServerErrorResponse = exports.ServerErrorResponse = exports.serverError = void 0;
4
+ function serverError(config) {
5
+ return Object.assign(Object.assign({}, config), { data: config.data });
6
+ }
7
+ exports.serverError = serverError;
4
8
  /**
5
9
  * Base server-error class.
6
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"error.server.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/error/error.server.ts"],"names":[],"mappings":";;;AAoBA;;GAEG;AACH,MAAa,mBAAmB;IAM9B,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAkB;QACzD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAZD,kDAYC;AAED,MAAa,+BAAgC,SAAQ,mBAAmB;IACtE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAwB;QACvD,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;CACF;AAJD,0EAIC"}
1
+ {"version":3,"file":"error.server.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/error/error.server.ts"],"names":[],"mappings":";;;AAsBA,SAAgB,WAAW,CAAI,MAAgC;IAC7D,uCACK,MAAM,KACT,IAAI,EAAE,MAAM,CAAC,IAAI,IACjB;AACJ,CAAC;AALD,kCAKC;AAED;;GAEG;AACH,MAAa,mBAAmB;IAM9B,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAkB;QACzD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAZD,kDAYC;AAED,MAAa,+BAAgC,SAAQ,mBAAmB;IACtE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAwB;QACvD,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;CACF;AAJD,0EAIC"}
@@ -9,7 +9,7 @@ export declare type Factory<T> = Getter<T>;
9
9
  /**
10
10
  * Function that returns a value with an optional single argument.
11
11
  */
12
- export declare type FactoryWithInput<T, A> = (args?: A) => T;
12
+ export declare type FactoryWithInput<O, I> = (args?: I) => O;
13
13
  /**
14
14
  * Function that returns a value with a single argument.
15
15
  */
@@ -1,3 +1,4 @@
1
+ export * from './type';
1
2
  export * from './getter';
2
3
  export * from './getter.cache';
3
4
  export * from './getter.map';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./type"), exports);
4
5
  tslib_1.__exportStar(require("./getter"), exports);
5
6
  tslib_1.__exportStar(require("./getter.cache"), exports);
6
7
  tslib_1.__exportStar(require("./getter.map"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,yDAA+B;AAC/B,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,mDAAyB;AACzB,yDAA+B;AAC/B,uDAA6B"}
@@ -0,0 +1,5 @@
1
+ import { Getter } from './getter';
2
+ /**
3
+ * Type of the result of a Getter
4
+ */
5
+ export declare type GetterResult<G> = G extends Getter<infer Result> ? Result : never;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/getter/type.ts"],"names":[],"mappings":""}
@@ -5,6 +5,7 @@ import { Maybe } from '../value/maybe';
5
5
  * Note that strings are a valid Iterable, allowing iteration over characters.
6
6
  */
7
7
  export declare type IterableOrValue<T> = T | Iterable<T>;
8
+ export declare function asIterable<T = unknown>(values: IterableOrValue<T>, treatStringAsIterable?: boolean): Iterable<T>;
8
9
  /**
9
10
  * Returns true if the input is an Iterable.
10
11
  *
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.existsInIterable = exports.findInIterable = exports.useIterableOrValue = exports.forEachInIterable = exports.takeValuesFromIterable = exports.firstValueFromIterable = exports.isIterable = void 0;
3
+ exports.existsInIterable = exports.findInIterable = exports.useIterableOrValue = exports.forEachInIterable = exports.takeValuesFromIterable = exports.firstValueFromIterable = exports.isIterable = exports.asIterable = void 0;
4
4
  // MARK: Functions
5
+ function asIterable(values, treatStringAsIterable) {
6
+ let iterable;
7
+ if (isIterable(values, treatStringAsIterable)) {
8
+ iterable = values;
9
+ }
10
+ else {
11
+ iterable = [values];
12
+ }
13
+ return iterable;
14
+ }
15
+ exports.asIterable = asIterable;
5
16
  /**
6
17
  * Returns true if the input is an Iterable.
7
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"iterable.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/iterable/iterable.ts"],"names":[],"mappings":";;;AAUA,kBAAkB;AAClB;;;;;;;;GAQG;AACH,SAAgB,UAAU,CAAc,MAAe,EAAE,qBAAqB,GAAG,KAAK;IACpF,IAAI,MAAM,IAAK,MAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE;QAC/G,OAAO,IAAI,CAAC;KACb;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gCAMC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAI,MAAmB;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,wDAMC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,MAAmB,EAAE,KAAa;IAC1E,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;aAAM;YACL,MAAM;SACP;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,wDAYC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAI,MAAmB,EAAE,EAAsB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;KACX;AACH,CAAC;AAJD,8CAIC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAI,MAAiC,EAAE,EAAsB,EAAE,qBAAqB,GAAG,KAAK;IAC5H,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE;YAC7C,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC/B;aAAM;YACL,EAAE,CAAC,MAAM,CAAC,CAAC;SACZ;KACF;AACH,CAAC;AARD,gDAQC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAI,MAAmB,EAAE,EAAyB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,wCAQC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAI,MAAmB,EAAE,EAAyB;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,4CAQC"}
1
+ {"version":3,"file":"iterable.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/iterable/iterable.ts"],"names":[],"mappings":";;;AAUA,kBAAkB;AAClB,SAAgB,UAAU,CAAc,MAA0B,EAAE,qBAA+B;IACjG,IAAI,QAAqB,CAAC;IAE1B,IAAI,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE;QAC7C,QAAQ,GAAG,MAAM,CAAC;KACnB;SAAM;QACL,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,gCAUC;AAED;;;;;;;;GAQG;AACH,SAAgB,UAAU,CAAc,MAAe,EAAE,qBAAqB,GAAG,KAAK;IACpF,IAAI,MAAM,IAAK,MAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE;QAC/G,OAAO,IAAI,CAAC;KACb;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,gCAMC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAI,MAAmB;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAND,wDAMC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAI,MAAmB,EAAE,KAAa;IAC1E,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;aAAM;YACL,MAAM;SACP;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,wDAYC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAI,MAAmB,EAAE,EAAsB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,EAAE,CAAC,KAAK,CAAC,CAAC;KACX;AACH,CAAC;AAJD,8CAIC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAI,MAAiC,EAAE,EAAsB,EAAE,qBAAqB,GAAG,KAAK;IAC5H,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE;YAC7C,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC/B;aAAM;YACL,EAAE,CAAC,MAAM,CAAC,CAAC;SACZ;KACF;AACH,CAAC;AARD,gDAQC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAI,MAAmB,EAAE,EAAyB;IAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,wCAQC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAI,MAAmB,EAAE,EAAyB;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,4CAQC"}
@@ -1,2 +1,3 @@
1
1
  export * from './handler';
2
2
  export * from './handler.config';
3
+ export * from './typed.service';
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./handler"), exports);
5
5
  tslib_1.__exportStar(require("./handler.config"), exports);
6
+ tslib_1.__exportStar(require("./typed.service"), exports);
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/service/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,2DAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/service/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,2DAAiC;AACjC,0DAAgC"}
@@ -0,0 +1,30 @@
1
+ import { GetterOrValue } from '../getter/getter';
2
+ /**
3
+ * Registry used to load model services when requested.
4
+ */
5
+ export interface TypedServiceRegistry<S, T extends string = string> {
6
+ /**
7
+ * Returns the service for the type. If a service is not registered, will throw an exception.
8
+ *
9
+ * @param type
10
+ */
11
+ serviceForType(type: T): S;
12
+ }
13
+ /**
14
+ * TypedServiceRegistry implementation.
15
+ */
16
+ export declare class TypedServiceRegistryInstance<S, T extends string = string> implements TypedServiceRegistry<S, T> {
17
+ private _map;
18
+ registerServiceForType(type: T, service: GetterOrValue<S>): void;
19
+ serviceForType(type: T): S;
20
+ }
21
+ export interface TypedServiceRegistrySetupConfig<S, T extends string = string> {
22
+ services: {
23
+ [K in T]: S;
24
+ };
25
+ }
26
+ /**
27
+ * Creates a new TypedServiceRegistryInstance and registers the input types.
28
+ * @returns
29
+ */
30
+ export declare function typedServiceRegistry<S, T extends string = string>(config: TypedServiceRegistrySetupConfig<S, T>): TypedServiceRegistryInstance<S, T>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typedServiceRegistry = exports.TypedServiceRegistryInstance = void 0;
4
+ const getter_1 = require("../getter/getter");
5
+ const object_1 = require("../object/object");
6
+ /**
7
+ * TypedServiceRegistry implementation.
8
+ */
9
+ class TypedServiceRegistryInstance {
10
+ constructor() {
11
+ this._map = new Map();
12
+ }
13
+ registerServiceForType(type, service) {
14
+ const getter = (0, getter_1.asGetter)(service);
15
+ this._map.set(type, getter);
16
+ }
17
+ serviceForType(type) {
18
+ const getter = this._map.get(type);
19
+ const service = getter === null || getter === void 0 ? void 0 : getter();
20
+ if (service == null) {
21
+ throw new Error(`no service registered for type "${type}"`);
22
+ }
23
+ return service;
24
+ }
25
+ }
26
+ exports.TypedServiceRegistryInstance = TypedServiceRegistryInstance;
27
+ /**
28
+ * Creates a new TypedServiceRegistryInstance and registers the input types.
29
+ * @returns
30
+ */
31
+ function typedServiceRegistry(config) {
32
+ const instance = new TypedServiceRegistryInstance();
33
+ (0, object_1.forEachKeyValue)(config.services, {
34
+ forEach: ([key, service]) => {
35
+ instance.registerServiceForType(key, service);
36
+ }
37
+ });
38
+ return instance;
39
+ }
40
+ exports.typedServiceRegistry = typedServiceRegistry;
41
+ //# sourceMappingURL=typed.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed.service.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/service/typed.service.ts"],"names":[],"mappings":";;;AAAA,6CAAmE;AACnE,6CAAmD;AAcnD;;GAEG;AACH,MAAa,4BAA4B;IAAzC;QACU,SAAI,GAAG,IAAI,GAAG,EAAgB,CAAC;IAiBzC,CAAC;IAfC,sBAAsB,CAAC,IAAO,EAAE,OAAyB;QACvD,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,IAAO;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;QAE3B,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAC;SAC7D;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAlBD,oEAkBC;AAQD;;;GAGG;AACH,SAAgB,oBAAoB,CAA+B,MAA6C;IAC9G,MAAM,QAAQ,GAAG,IAAI,4BAA4B,EAAQ,CAAC;IAE1D,IAAA,wBAAe,EAAC,MAAM,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;YAC1B,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,oDAUC"}
@@ -15,8 +15,9 @@ export declare function excludeValuesFromSet<T>(values: T[], set: Set<T>): T[];
15
15
  export declare function filterValuesFromSet<T>(values: T[], set: Set<T>, exclude?: boolean): T[];
16
16
  /**
17
17
  * Set inclusion comparison type.
18
- * - all: All values must be included
19
- * - any: Any value is included
18
+ * - all: The set must include all values from values (set is a subset of values)
19
+ * - all_reverse: All values must be included in the set (values is a subset of set)
20
+ * - any: Any value from values is in the set
20
21
  */
21
22
  export declare type SetIncludesMode = 'all' | 'any';
22
23
  /**
@@ -31,6 +32,15 @@ export declare type SetIncludesFunction<T> = (valuesToFind: Iterable<T>) => bool
31
32
  * @param mode
32
33
  */
33
34
  export declare function setIncludesFunction<T>(valuesSet: Set<T>, mode?: SetIncludesMode): SetIncludesFunction<T>;
35
+ /**
36
+ * Convenience function for calling setIncludesFunction() and passing the result a value, checking for includion.
37
+ *
38
+ * @param valuesSet
39
+ * @param valuesToFind
40
+ * @param mode
41
+ * @returns
42
+ */
43
+ export declare function setIncludes<T>(valuesSet: Set<T>, valuesToFind: Iterable<T>, mode?: SetIncludesMode): boolean;
34
44
  /**
35
45
  * Returns true if the input array contains any value from the second array.
36
46
  */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setContainsAllValues = exports.containsAllValues = exports.setContainsAnyValue = exports.containsAnyValueFromSet = exports.containsAnyValue = exports.setIncludesFunction = exports.filterValuesFromSet = exports.excludeValuesFromSet = exports.keepValuesFromSet = exports.flattenArrayToSet = exports.symmetricDifferenceKeysSet = exports.symmetricDifferenceKeys = exports.hasDifferentValues = exports.removeFromSet = exports.removeFromSetCopy = exports.addToSet = exports.addToSetCopy = exports.copySetAndDo = exports.asSet = void 0;
3
+ exports.setContainsAllValues = exports.containsAllValues = exports.setContainsAnyValue = exports.containsAnyValueFromSet = exports.containsAnyValue = exports.setIncludes = exports.setIncludesFunction = exports.filterValuesFromSet = exports.excludeValuesFromSet = exports.keepValuesFromSet = exports.flattenArrayToSet = exports.symmetricDifferenceKeysSet = exports.symmetricDifferenceKeys = exports.hasDifferentValues = exports.removeFromSet = exports.removeFromSetCopy = exports.addToSet = exports.addToSetCopy = exports.copySetAndDo = exports.asSet = void 0;
4
4
  const array_1 = require("../array/array");
5
5
  const iterable_1 = require("../iterable/iterable");
6
6
  const extra_set_1 = require("extra-set");
@@ -85,11 +85,23 @@ function setIncludesFunction(valuesSet, mode = 'all') {
85
85
  return (valuesToFind) => fn(valuesSet, valuesToFind);
86
86
  }
87
87
  exports.setIncludesFunction = setIncludesFunction;
88
+ /**
89
+ * Convenience function for calling setIncludesFunction() and passing the result a value, checking for includion.
90
+ *
91
+ * @param valuesSet
92
+ * @param valuesToFind
93
+ * @param mode
94
+ * @returns
95
+ */
96
+ function setIncludes(valuesSet, valuesToFind, mode) {
97
+ return setIncludesFunction(valuesSet, mode)(valuesToFind);
98
+ }
99
+ exports.setIncludes = setIncludes;
88
100
  /**
89
101
  * Returns true if the input array contains any value from the second array.
90
102
  */
91
103
  function containsAnyValue(values, valuesToFind) {
92
- const set = new Set(valuesToFind);
104
+ const set = new Set((0, iterable_1.asIterable)(valuesToFind, false));
93
105
  return containsAnyValueFromSet(values, set);
94
106
  }
95
107
  exports.containsAnyValue = containsAnyValue;
@@ -98,7 +110,7 @@ function containsAnyValueFromSet(values, valuesToFind) {
98
110
  }
99
111
  exports.containsAnyValueFromSet = containsAnyValueFromSet;
100
112
  function setContainsAnyValue(valuesSet, valuesToFind) {
101
- return valuesSet ? Array.from(valuesToFind).findIndex((x) => valuesSet.has(x)) !== -1 : false;
113
+ return valuesSet ? Array.from((0, iterable_1.asIterable)(valuesToFind)).findIndex((x) => valuesSet.has(x)) !== -1 : false;
102
114
  }
103
115
  exports.setContainsAnyValue = setContainsAnyValue;
104
116
  /**
@@ -122,7 +134,7 @@ exports.containsAllValues = containsAllValues;
122
134
  * @returns
123
135
  */
124
136
  function setContainsAllValues(valuesSet, valuesToFind) {
125
- return valuesSet ? Array.from(valuesToFind).findIndex((x) => !valuesSet.has(x)) == -1 : false;
137
+ return valuesSet ? Array.from((0, iterable_1.asIterable)(valuesToFind)).findIndex((x) => !valuesSet.has(x)) == -1 : false;
126
138
  }
127
139
  exports.setContainsAllValues = setContainsAllValues;
128
140
  //# sourceMappingURL=set.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/set/set.ts"],"names":[],"mappings":"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"}
package/src/lib/type.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Merge, PickProperties, StrictOmit, Writable } from 'ts-essentials';
1
+ import { Merge, NonNever, PickProperties, StrictOmit, Writable } from 'ts-essentials';
2
2
  /**
3
3
  * Class typing, restricted to types that have a constructor via the new keyword.
4
4
  */
@@ -46,6 +46,16 @@ export declare type RemoveIndex<T> = {
46
46
  * https://stackoverflow.com/questions/51954558/how-can-i-remove-a-wider-type-from-a-union-type-without-removing-its-subtypes-in/51955852#51955852
47
47
  */
48
48
  export declare type KnownKeys<T> = keyof RemoveIndex<T>;
49
+ /**
50
+ * Returns only properties that have string keys.
51
+ */
52
+ export declare type StringKeyProperties<T> = NonNever<{
53
+ [K in keyof T]: K extends string ? T[K] : never;
54
+ }>;
55
+ /**
56
+ * Returns the name of all keys that are strings.
57
+ */
58
+ export declare type StringKeyPropertyKeys<T> = keyof StringKeyProperties<T>;
49
59
  /**
50
60
  * Makes a readonly type able to be configured. Useful for configurating readonly types before they are used.
51
61
  */
package/test/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ # [6.0.0](https://github.com/dereekb/dbx-components/compare/v5.3.0-dev...v6.0.0) (2022-06-03)
6
+
7
+
8
+
5
9
  # [5.3.0](https://github.com/dereekb/dbx-components/compare/v5.2.1-dev...v5.3.0) (2022-05-30)
6
10
 
7
11
 
package/test/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@dereekb/util/test",
3
- "version": "5.3.0",
3
+ "version": "6.0.0",
4
4
  "main": "./src/index.js",
5
5
  "typings": "./src/index.d.ts",
6
6
  "dependencies": {},
7
7
  "peerDependencies": {
8
- "@dereekb/util": "5.3.0",
8
+ "@dereekb/util": "6.0.0",
9
9
  "make-error": "^1.3.0",
10
10
  "extra-set": "^2.2.11",
11
11
  "tslib": "^2.0.0"