@utiliread/primitives 1.0.0-76 → 1.0.0-78

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.
Files changed (119) hide show
  1. package/dist/cjs/aggregate-id.js +3 -0
  2. package/dist/cjs/aggregate-id.js.map +1 -0
  3. package/dist/cjs/consumption-type-id.js +3 -0
  4. package/dist/cjs/consumption-type-id.js.map +1 -0
  5. package/dist/cjs/index.js +22 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/measure-id.js +3 -0
  8. package/dist/cjs/measure-id.js.map +1 -0
  9. package/dist/cjs/number-formatter.js +80 -0
  10. package/dist/cjs/number-formatter.js.map +1 -0
  11. package/dist/cjs/number-formatter.spec.js +512 -0
  12. package/dist/cjs/number-formatter.spec.js.map +1 -0
  13. package/dist/cjs/optional.js +3 -0
  14. package/dist/cjs/optional.js.map +1 -0
  15. package/dist/cjs/precision-number.js +42 -0
  16. package/dist/cjs/precision-number.js.map +1 -0
  17. package/dist/cjs/precision-number.spec.js +27 -0
  18. package/dist/cjs/precision-number.spec.js.map +1 -0
  19. package/dist/cjs/register-convention.js +58 -0
  20. package/dist/cjs/register-convention.js.map +1 -0
  21. package/dist/cjs/register-convention.spec.js +39 -0
  22. package/dist/cjs/register-convention.spec.js.map +1 -0
  23. package/dist/cjs/register-definition.js +3 -0
  24. package/dist/cjs/register-definition.js.map +1 -0
  25. package/dist/cjs/register-id.js +3 -0
  26. package/dist/cjs/register-id.js.map +1 -0
  27. package/dist/cjs/register-library.js +53 -0
  28. package/dist/cjs/register-library.js.map +1 -0
  29. package/dist/cjs/register-library.spec.js +37 -0
  30. package/dist/cjs/register-library.spec.js.map +1 -0
  31. package/dist/cjs/register-pack.js +3 -0
  32. package/dist/cjs/register-pack.js.map +1 -0
  33. package/dist/cjs/register-utils.js +8 -0
  34. package/dist/cjs/register-utils.js.map +1 -0
  35. package/dist/cjs/repository.js +26 -0
  36. package/dist/cjs/repository.js.map +1 -0
  37. package/dist/cjs/repository.spec.js +21 -0
  38. package/dist/cjs/repository.spec.js.map +1 -0
  39. package/dist/cjs/step.js +45 -0
  40. package/dist/cjs/step.js.map +1 -0
  41. package/dist/cjs/step.spec.js +29 -0
  42. package/dist/cjs/step.spec.js.map +1 -0
  43. package/dist/cjs/time-or-rule.js +19 -0
  44. package/dist/cjs/time-or-rule.js.map +1 -0
  45. package/dist/cjs/unit-id.js +14 -0
  46. package/dist/cjs/unit-id.js.map +1 -0
  47. package/dist/esm/aggregate-id.d.ts +1 -0
  48. package/dist/esm/aggregate-id.js +2 -0
  49. package/dist/esm/aggregate-id.js.map +1 -0
  50. package/dist/esm/consumption-type-id.d.ts +1 -0
  51. package/dist/esm/consumption-type-id.js +2 -0
  52. package/dist/esm/consumption-type-id.js.map +1 -0
  53. package/dist/esm/index.d.ts +16 -0
  54. package/dist/esm/index.js +10 -0
  55. package/dist/esm/index.js.map +1 -0
  56. package/dist/esm/measure-id.d.ts +1 -0
  57. package/dist/esm/measure-id.js +2 -0
  58. package/dist/esm/measure-id.js.map +1 -0
  59. package/dist/esm/number-formatter.d.ts +17 -0
  60. package/dist/esm/number-formatter.js +77 -0
  61. package/dist/esm/number-formatter.js.map +1 -0
  62. package/dist/esm/number-formatter.spec.d.ts +1 -0
  63. package/dist/esm/number-formatter.spec.js +510 -0
  64. package/dist/esm/number-formatter.spec.js.map +1 -0
  65. package/dist/esm/optional.d.ts +1 -0
  66. package/dist/esm/optional.js +2 -0
  67. package/dist/esm/optional.js.map +1 -0
  68. package/dist/esm/precision-number.d.ts +11 -0
  69. package/dist/esm/precision-number.js +38 -0
  70. package/dist/esm/precision-number.js.map +1 -0
  71. package/dist/esm/precision-number.spec.d.ts +1 -0
  72. package/dist/esm/precision-number.spec.js +25 -0
  73. package/dist/esm/precision-number.spec.js.map +1 -0
  74. package/dist/esm/register-convention.d.ts +14 -0
  75. package/dist/esm/register-convention.js +54 -0
  76. package/dist/esm/register-convention.js.map +1 -0
  77. package/dist/esm/register-convention.spec.d.ts +1 -0
  78. package/dist/esm/register-convention.spec.js +37 -0
  79. package/dist/esm/register-convention.spec.js.map +1 -0
  80. package/dist/esm/register-definition.d.ts +13 -0
  81. package/dist/esm/register-definition.js +2 -0
  82. package/dist/esm/register-definition.js.map +1 -0
  83. package/dist/esm/register-id.d.ts +1 -0
  84. package/dist/esm/register-id.js +2 -0
  85. package/dist/esm/register-id.js.map +1 -0
  86. package/dist/esm/register-library.d.ts +15 -0
  87. package/dist/esm/register-library.js +50 -0
  88. package/dist/esm/register-library.js.map +1 -0
  89. package/dist/esm/register-library.spec.d.ts +1 -0
  90. package/dist/esm/register-library.spec.js +35 -0
  91. package/dist/esm/register-library.spec.js.map +1 -0
  92. package/dist/esm/register-pack.d.ts +4 -0
  93. package/dist/esm/register-pack.js +2 -0
  94. package/dist/esm/register-pack.js.map +1 -0
  95. package/dist/esm/register-utils.d.ts +3 -0
  96. package/dist/esm/register-utils.js +4 -0
  97. package/dist/esm/register-utils.js.map +1 -0
  98. package/dist/esm/repository.d.ts +9 -0
  99. package/dist/esm/repository.js +22 -0
  100. package/dist/esm/repository.js.map +1 -0
  101. package/dist/esm/repository.spec.d.ts +1 -0
  102. package/dist/esm/repository.spec.js +19 -0
  103. package/dist/esm/repository.spec.js.map +1 -0
  104. package/dist/esm/step.d.ts +15 -0
  105. package/dist/esm/step.js +42 -0
  106. package/dist/esm/step.js.map +1 -0
  107. package/dist/esm/step.spec.d.ts +1 -0
  108. package/dist/esm/step.spec.js +27 -0
  109. package/dist/esm/step.spec.js.map +1 -0
  110. package/dist/esm/time-or-rule.d.ts +7 -0
  111. package/dist/esm/time-or-rule.js +16 -0
  112. package/dist/esm/time-or-rule.js.map +1 -0
  113. package/dist/esm/unit-id.d.ts +2 -0
  114. package/dist/esm/unit-id.js +11 -0
  115. package/dist/esm/unit-id.js.map +1 -0
  116. package/locales/da/registers.json +5 -0
  117. package/locales/en/registers.json +5 -0
  118. package/package.json +1 -1
  119. package/src/register-id.ts +1 -0
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrecisionNumber = void 0;
4
+ const _1 = require(".");
5
+ const number_formatter_1 = require("./number-formatter");
6
+ class PrecisionNumber {
7
+ constructor(value, precision) {
8
+ this.value = value;
9
+ this.precision = precision;
10
+ }
11
+ static parse(input) {
12
+ let normalized = input
13
+ .trim()
14
+ .replace(",", ".")
15
+ .replace(number_formatter_1.localeDecimalSeparator, _1.invariantDecimalSeparator);
16
+ if (normalized.endsWith(_1.invariantDecimalSeparator)) {
17
+ normalized += "0";
18
+ }
19
+ const precision = normalized
20
+ .replace(".", "")
21
+ .replace("+", "")
22
+ .replace("-", "").length;
23
+ return new PrecisionNumber(parseFloat(normalized), precision);
24
+ }
25
+ toString() {
26
+ return this.value.toString();
27
+ }
28
+ toFixed() {
29
+ return number_formatter_1.NumberFormatter.toFixed(this.value, this.precision);
30
+ }
31
+ toPrecision() {
32
+ return number_formatter_1.NumberFormatter.toPrecision(this.value, this.precision);
33
+ }
34
+ toLocaleFixed() {
35
+ return number_formatter_1.NumberFormatter.toLocaleFixed(this.value, this.precision);
36
+ }
37
+ toLocalePrecision() {
38
+ return number_formatter_1.NumberFormatter.toLocalePrecision(this.value, this.precision);
39
+ }
40
+ }
41
+ exports.PrecisionNumber = PrecisionNumber;
42
+ //# sourceMappingURL=precision-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"precision-number.js","sourceRoot":"","sources":["../../src/precision-number.ts"],"names":[],"mappings":";;;AAAA,wBAA8C;AAC9C,yDAA6E;AAE7E,MAAa,eAAe;IACxB,YACW,KAAa,EACb,SAAiB;QADjB,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAQ;IACzB,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,KAAa;QACtB,IAAI,UAAU,GAAG,KAAK;aACjB,IAAI,EAAE;aACN,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;aACjB,OAAO,CAAC,yCAAsB,EAAE,4BAAyB,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,QAAQ,CAAC,4BAAyB,CAAC,EAAE,CAAC;YACjD,UAAU,IAAI,GAAG,CAAC;QACtB,CAAC;QACD,MAAM,SAAS,GAAG,UAAU;aACvB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;aAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;aAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QAC7B,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,OAAO;QACH,OAAO,kCAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,WAAW;QACP,OAAO,kCAAe,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,aAAa;QACT,OAAO,kCAAe,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,iBAAiB;QACb,OAAO,kCAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;CACJ;AAxCD,0CAwCC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const precision_number_1 = require("./precision-number");
4
+ const chai_1 = require("@esm-bundle/chai");
5
+ describe("precision-number", () => {
6
+ it("should not parse ''", () => {
7
+ const number = precision_number_1.PrecisionNumber.parse("");
8
+ (0, chai_1.expect)(Number.isNaN(number.value)).to.equal(true);
9
+ (0, chai_1.expect)(number.precision).to.equal(0);
10
+ });
11
+ it("should parse '1'", () => {
12
+ const number = precision_number_1.PrecisionNumber.parse("1");
13
+ (0, chai_1.expect)(number.value).to.equal(1);
14
+ (0, chai_1.expect)(number.precision).to.equal(1);
15
+ });
16
+ it("should parse '1.'", () => {
17
+ const number = precision_number_1.PrecisionNumber.parse("1.");
18
+ (0, chai_1.expect)(number.value).to.equal(1);
19
+ (0, chai_1.expect)(number.precision).to.equal(2);
20
+ });
21
+ it("should parse '1.0'", () => {
22
+ const number = precision_number_1.PrecisionNumber.parse("1.0");
23
+ (0, chai_1.expect)(number.value).to.equal(1);
24
+ (0, chai_1.expect)(number.precision).to.equal(2);
25
+ });
26
+ });
27
+ //# sourceMappingURL=precision-number.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"precision-number.spec.js","sourceRoot":"","sources":["../../src/precision-number.spec.ts"],"names":[],"mappings":";;AAAA,yDAAqD;AACrD,2CAA0C;AAE1C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC3B,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,kCAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAA,aAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegisterConvention = exports.isPrefix = exports.aggregatePrefixes = void 0;
4
+ const register_utils_1 = require("./register-utils");
5
+ exports.aggregatePrefixes = {
6
+ instant: "",
7
+ diff: "diff",
8
+ min: "min",
9
+ max: "max",
10
+ avg: "avg",
11
+ sum: "sum",
12
+ cnt: "cnt",
13
+ ssq: "ssq",
14
+ };
15
+ class Convention {
16
+ getAggregate(register) {
17
+ const registerId = (0, register_utils_1.getRegisterId)(register);
18
+ // Brute force all prefixes - if none of them, then it must be instant.
19
+ for (const aggregateString of Object.keys(exports.aggregatePrefixes)) {
20
+ const aggregate = aggregateString;
21
+ const prefix = exports.aggregatePrefixes[aggregate];
22
+ if (prefix.length && isPrefix(registerId, prefix)) {
23
+ // Not instant - it was any of the others.
24
+ return aggregate;
25
+ }
26
+ }
27
+ return "instant";
28
+ }
29
+ toInstant(register) {
30
+ const registerId = (0, register_utils_1.getRegisterId)(register);
31
+ for (const prefix of Object.values(exports.aggregatePrefixes)) {
32
+ if (prefix.length && isPrefix(registerId, prefix)) {
33
+ const tail = registerId.substr(prefix.length);
34
+ return (tail[0].toLowerCase() + tail.substr(1));
35
+ }
36
+ }
37
+ return registerId;
38
+ }
39
+ toAggregate(register, aggregate) {
40
+ const instantRegisterId = this.toInstant(register);
41
+ if (aggregate === "instant") {
42
+ return instantRegisterId;
43
+ }
44
+ const prefix = exports.aggregatePrefixes[aggregate];
45
+ return ((prefix +
46
+ instantRegisterId[0].toUpperCase() +
47
+ instantRegisterId.substr(1)));
48
+ }
49
+ }
50
+ function isPrefix(registerId, prefix) {
51
+ return (registerId.startsWith(prefix) && isUppercase(registerId[prefix.length]));
52
+ }
53
+ exports.isPrefix = isPrefix;
54
+ function isUppercase(input) {
55
+ return input.toUpperCase() === input;
56
+ }
57
+ exports.RegisterConvention = new Convention();
58
+ //# sourceMappingURL=register-convention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-convention.js","sourceRoot":"","sources":["../../src/register-convention.ts"],"names":[],"mappings":";;;AAGA,qDAAiD;AAEpC,QAAA,iBAAiB,GAA6C;IACvE,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,UAAU;IACL,YAAY,CAAC,QAAyC;QACzD,MAAM,UAAU,GAAG,IAAA,8BAAa,EAAC,QAAQ,CAAC,CAAC;QAC3C,uEAAuE;QACvE,KAAK,MAAM,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,yBAAiB,CAAC,EAAE,CAAC;YAC3D,MAAM,SAAS,GAAgB,eAAe,CAAC;YAC/C,MAAM,MAAM,GAAG,yBAAiB,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChD,0CAA0C;gBAC1C,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,QAAyC;QAC/C,MAAM,UAAU,GAAG,IAAA,8BAAa,EAAC,QAAQ,CAAC,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,yBAAiB,CAAC,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9C,OAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,WAAW,CACP,QAAyC,EACzC,SAAsB;QAEtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,iBAAiB,CAAC;QAC7B,CAAC;QACD,MAAM,MAAM,GAAG,yBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAmB,CACf,CAAC,MAAM;YACH,iBAAiB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YAClC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACnC,CAAC;IACN,CAAC;CACJ;AAED,SAAgB,QAAQ,CAAC,UAAsB,EAAE,MAAc;IAC3D,OAAO,CACH,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAC1E,CAAC;AACN,CAAC;AAJD,4BAIC;AAED,SAAS,WAAW,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;AACzC,CAAC;AAEY,QAAA,kBAAkB,GAAG,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const register_convention_1 = require("./register-convention");
4
+ const chai_1 = require("@esm-bundle/chai");
5
+ describe("getAggregate", () => {
6
+ it("instant register is instant", () => {
7
+ const result = register_convention_1.RegisterConvention.getAggregate("flowTemperature");
8
+ (0, chai_1.expect)(result).to.equal("instant");
9
+ });
10
+ it("avg register is avg", () => {
11
+ const result = register_convention_1.RegisterConvention.getAggregate("avgFlowTemperature");
12
+ (0, chai_1.expect)(result).to.equal("avg");
13
+ });
14
+ });
15
+ describe("toInstant", () => {
16
+ it("should convert instant", () => {
17
+ const registerId = register_convention_1.RegisterConvention.toInstant("flowTemperature");
18
+ (0, chai_1.expect)(registerId).to.equal("flowTemperature");
19
+ });
20
+ it("should convert aggregate", () => {
21
+ const registerId = register_convention_1.RegisterConvention.toInstant("avgFlowTemperature");
22
+ (0, chai_1.expect)(registerId).to.equal("flowTemperature");
23
+ });
24
+ });
25
+ describe("toAggregate", () => {
26
+ it("should convert instant to aggregate", () => {
27
+ const registerId = register_convention_1.RegisterConvention.toAggregate("flowTemperature", "avg");
28
+ (0, chai_1.expect)(registerId).to.equal("avgFlowTemperature");
29
+ });
30
+ it("should convert aggregate to same aggregate", () => {
31
+ const registerId = register_convention_1.RegisterConvention.toAggregate("avgFlowTemperature", "avg");
32
+ (0, chai_1.expect)(registerId).to.equal("avgFlowTemperature");
33
+ });
34
+ it("should convert aggregate to other aggregate", () => {
35
+ const registerId = register_convention_1.RegisterConvention.toAggregate("avgFlowTemperature", "min");
36
+ (0, chai_1.expect)(registerId).to.equal("minFlowTemperature");
37
+ });
38
+ });
39
+ //# sourceMappingURL=register-convention.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-convention.spec.js","sourceRoot":"","sources":["../../src/register-convention.spec.ts"],"names":[],"mappings":";;AAAA,+DAA2D;AAC3D,2CAA0C;AAE1C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,wCAAkB,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAClE,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC3B,MAAM,MAAM,GAAG,wCAAkB,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QACrE,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,UAAU,GAAG,wCAAkB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnE,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAChC,MAAM,UAAU,GAAG,wCAAkB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,UAAU,GAAG,wCAAkB,CAAC,WAAW,CAC7C,iBAAiB,EACjB,KAAK,CACR,CAAC;QACF,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,UAAU,GAAG,wCAAkB,CAAC,WAAW,CAC7C,oBAAoB,EACpB,KAAK,CACR,CAAC;QACF,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,UAAU,GAAG,wCAAkB,CAAC,WAAW,CAC7C,oBAAoB,EACpB,KAAK,CACR,CAAC;QACF,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=register-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-definition.js","sourceRoot":"","sources":["../../src/register-definition.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=register-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-id.js","sourceRoot":"","sources":["../../src/register-id.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegisterLibrary = void 0;
4
+ class Library {
5
+ constructor() {
6
+ this.definitions = {};
7
+ }
8
+ add(...definitions) {
9
+ for (const definition of definitions) {
10
+ if (isDefinition(definition)) {
11
+ this.tryAdd(definition);
12
+ }
13
+ else {
14
+ for (const definitionInPack of Object.values(definition)) {
15
+ this.tryAdd(definitionInPack);
16
+ }
17
+ }
18
+ }
19
+ }
20
+ tryAdd(definition) {
21
+ if (!this.definitions[definition.id]) {
22
+ this.definitions[definition.id] = definition;
23
+ return true;
24
+ }
25
+ return false;
26
+ }
27
+ has(id) {
28
+ return !!this.definitions[id];
29
+ }
30
+ tryGet(id) {
31
+ return this.definitions[id];
32
+ }
33
+ get(id) {
34
+ const definition = this.definitions[id];
35
+ if (!definition) {
36
+ throw new Error(`Defintion was not loaded for register ${id}`);
37
+ }
38
+ return definition;
39
+ }
40
+ all() {
41
+ return Object.values(this.definitions).map((x) => x);
42
+ }
43
+ reset() {
44
+ this.definitions = {};
45
+ }
46
+ }
47
+ function isDefinition(definitionOrPack) {
48
+ return !!(definitionOrPack.id &&
49
+ definitionOrPack.aggregate &&
50
+ definitionOrPack.units);
51
+ }
52
+ exports.RegisterLibrary = new Library();
53
+ //# sourceMappingURL=register-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-library.js","sourceRoot":"","sources":["../../src/register-library.ts"],"names":[],"mappings":";;;AAIA,MAAM,OAAO;IAAb;QACY,gBAAW,GACf,EAAE,CAAC;IA4CX,CAAC;IA3CU,GAAG,CAAC,GAAG,WAAkD;QAC5D,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,UAA8B;QACzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;YAC7C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,GAAG,CAAC,EAAc;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,EAAc;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEM,GAAG,CAAC,EAAc;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,GAAG;QACN,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;CACJ;AAED,SAAS,YAAY,CACjB,gBAAmD;IAEnD,OAAO,CAAC,CAAC,CACL,gBAAgB,CAAC,EAAE;QACnB,gBAAgB,CAAC,SAAS;QAC1B,gBAAgB,CAAC,KAAK,CACzB,CAAC;AACN,CAAC;AAEY,QAAA,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const register_library_1 = require("./register-library");
4
+ const chai_1 = require("@esm-bundle/chai");
5
+ const volume = {
6
+ id: "volume",
7
+ measure: "volume",
8
+ aggregate: "instant",
9
+ units: ["cubicMeter"],
10
+ };
11
+ describe("library", () => {
12
+ beforeEach(() => {
13
+ register_library_1.RegisterLibrary.reset();
14
+ });
15
+ it("should get added definition", () => {
16
+ register_library_1.RegisterLibrary.add(volume);
17
+ const definition = register_library_1.RegisterLibrary.get("volume");
18
+ (0, chai_1.expect)(definition.id).to.equal("volume");
19
+ });
20
+ it("should add all definitions in pack", () => {
21
+ register_library_1.RegisterLibrary.add({
22
+ someRandomKey: volume,
23
+ });
24
+ const definition = register_library_1.RegisterLibrary.get("volume");
25
+ (0, chai_1.expect)(definition.id).to.equal("volume");
26
+ });
27
+ it("should throw when getting not added register", () => {
28
+ (0, chai_1.expect)(() => register_library_1.RegisterLibrary.get("volume")).to.throw();
29
+ });
30
+ it("should return all definitions when invoking all()", () => {
31
+ register_library_1.RegisterLibrary.add(volume);
32
+ register_library_1.RegisterLibrary.add(volume); // Only added once.
33
+ const all = register_library_1.RegisterLibrary.all();
34
+ (0, chai_1.expect)(all.length).to.equal(1);
35
+ });
36
+ });
37
+ //# sourceMappingURL=register-library.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-library.spec.js","sourceRoot":"","sources":["../../src/register-library.spec.ts"],"names":[],"mappings":";;AACA,yDAAqD;AACrD,2CAA0C;AAE1C,MAAM,MAAM,GAAuB;IAC/B,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,CAAC,YAAY,CAAC;CACxB,CAAC;AAEF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,UAAU,CAAC,GAAG,EAAE;QACZ,kCAAe,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,kCAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,kCAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAA,aAAM,EAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,kCAAe,CAAC,GAAG,CAAC;YAChB,aAAa,EAAE,MAAM;SACxB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,kCAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAA,aAAM,EAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,kCAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,kCAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,kCAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB;QAChD,MAAM,GAAG,GAAG,kCAAe,CAAC,GAAG,EAAE,CAAC;QAClC,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=register-pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-pack.js","sourceRoot":"","sources":["../../src/register-pack.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRegisterId = void 0;
4
+ function getRegisterId(register) {
5
+ return typeof register === "string" ? register : register.id;
6
+ }
7
+ exports.getRegisterId = getRegisterId;
8
+ //# sourceMappingURL=register-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-utils.js","sourceRoot":"","sources":["../../src/register-utils.ts"],"names":[],"mappings":";;;AAGA,SAAgB,aAAa,CAAC,QAAyC;IACnE,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjE,CAAC;AAFD,sCAEC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Repository = void 0;
4
+ function Repository(repoOrTeam, name) {
5
+ if (name) {
6
+ return `${repoOrTeam}/${name}`;
7
+ }
8
+ else if (repoOrTeam.indexOf("/") > 0) {
9
+ return repoOrTeam;
10
+ }
11
+ else {
12
+ throw new TypeError("Invalid repository format");
13
+ }
14
+ }
15
+ exports.Repository = Repository;
16
+ (function (Repository) {
17
+ function split(repo) {
18
+ const parts = repo.split("/");
19
+ return {
20
+ team: parts[0],
21
+ name: parts[1],
22
+ };
23
+ }
24
+ Repository.split = split;
25
+ })(Repository || (exports.Repository = Repository = {}));
26
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repository.ts"],"names":[],"mappings":";;;AAKA,SAAgB,UAAU,CAAC,UAAkB,EAAE,IAAa;IACxD,IAAI,IAAI,EAAE,CAAC;QACP,OAAmB,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC;IAC/C,CAAC;SAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,OAAmB,UAAU,CAAC;IAClC,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACrD,CAAC;AACL,CAAC;AARD,gCAQC;AAED,WAAiB,UAAU;IACvB,SAAgB,KAAK,CAAC,IAAgB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO;YACH,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACjB,CAAC;IACN,CAAC;IANe,gBAAK,QAMpB,CAAA;AACL,CAAC,EARgB,UAAU,0BAAV,UAAU,QAQ1B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const repository_1 = require("./repository");
4
+ const chai_1 = require("@esm-bundle/chai");
5
+ describe("ctor", () => {
6
+ it("creates", () => {
7
+ (0, chai_1.expect)((0, repository_1.Repository)("gpkv", "gjoel")).to.equal("gpkv/gjoel");
8
+ (0, chai_1.expect)((0, repository_1.Repository)("gpkv/gjoel")).to.equal("gpkv/gjoel");
9
+ });
10
+ it("throws if wrong format", () => {
11
+ (0, chai_1.expect)(() => (0, repository_1.Repository)("invalid")).to.throw();
12
+ });
13
+ });
14
+ describe("split", () => {
15
+ it("splits into correct parts", () => {
16
+ const { team, name } = repository_1.Repository.split((0, repository_1.Repository)("gpkv", "gjoel"));
17
+ (0, chai_1.expect)(team).to.equal("gpkv");
18
+ (0, chai_1.expect)(name).to.equal("gjoel");
19
+ });
20
+ });
21
+ //# sourceMappingURL=repository.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.spec.js","sourceRoot":"","sources":["../../src/repository.spec.ts"],"names":[],"mappings":";;AAAA,6CAA0C;AAC1C,2CAA0C;AAE1C,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACf,IAAA,aAAM,EAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAA,aAAM,EAAC,IAAA,uBAAU,EAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,IAAA,uBAAU,EAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACnB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,uBAAU,CAAC,KAAK,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Step = exports.DayOfWeek = void 0;
4
+ const luxon_1 = require("luxon");
5
+ var DayOfWeek;
6
+ (function (DayOfWeek) {
7
+ DayOfWeek[DayOfWeek["Monday"] = 1] = "Monday";
8
+ DayOfWeek[DayOfWeek["Tuesday"] = 2] = "Tuesday";
9
+ DayOfWeek[DayOfWeek["Wednesday"] = 3] = "Wednesday";
10
+ DayOfWeek[DayOfWeek["Thursday"] = 4] = "Thursday";
11
+ DayOfWeek[DayOfWeek["Friday"] = 5] = "Friday";
12
+ DayOfWeek[DayOfWeek["Saturday"] = 6] = "Saturday";
13
+ DayOfWeek[DayOfWeek["Sunday"] = 7] = "Sunday";
14
+ })(DayOfWeek || (exports.DayOfWeek = DayOfWeek = {}));
15
+ var Step;
16
+ (function (Step) {
17
+ function startOf(dateTime, step, firstDayOfWeek) {
18
+ if (step === "week") {
19
+ const value = dateTime
20
+ .startOf("day")
21
+ .set({ weekday: firstDayOfWeek !== null && firstDayOfWeek !== void 0 ? firstDayOfWeek : DayOfWeek.Monday });
22
+ return value > dateTime ? value.minus({ days: 7 }) : value;
23
+ }
24
+ else {
25
+ return dateTime.startOf(step);
26
+ }
27
+ }
28
+ Step.startOf = startOf;
29
+ function asDuration(step, amount = 1) {
30
+ switch (step) {
31
+ case "hour":
32
+ return luxon_1.Duration.fromObject({ hours: amount });
33
+ case "day":
34
+ return luxon_1.Duration.fromObject({ days: amount });
35
+ case "week":
36
+ return luxon_1.Duration.fromObject({ days: 7 * amount });
37
+ case "month":
38
+ return luxon_1.Duration.fromObject({ months: amount });
39
+ case "year":
40
+ return luxon_1.Duration.fromObject({ years: amount });
41
+ }
42
+ }
43
+ Step.asDuration = asDuration;
44
+ })(Step || (exports.Step = Step = {}));
45
+ //# sourceMappingURL=step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../../src/step.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAI3C,IAAY,SAQX;AARD,WAAY,SAAS;IACjB,6CAAU,CAAA;IACV,+CAAW,CAAA;IACX,mDAAa,CAAA;IACb,iDAAY,CAAA;IACZ,6CAAU,CAAA;IACV,iDAAY,CAAA;IACZ,6CAAU,CAAA;AACd,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB;AAED,IAAiB,IAAI,CA8BpB;AA9BD,WAAiB,IAAI;IACjB,SAAgB,OAAO,CACnB,QAAkB,EAClB,IAAU,EACV,cAA0B;QAE1B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,QAAQ;iBACjB,OAAO,CAAC,KAAK,CAAC;iBACd,GAAG,CAAC,EAAE,OAAO,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,OAAO,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,CAAC;aAAM,CAAC;YACJ,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAbe,YAAO,UAatB,CAAA;IAED,SAAgB,UAAU,CAAC,IAAU,EAAE,MAAM,GAAG,CAAC;QAC7C,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,MAAM;gBACP,OAAO,gBAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAClD,KAAK,KAAK;gBACN,OAAO,gBAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,KAAK,MAAM;gBACP,OAAO,gBAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;YACrD,KAAK,OAAO;gBACR,OAAO,gBAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACnD,KAAK,MAAM;gBACP,OAAO,gBAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAbe,eAAU,aAazB,CAAA;AACL,CAAC,EA9BgB,IAAI,oBAAJ,IAAI,QA8BpB"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const step_1 = require("./step");
4
+ const luxon_1 = require("luxon");
5
+ const chai_1 = require("@esm-bundle/chai");
6
+ describe("startOf", () => {
7
+ it("returns start of day", () => {
8
+ const dt = luxon_1.DateTime.fromISO("2020-01-11T05:00:00+01:00");
9
+ const result = step_1.Step.startOf(dt, "day");
10
+ (0, chai_1.expect)(+result).to.equal(+luxon_1.DateTime.fromISO("2020-01-11T00:00:00+01:00"));
11
+ });
12
+ it("returns previous monday from saturday", () => {
13
+ const dt = luxon_1.DateTime.fromISO("2020-01-11T05:00:00+01:00");
14
+ const result = step_1.Step.startOf(dt, "week", step_1.DayOfWeek.Monday);
15
+ (0, chai_1.expect)(+result).to.equal(+luxon_1.DateTime.fromISO("2020-01-06T00:00:00+01:00"));
16
+ });
17
+ it("returns same monday from monday with hour", () => {
18
+ const dt = luxon_1.DateTime.fromISO("2020-01-13T05:00:00+01:00");
19
+ const result = step_1.Step.startOf(dt, "week", step_1.DayOfWeek.Monday);
20
+ (0, chai_1.expect)(+result).to.equal(+luxon_1.DateTime.fromISO("2020-01-13T00:00:00+01:00"));
21
+ });
22
+ });
23
+ describe("asDuration", () => {
24
+ it("should return equivalent duration", () => {
25
+ const duration = step_1.Step.asDuration("week");
26
+ (0, chai_1.expect)(duration.days).to.equal(7);
27
+ });
28
+ });
29
+ //# sourceMappingURL=step.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.spec.js","sourceRoot":"","sources":["../../src/step.spec.ts"],"names":[],"mappings":";;AAAA,iCAAyC;AAEzC,iCAAiC;AACjC,2CAA0C;AAE1C,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,MAAM,EAAE,GAAG,gBAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,WAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CACpB,CAAC,gBAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,CACjD,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,EAAE,GAAG,gBAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,WAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAA,aAAM,EAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CACpB,CAAC,gBAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,CACjD,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,EAAE,GAAG,gBAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,WAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAA,aAAM,EAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CACpB,CAAC,gBAAQ,CAAC,OAAO,CAAC,2BAA2B,CAAC,CACjD,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,MAAM,QAAQ,GAAG,WAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,IAAA,aAAM,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimeOrRule = void 0;
4
+ var TimeOrRule;
5
+ (function (TimeOrRule) {
6
+ function isTime(input) {
7
+ return typeof input !== "string";
8
+ }
9
+ TimeOrRule.isTime = isTime;
10
+ function isRule(input) {
11
+ return typeof input === "string";
12
+ }
13
+ TimeOrRule.isRule = isRule;
14
+ function asJSON(input) {
15
+ return isRule(input) ? input : input.toJSON();
16
+ }
17
+ TimeOrRule.asJSON = asJSON;
18
+ })(TimeOrRule || (exports.TimeOrRule = TimeOrRule = {}));
19
+ //# sourceMappingURL=time-or-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-or-rule.js","sourceRoot":"","sources":["../../src/time-or-rule.ts"],"names":[],"mappings":";;;AAIA,IAAiB,UAAU,CAY1B;AAZD,WAAiB,UAAU;IACvB,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IAFe,iBAAM,SAErB,CAAA;AACL,CAAC,EAZgB,UAAU,0BAAV,UAAU,QAY1B"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.energyUnits = void 0;
4
+ exports.energyUnits = [
5
+ "milliWattHour",
6
+ "wattHour",
7
+ "kiloWattHour",
8
+ "megaWattHour",
9
+ "gigaWattHour",
10
+ "calorie",
11
+ "kiloCalorie",
12
+ "megaCalorie",
13
+ ];
14
+ //# sourceMappingURL=unit-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit-id.js","sourceRoot":"","sources":["../../src/unit-id.ts"],"names":[],"mappings":";;;AAoGa,QAAA,WAAW,GAAa;IACjC,eAAe;IACf,UAAU;IACV,cAAc;IACd,cAAc;IACd,cAAc;IACd,SAAS;IACT,aAAa;IACb,aAAa;CAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export type AggregateId = "instant" | "diff" | "min" | "max" | "avg" | "sum" | "cnt" | "ssq";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=aggregate-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-id.js","sourceRoot":"","sources":["../../src/aggregate-id.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export type ConsumptionTypeId = "none" | "heat" | "water" | "cooling" | "electricity" | "infrastructure" | "all";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=consumption-type-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumption-type-id.js","sourceRoot":"","sources":["../../src/consumption-type-id.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { ConsumptionTypeId } from "./consumption-type-id";
2
+ import type { RegisterId } from "./register-id";
3
+ import type { UnitId } from "./unit-id";
4
+ import { RegisterLibrary } from "./register-library";
5
+ import type { RegisterDefinition } from "./register-definition";
6
+ import { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator } from "./number-formatter";
7
+ import { RegisterConvention } from "./register-convention";
8
+ import type { AggregateId } from "./aggregate-id";
9
+ import type { MeasureId } from "./measure-id";
10
+ import { Step, DayOfWeek } from "./step";
11
+ import { TimeOrRule } from "./time-or-rule";
12
+ import { PrecisionNumber } from "./precision-number";
13
+ import "./repository";
14
+ import { Repository } from "./repository";
15
+ import type { Optional } from "./optional";
16
+ export { AggregateId, ConsumptionTypeId, DayOfWeek, MeasureId, NumberFormatter, PrecisionNumber, RegisterConvention, RegisterDefinition, RegisterId, RegisterLibrary, Repository, Step, TimeOrRule, UnitId, invariantDecimalSeparator, localeDecimalSeparator, Optional, };
@@ -0,0 +1,10 @@
1
+ import { RegisterLibrary } from "./register-library";
2
+ import { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator, } from "./number-formatter";
3
+ import { RegisterConvention } from "./register-convention";
4
+ import { Step, DayOfWeek } from "./step";
5
+ import { TimeOrRule } from "./time-or-rule";
6
+ import { PrecisionNumber } from "./precision-number";
7
+ import "./repository"; // We need this to get the Repository namespace exported
8
+ import { Repository } from "./repository";
9
+ export { DayOfWeek, NumberFormatter, PrecisionNumber, RegisterConvention, RegisterLibrary, Repository, Step, TimeOrRule, invariantDecimalSeparator, localeDecimalSeparator, };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACH,eAAe,EACf,yBAAyB,EACzB,sBAAsB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,cAAc,CAAC,CAAC,wDAAwD;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAGH,SAAS,EAET,eAAe,EACf,eAAe,EACf,kBAAkB,EAGlB,eAAe,EACf,UAAU,EACV,IAAI,EACJ,UAAU,EAEV,yBAAyB,EACzB,sBAAsB,GAEzB,CAAC"}
@@ -0,0 +1 @@
1
+ export type MeasureId = "none" | "duration" | "energy" | "humidity" | "mass" | "massFlow" | "pressure" | "power" | "reactiveEnergy" | "reactivePower" | "temperature" | "time" | "volume" | "volumeFlow";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=measure-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure-id.js","sourceRoot":"","sources":["../../src/measure-id.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ export declare const invariantDecimalSeparator: string;
2
+ export declare const localeDecimalSeparator: string;
3
+ export interface Parts {
4
+ invariantPrecisionString: string;
5
+ invariantCoefficientString: string;
6
+ exponent: number;
7
+ noOfCoefficientDecimals: number;
8
+ }
9
+ declare class Formatter {
10
+ toPrecision(value: number, precision: number, maxDecimals?: number): string;
11
+ toLocalePrecision(value: number, precision: number, maxDecimals?: number): string;
12
+ toFixed(value: number, precision: number, maxDecimals?: number): string;
13
+ toLocaleFixed(value: number, precision: number, maxDecimals?: number): string;
14
+ getParts(value: number, precision: number, maxDecimals?: number): Parts;
15
+ }
16
+ export declare const NumberFormatter: Formatter;
17
+ export {};