@utiliread/primitives 1.0.0-50 → 1.0.0-51
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/dist/index.d.ts +1 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -40
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -38
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/repository.ts +26 -24
- package/src/step.ts +4 -4
- package/src/time-or-rule.ts +3 -3
- package/.parcel-cache/05bceb1debb074ab +0 -0
- package/.parcel-cache/98c3d22f150231c4 +0 -0
- package/.parcel-cache/a94329c46f41e756 +0 -0
- package/.parcel-cache/b72f446afb579f45 +0 -0
- package/.parcel-cache/d9963624c0099aed.txt +0 -12308
- package/.parcel-cache/data.mdb +0 -0
- package/.parcel-cache/lock.mdb +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -57,16 +57,7 @@ export enum DayOfWeek {
|
|
|
57
57
|
Saturday = 6,
|
|
58
58
|
Sunday = 7
|
|
59
59
|
}
|
|
60
|
-
declare export namespace Step {
|
|
61
|
-
function startOf(dateTime: DateTime, step: Step, firstDayOfWeek?: DayOfWeek): DateTime;
|
|
62
|
-
function asDuration(step: Step, amount?: number): Duration;
|
|
63
|
-
}
|
|
64
60
|
export type TimeOrRule = Date | DateTime | string;
|
|
65
|
-
declare export namespace TimeOrRule {
|
|
66
|
-
function isTime(input: TimeOrRule): input is Date | DateTime;
|
|
67
|
-
function isRule(input: TimeOrRule): input is string;
|
|
68
|
-
function asJSON(input: TimeOrRule): string;
|
|
69
|
-
}
|
|
70
61
|
export class PrecisionNumber {
|
|
71
62
|
value: number;
|
|
72
63
|
precision: number;
|
|
@@ -81,7 +72,7 @@ export class PrecisionNumber {
|
|
|
81
72
|
export type Repository = "some/repo";
|
|
82
73
|
export function Repository(repo: string): Repository;
|
|
83
74
|
export function Repository(team: string, name: string): Repository;
|
|
84
|
-
|
|
75
|
+
namespace Repository {
|
|
85
76
|
function split(repo: Repository): {
|
|
86
77
|
team: string;
|
|
87
78
|
name: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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
|
|
1
|
+
{"mappings":"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","sources":["src/src/consumption-type-id.ts","src/src/register-id.ts","src/src/unit-id.ts","src/src/aggregate-id.ts","src/src/measure-id.ts","src/src/register-definition.ts","src/src/register-pack.ts","src/src/register-library.ts","src/src/number-formatter.ts","src/src/register-utils.ts","src/src/register-convention.ts","src/src/step.ts","src/src/time-or-rule.ts","src/src/precision-number.ts","src/src/repository.ts","src/src/optional.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import type { ConsumptionTypeId } from \"./consumption-type-id\";\nimport type { RegisterId } from \"./register-id\";\nimport type { UnitId } from \"./unit-id\";\nimport { RegisterLibrary } from \"./register-library\";\nimport type { RegisterDefinition } from \"./register-definition\";\nimport { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator } from \"./number-formatter\";\nimport { RegisterConvention } from \"./register-convention\";\nimport type { AggregateId } from \"./aggregate-id\";\nimport type { MeasureId } from \"./measure-id\";\nimport { Step, DayOfWeek } from \"./step\";\nimport { TimeOrRule } from \"./time-or-rule\";\nimport { PrecisionNumber } from \"./precision-number\";\nimport \"./repository\"; // We need this to get the Repository namespace exported\nimport type { Repository } from \"./repository\";\nimport type { Optional } from \"./optional\";\n\nexport {\n AggregateId,\n ConsumptionTypeId,\n DayOfWeek,\n MeasureId,\n NumberFormatter,\n PrecisionNumber,\n RegisterConvention,\n RegisterDefinition,\n RegisterId,\n RegisterLibrary,\n Repository,\n Step,\n TimeOrRule,\n UnitId,\n invariantDecimalSeparator,\n localeDecimalSeparator,\n Optional,\n};\n"],"names":[],"version":3,"file":"index.d.ts.map"}
|
package/dist/index.js
CHANGED
|
@@ -9,9 +9,8 @@ $parcel$export(module.exports, "NumberFormatter", () => $c1d0d16ee535ee41$export
|
|
|
9
9
|
$parcel$export(module.exports, "PrecisionNumber", () => $fc0db0cc74508f5f$export$60b023dc4cb7008e);
|
|
10
10
|
$parcel$export(module.exports, "RegisterConvention", () => $9801131ab15e9b55$export$8cc0a4f27499ddb4);
|
|
11
11
|
$parcel$export(module.exports, "RegisterLibrary", () => $f4899d1a2a2d1203$export$472902705794cfbb);
|
|
12
|
-
$parcel$export(module.exports, "
|
|
13
|
-
$parcel$export(module.exports, "
|
|
14
|
-
$parcel$export(module.exports, "TimeOrRule", () => $ed463131b45acd37$export$35b5ee117d2b7df0);
|
|
12
|
+
$parcel$export(module.exports, "Step", () => $cb7e566ab9617245$exports.Step);
|
|
13
|
+
$parcel$export(module.exports, "TimeOrRule", () => $ed463131b45acd37$exports.TimeOrRule);
|
|
15
14
|
$parcel$export(module.exports, "invariantDecimalSeparator", () => $c1d0d16ee535ee41$export$18a249acfd29a1c5);
|
|
16
15
|
$parcel$export(module.exports, "localeDecimalSeparator", () => $c1d0d16ee535ee41$export$c146a453a9d3226d);
|
|
17
16
|
class $f4899d1a2a2d1203$var$Library {
|
|
@@ -176,8 +175,8 @@ let $cb7e566ab9617245$export$7ed5ca4f8b987938;
|
|
|
176
175
|
$cb7e566ab9617245$export$7ed5ca4f8b987938[$cb7e566ab9617245$export$7ed5ca4f8b987938["Saturday"] = 6] = "Saturday";
|
|
177
176
|
$cb7e566ab9617245$export$7ed5ca4f8b987938[$cb7e566ab9617245$export$7ed5ca4f8b987938["Sunday"] = 7] = "Sunday";
|
|
178
177
|
})($cb7e566ab9617245$export$7ed5ca4f8b987938 || ($cb7e566ab9617245$export$7ed5ca4f8b987938 = {}));
|
|
179
|
-
let $cb7e566ab9617245$
|
|
180
|
-
(function(
|
|
178
|
+
let $cb7e566ab9617245$var$Step;
|
|
179
|
+
(function(Step) {
|
|
181
180
|
function startOf(dateTime, step, firstDayOfWeek) {
|
|
182
181
|
if (step === "week") {
|
|
183
182
|
const value = dateTime.startOf("day").set({
|
|
@@ -188,7 +187,7 @@ let $cb7e566ab9617245$export$fd55ce593607084a;
|
|
|
188
187
|
}) : value;
|
|
189
188
|
} else return dateTime.startOf(step);
|
|
190
189
|
}
|
|
191
|
-
|
|
190
|
+
Step.startOf = startOf;
|
|
192
191
|
function asDuration(step, amount = 1) {
|
|
193
192
|
switch(step){
|
|
194
193
|
case "hour":
|
|
@@ -213,25 +212,10 @@ let $cb7e566ab9617245$export$fd55ce593607084a;
|
|
|
213
212
|
});
|
|
214
213
|
}
|
|
215
214
|
}
|
|
216
|
-
|
|
217
|
-
})($cb7e566ab9617245$
|
|
215
|
+
Step.asDuration = asDuration;
|
|
216
|
+
})($cb7e566ab9617245$var$Step || ($cb7e566ab9617245$var$Step = {}));
|
|
218
217
|
|
|
219
218
|
|
|
220
|
-
let $ed463131b45acd37$export$35b5ee117d2b7df0;
|
|
221
|
-
(function($ed463131b45acd37$export$35b5ee117d2b7df0) {
|
|
222
|
-
function isTime(input) {
|
|
223
|
-
return typeof input !== "string";
|
|
224
|
-
}
|
|
225
|
-
$ed463131b45acd37$export$35b5ee117d2b7df0.isTime = isTime;
|
|
226
|
-
function isRule(input) {
|
|
227
|
-
return typeof input === "string";
|
|
228
|
-
}
|
|
229
|
-
$ed463131b45acd37$export$35b5ee117d2b7df0.isRule = isRule;
|
|
230
|
-
function asJSON(input) {
|
|
231
|
-
return isRule(input) ? input : input.toJSON();
|
|
232
|
-
}
|
|
233
|
-
$ed463131b45acd37$export$35b5ee117d2b7df0.asJSON = asJSON;
|
|
234
|
-
})($ed463131b45acd37$export$35b5ee117d2b7df0 || ($ed463131b45acd37$export$35b5ee117d2b7df0 = {}));
|
|
235
219
|
|
|
236
220
|
|
|
237
221
|
|
|
@@ -265,23 +249,6 @@ class $fc0db0cc74508f5f$export$60b023dc4cb7008e {
|
|
|
265
249
|
}
|
|
266
250
|
|
|
267
251
|
|
|
268
|
-
function $41aa6b9de4a9d1d8$export$b340a19a1bcc0afd(repoOrTeam, name) {
|
|
269
|
-
if (name) return `${repoOrTeam}/${name}`;
|
|
270
|
-
else if (repoOrTeam.indexOf("/") > 0) return repoOrTeam;
|
|
271
|
-
else throw new TypeError("Invalid repository format");
|
|
272
|
-
}
|
|
273
|
-
(function($41aa6b9de4a9d1d8$export$b340a19a1bcc0afd) {
|
|
274
|
-
function split(repo) {
|
|
275
|
-
const parts = repo.split("/");
|
|
276
|
-
return {
|
|
277
|
-
team: parts[0],
|
|
278
|
-
name: parts[1]
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
$41aa6b9de4a9d1d8$export$b340a19a1bcc0afd.split = split;
|
|
282
|
-
})($41aa6b9de4a9d1d8$export$b340a19a1bcc0afd || ($41aa6b9de4a9d1d8$export$b340a19a1bcc0afd = {}));
|
|
283
|
-
|
|
284
|
-
|
|
285
252
|
|
|
286
253
|
|
|
287
254
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["src/index.ts","src/register-library.ts","src/number-formatter.ts","src/register-convention.ts","src/register-utils.ts","src/step.ts","src/time-or-rule.ts","src/precision-number.ts","src/repository.ts"],"sourcesContent":["import type { ConsumptionTypeId } from \"./consumption-type-id\";\nimport type { RegisterId } from \"./register-id\";\nimport type { UnitId } from \"./unit-id\";\nimport { RegisterLibrary } from \"./register-library\";\nimport type { RegisterDefinition } from \"./register-definition\";\nimport { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator } from \"./number-formatter\";\nimport { RegisterConvention } from \"./register-convention\";\nimport type { AggregateId } from \"./aggregate-id\";\nimport type { MeasureId } from \"./measure-id\";\nimport { Step, DayOfWeek } from \"./step\";\nimport { TimeOrRule } from \"./time-or-rule\";\nimport { PrecisionNumber } from \"./precision-number\";\nimport \"./repository\"; // We need this to get the Repository namespace exported\nimport { Repository } from \"./repository\";\nimport type { Optional } from \"./optional\";\n\nexport {\n AggregateId,\n ConsumptionTypeId,\n DayOfWeek,\n MeasureId,\n NumberFormatter,\n PrecisionNumber,\n RegisterConvention,\n RegisterDefinition,\n RegisterId,\n RegisterLibrary,\n Repository,\n Step,\n TimeOrRule,\n UnitId,\n invariantDecimalSeparator,\n localeDecimalSeparator,\n Optional,\n};\n","import { RegisterDefinition } from \"./register-definition\";\nimport { RegisterId } from \"./register-id\";\nimport { RegisterPack } from \"./register-pack\";\n\nclass Library {\n private definitions: Partial<{ [id in RegisterId]: RegisterDefinition }> = {};\n public add(...definitions: (RegisterDefinition | RegisterPack)[]) {\n for (const definition of definitions) {\n if (isDefinition(definition)) {\n this.tryAdd(definition);\n }\n else {\n for (const definitionInPack of Object.values(definition)) {\n this.tryAdd(definitionInPack);\n }\n }\n }\n }\n\n private tryAdd(definition: RegisterDefinition) {\n if (!this.definitions[definition.id]) {\n this.definitions[definition.id] = definition;\n return true;\n }\n return false;\n }\n\n public has(id: RegisterId) {\n return !!this.definitions[id];\n }\n\n public tryGet(id: RegisterId) {\n return this.definitions[id];\n }\n\n public get(id: RegisterId) {\n const definition = this.definitions[id];\n if (!definition) {\n throw new Error(`Defintion was not loaded for register ${id}`);\n }\n return definition;\n }\n\n public all() {\n return Object.values(this.definitions).map(x => x!);\n }\n\n public reset() {\n this.definitions = {};\n }\n}\n\nfunction isDefinition(definitionOrPack: RegisterDefinition | RegisterPack): definitionOrPack is RegisterDefinition {\n return !!(definitionOrPack.id && definitionOrPack.aggregate && definitionOrPack.units);\n}\n\nexport const RegisterLibrary = new Library();\r\n","export const invariantDecimalSeparator = (0.1).toString()[1];\nexport const localeDecimalSeparator = (0.1).toLocaleString()[1];\n\nexport interface Parts {\n invariantPrecisionString: string;\n invariantCoefficientString: string;\n exponent: number;\n noOfCoefficientDecimals: number;\n}\n\nclass Formatter {\n public toPrecision(value: number, precision: number) {\n if (value === 0) {\n // (0).toPrecision(1) == \"0\"\n // (0).toPrecision(2) == \"0.0\"\n // (0).toPrecision(3) == \"0.00\"\n // However, we want:\n // Formatter.toPrecision(0, 0) == \"0\"\n // Formatter.toPrecision(0, 1) == \"0.0\"\n // Formatter.toPrecision(0, 2) == \"0.00\"\n return value.toPrecision(precision + 1);\n }\n const absValue = Math.abs(value);\n if (absValue < 1) {\n return value.toPrecision(precision);\n }\n\n const noOfIntegerDigits = Math.round(absValue).toString().length;\n return precision >= noOfIntegerDigits\n ? value.toFixed(precision - noOfIntegerDigits)\n : value.toPrecision(precision);\n }\n\n public toLocalePrecision(value: number, precision: number) {\n return this.toPrecision(value, precision)\n .replace(invariantDecimalSeparator, localeDecimalSeparator);\n }\n\n public toFixed(value: number, precision: number) {\n const parts = this.getParts(value, precision);\n if (parts.noOfCoefficientDecimals < parts.exponent) {\n const number = parts.invariantCoefficientString.replace(invariantDecimalSeparator, \"\");\n const zeros = parts.exponent - parts.noOfCoefficientDecimals;\n return `${number}${\"0\".repeat(zeros)}`;\n }\n else {\n return parts.invariantPrecisionString;\n }\n }\n\n public toLocaleFixed(value: number, precision: number) {\n return this.toFixed(value, precision)\n .replace(invariantDecimalSeparator, localeDecimalSeparator);\n }\n\n public getParts(value: number, precision: number): Parts {\n const precisionString = this.toPrecision(value, precision);\n if (precisionString.indexOf(\"e\") >= 0) {\n const match = /(.*)e([\\+-]\\d+)$/.exec(precisionString)!;\n const coefficientString = match[1];\n const exponent = parseInt(match[2]);\n const decimalSeparatorIndex = coefficientString.indexOf(invariantDecimalSeparator);\n const noOfCoefficientDecimals = decimalSeparatorIndex >= 0\n ? coefficientString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: coefficientString,\n exponent,\n noOfCoefficientDecimals,\n };\n }\n else {\n const decimalSeparatorIndex = precisionString.indexOf(invariantDecimalSeparator);\n const noOfCoefficientDecimals = decimalSeparatorIndex >= 0\n ? precisionString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: precisionString,\n exponent: 0,\n noOfCoefficientDecimals,\n };\n }\n }\n}\n\nexport const NumberFormatter = new Formatter();\n","import { RegisterDefinition } from \".\";\nimport { AggregateId } from \"./aggregate-id\";\nimport { RegisterId } from \"./register-id\";\nimport { getRegisterId } from \"./register-utils\";\n\nexport const aggregatePrefixes: { [aggregateId in AggregateId]: string } = {\n instant: \"\",\n diff: \"diff\",\n min: \"min\",\n max: \"max\",\n avg: \"avg\",\n sum: \"sum\",\n cnt: \"cnt\",\n ssq: \"ssq\",\n};\n\nclass Convention {\n public getAggregate(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n // Brute force all prefixes - if none of them, then it must be instant.\n for (const aggregateString of Object.keys(aggregatePrefixes)) {\n const aggregate = <AggregateId>aggregateString;\n const prefix = aggregatePrefixes[aggregate];\n if (prefix.length && isPrefix(registerId, prefix)) {\n // Not instant - it was any of the others.\n return aggregate;\n }\n }\n return \"instant\";\n }\n\n toInstant(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n for (const prefix of Object.values(aggregatePrefixes)) {\n if (prefix.length && isPrefix(registerId, prefix)) {\n const tail = registerId.substr(prefix.length);\n return <RegisterId>(tail[0].toLowerCase() + tail.substr(1));\n }\n }\n return registerId;\n }\n\n toAggregate(register: RegisterId | RegisterDefinition, aggregate: AggregateId) {\n const instantRegisterId = this.toInstant(register);\n if (aggregate === \"instant\") {\n return instantRegisterId;\n }\n const prefix = aggregatePrefixes[aggregate];\n return <RegisterId>(prefix + instantRegisterId[0].toUpperCase() + instantRegisterId.substr(1));\n }\n}\n\nexport function isPrefix(registerId: RegisterId, prefix: string) {\n return registerId.startsWith(prefix) && isUppercase(registerId[prefix.length]);\n}\n\nfunction isUppercase(input: string) {\n return input.toUpperCase() === input;\n}\n\nexport const RegisterConvention = new Convention();\r\n","import { RegisterDefinition } from \"./register-definition\";\nimport { RegisterId } from \"./register-id\";\n\nexport function getRegisterId(register: RegisterId | RegisterDefinition) {\n return typeof register === \"string\" ? register : register.id;\n}\r\n","import { DateTime, Duration } from \"luxon\";\n\nexport type Step = \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport enum DayOfWeek {\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n Sunday = 7,\n};\n\nexport namespace Step {\n export function startOf(dateTime: DateTime, step: Step, firstDayOfWeek?: DayOfWeek) {\n if (step === \"week\") {\n const value = dateTime.startOf(\"day\").set({ weekday: firstDayOfWeek ?? DayOfWeek.Monday });\n return value > dateTime\n ? value.minus({ days: 7 })\n : value;\n }\n else {\n return dateTime.startOf(step);\n }\n }\n \n export function asDuration(step: Step, amount = 1): Duration {\n switch (step) {\n case \"hour\": return Duration.fromObject({ hours: amount });\n case \"day\": return Duration.fromObject({ days: amount });\n case \"week\": return Duration.fromObject({ days: 7 * amount });\n case \"month\": return Duration.fromObject({ months: amount });\n case \"year\": return Duration.fromObject({ years: amount });\n }\n }\n}\r\n","import { DateTime } from \"luxon\";\n\nexport type TimeOrRule = Date | DateTime | string;\n\nexport namespace TimeOrRule {\n export function isTime(input: TimeOrRule): input is Date | DateTime {\n return typeof input !== \"string\";\n }\n\n export function isRule(input: TimeOrRule): input is string {\n return typeof input === \"string\";\n }\n \n export function asJSON(input: TimeOrRule) {\n return isRule(input) ? input : input.toJSON();\n }\n}\r\n","import { invariantDecimalSeparator } from \".\";\nimport { localeDecimalSeparator, NumberFormatter } from \"./number-formatter\";\n\nexport class PrecisionNumber {\n constructor(public value: number, public precision: number) {\n }\n\n static parse(input: string) {\n let normalized = input.trim().replace(\",\", \".\").replace(localeDecimalSeparator, invariantDecimalSeparator);\n if (normalized.endsWith(invariantDecimalSeparator)) {\n normalized += \"0\";\n }\n const precision = normalized.replace(\".\", \"\").replace(\"+\", \"\").replace(\"-\", \"\").length;\n return new PrecisionNumber(parseFloat(normalized), precision);\n }\n\n toString() {\n return this.value.toString();\n }\n\n toFixed() {\n return NumberFormatter.toFixed(this.value, this.precision);\n }\n\n toPrecision() {\n return NumberFormatter.toPrecision(this.value, this.precision);\n }\n\n toLocaleFixed() {\n return NumberFormatter.toLocaleFixed(this.value, this.precision);\n }\n\n toLocalePrecision() {\n return NumberFormatter.toLocalePrecision(this.value, this.precision);\n }\n}\n","// This is clearly not correct but it provides some amazing type safety\r\nexport type Repository = \"some/repo\";\r\n\r\nexport function Repository(repo: string): Repository;\r\nexport function Repository(team: string, name: string): Repository;\r\nexport function Repository(repoOrTeam: string, name?: string): Repository {\r\n if (name) {\r\n return <Repository>`${repoOrTeam}/${name}`;\r\n } else if (repoOrTeam.indexOf(\"/\") > 0) {\r\n return <Repository>repoOrTeam;\r\n } else {\r\n throw new TypeError(\"Invalid repository format\");\r\n }\r\n}\r\n\r\nexport namespace Repository {\r\n export function split(repo: Repository) {\r\n const parts = repo.split(\"/\");\r\n return {\r\n team: parts[0],\r\n name: parts[1],\r\n };\r\n }\r\n}\r\n"],"names":[],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["src/index.ts","src/register-library.ts","src/number-formatter.ts","src/register-convention.ts","src/register-utils.ts","src/step.ts","src/time-or-rule.ts","src/precision-number.ts"],"sourcesContent":["import type { ConsumptionTypeId } from \"./consumption-type-id\";\nimport type { RegisterId } from \"./register-id\";\nimport type { UnitId } from \"./unit-id\";\nimport { RegisterLibrary } from \"./register-library\";\nimport type { RegisterDefinition } from \"./register-definition\";\nimport { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator } from \"./number-formatter\";\nimport { RegisterConvention } from \"./register-convention\";\nimport type { AggregateId } from \"./aggregate-id\";\nimport type { MeasureId } from \"./measure-id\";\nimport { Step, DayOfWeek } from \"./step\";\nimport { TimeOrRule } from \"./time-or-rule\";\nimport { PrecisionNumber } from \"./precision-number\";\nimport \"./repository\"; // We need this to get the Repository namespace exported\nimport type { Repository } from \"./repository\";\nimport type { Optional } from \"./optional\";\n\nexport {\n AggregateId,\n ConsumptionTypeId,\n DayOfWeek,\n MeasureId,\n NumberFormatter,\n PrecisionNumber,\n RegisterConvention,\n RegisterDefinition,\n RegisterId,\n RegisterLibrary,\n Repository,\n Step,\n TimeOrRule,\n UnitId,\n invariantDecimalSeparator,\n localeDecimalSeparator,\n Optional,\n};\n","import { RegisterDefinition } from \"./register-definition\";\nimport { RegisterId } from \"./register-id\";\nimport { RegisterPack } from \"./register-pack\";\n\nclass Library {\n private definitions: Partial<{ [id in RegisterId]: RegisterDefinition }> = {};\n public add(...definitions: (RegisterDefinition | RegisterPack)[]) {\n for (const definition of definitions) {\n if (isDefinition(definition)) {\n this.tryAdd(definition);\n }\n else {\n for (const definitionInPack of Object.values(definition)) {\n this.tryAdd(definitionInPack);\n }\n }\n }\n }\n\n private tryAdd(definition: RegisterDefinition) {\n if (!this.definitions[definition.id]) {\n this.definitions[definition.id] = definition;\n return true;\n }\n return false;\n }\n\n public has(id: RegisterId) {\n return !!this.definitions[id];\n }\n\n public tryGet(id: RegisterId) {\n return this.definitions[id];\n }\n\n public get(id: RegisterId) {\n const definition = this.definitions[id];\n if (!definition) {\n throw new Error(`Defintion was not loaded for register ${id}`);\n }\n return definition;\n }\n\n public all() {\n return Object.values(this.definitions).map(x => x!);\n }\n\n public reset() {\n this.definitions = {};\n }\n}\n\nfunction isDefinition(definitionOrPack: RegisterDefinition | RegisterPack): definitionOrPack is RegisterDefinition {\n return !!(definitionOrPack.id && definitionOrPack.aggregate && definitionOrPack.units);\n}\n\nexport const RegisterLibrary = new Library();\r\n","export const invariantDecimalSeparator = (0.1).toString()[1];\nexport const localeDecimalSeparator = (0.1).toLocaleString()[1];\n\nexport interface Parts {\n invariantPrecisionString: string;\n invariantCoefficientString: string;\n exponent: number;\n noOfCoefficientDecimals: number;\n}\n\nclass Formatter {\n public toPrecision(value: number, precision: number) {\n if (value === 0) {\n // (0).toPrecision(1) == \"0\"\n // (0).toPrecision(2) == \"0.0\"\n // (0).toPrecision(3) == \"0.00\"\n // However, we want:\n // Formatter.toPrecision(0, 0) == \"0\"\n // Formatter.toPrecision(0, 1) == \"0.0\"\n // Formatter.toPrecision(0, 2) == \"0.00\"\n return value.toPrecision(precision + 1);\n }\n const absValue = Math.abs(value);\n if (absValue < 1) {\n return value.toPrecision(precision);\n }\n\n const noOfIntegerDigits = Math.round(absValue).toString().length;\n return precision >= noOfIntegerDigits\n ? value.toFixed(precision - noOfIntegerDigits)\n : value.toPrecision(precision);\n }\n\n public toLocalePrecision(value: number, precision: number) {\n return this.toPrecision(value, precision)\n .replace(invariantDecimalSeparator, localeDecimalSeparator);\n }\n\n public toFixed(value: number, precision: number) {\n const parts = this.getParts(value, precision);\n if (parts.noOfCoefficientDecimals < parts.exponent) {\n const number = parts.invariantCoefficientString.replace(invariantDecimalSeparator, \"\");\n const zeros = parts.exponent - parts.noOfCoefficientDecimals;\n return `${number}${\"0\".repeat(zeros)}`;\n }\n else {\n return parts.invariantPrecisionString;\n }\n }\n\n public toLocaleFixed(value: number, precision: number) {\n return this.toFixed(value, precision)\n .replace(invariantDecimalSeparator, localeDecimalSeparator);\n }\n\n public getParts(value: number, precision: number): Parts {\n const precisionString = this.toPrecision(value, precision);\n if (precisionString.indexOf(\"e\") >= 0) {\n const match = /(.*)e([\\+-]\\d+)$/.exec(precisionString)!;\n const coefficientString = match[1];\n const exponent = parseInt(match[2]);\n const decimalSeparatorIndex = coefficientString.indexOf(invariantDecimalSeparator);\n const noOfCoefficientDecimals = decimalSeparatorIndex >= 0\n ? coefficientString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: coefficientString,\n exponent,\n noOfCoefficientDecimals,\n };\n }\n else {\n const decimalSeparatorIndex = precisionString.indexOf(invariantDecimalSeparator);\n const noOfCoefficientDecimals = decimalSeparatorIndex >= 0\n ? precisionString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: precisionString,\n exponent: 0,\n noOfCoefficientDecimals,\n };\n }\n }\n}\n\nexport const NumberFormatter = new Formatter();\n","import { RegisterDefinition } from \".\";\nimport { AggregateId } from \"./aggregate-id\";\nimport { RegisterId } from \"./register-id\";\nimport { getRegisterId } from \"./register-utils\";\n\nexport const aggregatePrefixes: { [aggregateId in AggregateId]: string } = {\n instant: \"\",\n diff: \"diff\",\n min: \"min\",\n max: \"max\",\n avg: \"avg\",\n sum: \"sum\",\n cnt: \"cnt\",\n ssq: \"ssq\",\n};\n\nclass Convention {\n public getAggregate(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n // Brute force all prefixes - if none of them, then it must be instant.\n for (const aggregateString of Object.keys(aggregatePrefixes)) {\n const aggregate = <AggregateId>aggregateString;\n const prefix = aggregatePrefixes[aggregate];\n if (prefix.length && isPrefix(registerId, prefix)) {\n // Not instant - it was any of the others.\n return aggregate;\n }\n }\n return \"instant\";\n }\n\n toInstant(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n for (const prefix of Object.values(aggregatePrefixes)) {\n if (prefix.length && isPrefix(registerId, prefix)) {\n const tail = registerId.substr(prefix.length);\n return <RegisterId>(tail[0].toLowerCase() + tail.substr(1));\n }\n }\n return registerId;\n }\n\n toAggregate(register: RegisterId | RegisterDefinition, aggregate: AggregateId) {\n const instantRegisterId = this.toInstant(register);\n if (aggregate === \"instant\") {\n return instantRegisterId;\n }\n const prefix = aggregatePrefixes[aggregate];\n return <RegisterId>(prefix + instantRegisterId[0].toUpperCase() + instantRegisterId.substr(1));\n }\n}\n\nexport function isPrefix(registerId: RegisterId, prefix: string) {\n return registerId.startsWith(prefix) && isUppercase(registerId[prefix.length]);\n}\n\nfunction isUppercase(input: string) {\n return input.toUpperCase() === input;\n}\n\nexport const RegisterConvention = new Convention();\r\n","import { RegisterDefinition } from \"./register-definition\";\nimport { RegisterId } from \"./register-id\";\n\nexport function getRegisterId(register: RegisterId | RegisterDefinition) {\n return typeof register === \"string\" ? register : register.id;\n}\r\n","import { DateTime, Duration } from \"luxon\";\n\nexport type Step = \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport enum DayOfWeek {\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n Sunday = 7,\n};\n\nnamespace Step {\n export function startOf(dateTime: DateTime, step: Step, firstDayOfWeek?: DayOfWeek): DateTime {\n if (step === \"week\") {\n const value = dateTime.startOf(\"day\").set({ weekday: firstDayOfWeek ?? DayOfWeek.Monday });\n return value > dateTime\n ? value.minus({ days: 7 })\n : value;\n }\n else {\n return dateTime.startOf(step);\n }\n }\n\n export function asDuration(step: Step, amount = 1): Duration {\n switch (step) {\n case \"hour\": return Duration.fromObject({ hours: amount });\n case \"day\": return Duration.fromObject({ days: amount });\n case \"week\": return Duration.fromObject({ days: 7 * amount });\n case \"month\": return Duration.fromObject({ months: amount });\n case \"year\": return Duration.fromObject({ years: amount });\n }\n }\n}\n","import { DateTime } from \"luxon\";\n\nexport type TimeOrRule = Date | DateTime | string;\n\nnamespace TimeOrRule {\n export function isTime(input: TimeOrRule): input is Date | DateTime {\n return typeof input !== \"string\";\n }\n\n export function isRule(input: TimeOrRule): input is string {\n return typeof input === \"string\";\n }\n\n export function asJSON(input: TimeOrRule) {\n return isRule(input) ? input : input.toJSON();\n }\n}\n","import { invariantDecimalSeparator } from \".\";\nimport { localeDecimalSeparator, NumberFormatter } from \"./number-formatter\";\n\nexport class PrecisionNumber {\n constructor(public value: number, public precision: number) {\n }\n\n static parse(input: string) {\n let normalized = input.trim().replace(\",\", \".\").replace(localeDecimalSeparator, invariantDecimalSeparator);\n if (normalized.endsWith(invariantDecimalSeparator)) {\n normalized += \"0\";\n }\n const precision = normalized.replace(\".\", \"\").replace(\"+\", \"\").replace(\"-\", \"\").length;\n return new PrecisionNumber(parseFloat(normalized), precision);\n }\n\n toString() {\n return this.value.toString();\n }\n\n toFixed() {\n return NumberFormatter.toFixed(this.value, this.precision);\n }\n\n toPrecision() {\n return NumberFormatter.toPrecision(this.value, this.precision);\n }\n\n toLocaleFixed() {\n return NumberFormatter.toLocaleFixed(this.value, this.precision);\n }\n\n toLocalePrecision() {\n return NumberFormatter.toLocalePrecision(this.value, this.precision);\n }\n}\n"],"names":[],"version":3,"file":"index.js.map"}
|
package/dist/index.mjs
CHANGED
|
@@ -162,8 +162,8 @@ let $3742b95f8d2fe1ca$export$7ed5ca4f8b987938;
|
|
|
162
162
|
$3742b95f8d2fe1ca$export$7ed5ca4f8b987938[$3742b95f8d2fe1ca$export$7ed5ca4f8b987938["Saturday"] = 6] = "Saturday";
|
|
163
163
|
$3742b95f8d2fe1ca$export$7ed5ca4f8b987938[$3742b95f8d2fe1ca$export$7ed5ca4f8b987938["Sunday"] = 7] = "Sunday";
|
|
164
164
|
})($3742b95f8d2fe1ca$export$7ed5ca4f8b987938 || ($3742b95f8d2fe1ca$export$7ed5ca4f8b987938 = {}));
|
|
165
|
-
let $3742b95f8d2fe1ca$
|
|
166
|
-
(function(
|
|
165
|
+
let $3742b95f8d2fe1ca$var$Step;
|
|
166
|
+
(function(Step) {
|
|
167
167
|
function startOf(dateTime, step, firstDayOfWeek) {
|
|
168
168
|
if (step === "week") {
|
|
169
169
|
const value = dateTime.startOf("day").set({
|
|
@@ -174,7 +174,7 @@ let $3742b95f8d2fe1ca$export$fd55ce593607084a;
|
|
|
174
174
|
}) : value;
|
|
175
175
|
} else return dateTime.startOf(step);
|
|
176
176
|
}
|
|
177
|
-
|
|
177
|
+
Step.startOf = startOf;
|
|
178
178
|
function asDuration(step, amount = 1) {
|
|
179
179
|
switch(step){
|
|
180
180
|
case "hour":
|
|
@@ -199,25 +199,10 @@ let $3742b95f8d2fe1ca$export$fd55ce593607084a;
|
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
|
-
|
|
203
|
-
})($3742b95f8d2fe1ca$
|
|
202
|
+
Step.asDuration = asDuration;
|
|
203
|
+
})($3742b95f8d2fe1ca$var$Step || ($3742b95f8d2fe1ca$var$Step = {}));
|
|
204
204
|
|
|
205
205
|
|
|
206
|
-
let $a9d41af0df0fca9e$export$35b5ee117d2b7df0;
|
|
207
|
-
(function($a9d41af0df0fca9e$export$35b5ee117d2b7df0) {
|
|
208
|
-
function isTime(input) {
|
|
209
|
-
return typeof input !== "string";
|
|
210
|
-
}
|
|
211
|
-
$a9d41af0df0fca9e$export$35b5ee117d2b7df0.isTime = isTime;
|
|
212
|
-
function isRule(input) {
|
|
213
|
-
return typeof input === "string";
|
|
214
|
-
}
|
|
215
|
-
$a9d41af0df0fca9e$export$35b5ee117d2b7df0.isRule = isRule;
|
|
216
|
-
function asJSON(input) {
|
|
217
|
-
return isRule(input) ? input : input.toJSON();
|
|
218
|
-
}
|
|
219
|
-
$a9d41af0df0fca9e$export$35b5ee117d2b7df0.asJSON = asJSON;
|
|
220
|
-
})($a9d41af0df0fca9e$export$35b5ee117d2b7df0 || ($a9d41af0df0fca9e$export$35b5ee117d2b7df0 = {}));
|
|
221
206
|
|
|
222
207
|
|
|
223
208
|
|
|
@@ -251,25 +236,8 @@ class $47133f938ce44539$export$60b023dc4cb7008e {
|
|
|
251
236
|
}
|
|
252
237
|
|
|
253
238
|
|
|
254
|
-
function $f5b26f75dc394ede$export$b340a19a1bcc0afd(repoOrTeam, name) {
|
|
255
|
-
if (name) return `${repoOrTeam}/${name}`;
|
|
256
|
-
else if (repoOrTeam.indexOf("/") > 0) return repoOrTeam;
|
|
257
|
-
else throw new TypeError("Invalid repository format");
|
|
258
|
-
}
|
|
259
|
-
(function($f5b26f75dc394ede$export$b340a19a1bcc0afd) {
|
|
260
|
-
function split(repo) {
|
|
261
|
-
const parts = repo.split("/");
|
|
262
|
-
return {
|
|
263
|
-
team: parts[0],
|
|
264
|
-
name: parts[1]
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
$f5b26f75dc394ede$export$b340a19a1bcc0afd.split = split;
|
|
268
|
-
})($f5b26f75dc394ede$export$b340a19a1bcc0afd || ($f5b26f75dc394ede$export$b340a19a1bcc0afd = {}));
|
|
269
|
-
|
|
270
|
-
|
|
271
239
|
|
|
272
240
|
|
|
273
241
|
|
|
274
|
-
export {$3742b95f8d2fe1ca$export$7ed5ca4f8b987938 as DayOfWeek, $a27da276f4185ebf$export$cc77c4ff7e8673c5 as NumberFormatter, $47133f938ce44539$export$60b023dc4cb7008e as PrecisionNumber, $e341043498f0791b$export$8cc0a4f27499ddb4 as RegisterConvention, $2bc946b609f83430$export$472902705794cfbb as RegisterLibrary, $
|
|
242
|
+
export {$3742b95f8d2fe1ca$export$7ed5ca4f8b987938 as DayOfWeek, $a27da276f4185ebf$export$cc77c4ff7e8673c5 as NumberFormatter, $47133f938ce44539$export$60b023dc4cb7008e as PrecisionNumber, $e341043498f0791b$export$8cc0a4f27499ddb4 as RegisterConvention, $2bc946b609f83430$export$472902705794cfbb as RegisterLibrary, $a27da276f4185ebf$export$18a249acfd29a1c5 as invariantDecimalSeparator, $a27da276f4185ebf$export$c146a453a9d3226d as localeDecimalSeparator};
|
|
275
243
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["src/index.ts","src/register-library.ts","src/number-formatter.ts","src/register-convention.ts","src/register-utils.ts","src/step.ts","src/time-or-rule.ts","src/precision-number.ts","src/repository.ts"],"sourcesContent":["import type { ConsumptionTypeId } from \"./consumption-type-id\";\nimport type { RegisterId } from \"./register-id\";\nimport type { UnitId } from \"./unit-id\";\nimport { RegisterLibrary } from \"./register-library\";\nimport type { RegisterDefinition } from \"./register-definition\";\nimport { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator } from \"./number-formatter\";\nimport { RegisterConvention } from \"./register-convention\";\nimport type { AggregateId } from \"./aggregate-id\";\nimport type { MeasureId } from \"./measure-id\";\nimport { Step, DayOfWeek } from \"./step\";\nimport { TimeOrRule } from \"./time-or-rule\";\nimport { PrecisionNumber } from \"./precision-number\";\nimport \"./repository\"; // We need this to get the Repository namespace exported\nimport { Repository } from \"./repository\";\nimport type { Optional } from \"./optional\";\n\nexport {\n AggregateId,\n ConsumptionTypeId,\n DayOfWeek,\n MeasureId,\n NumberFormatter,\n PrecisionNumber,\n RegisterConvention,\n RegisterDefinition,\n RegisterId,\n RegisterLibrary,\n Repository,\n Step,\n TimeOrRule,\n UnitId,\n invariantDecimalSeparator,\n localeDecimalSeparator,\n Optional,\n};\n","import { RegisterDefinition } from \"./register-definition\";\nimport { RegisterId } from \"./register-id\";\nimport { RegisterPack } from \"./register-pack\";\n\nclass Library {\n private definitions: Partial<{ [id in RegisterId]: RegisterDefinition }> = {};\n public add(...definitions: (RegisterDefinition | RegisterPack)[]) {\n for (const definition of definitions) {\n if (isDefinition(definition)) {\n this.tryAdd(definition);\n }\n else {\n for (const definitionInPack of Object.values(definition)) {\n this.tryAdd(definitionInPack);\n }\n }\n }\n }\n\n private tryAdd(definition: RegisterDefinition) {\n if (!this.definitions[definition.id]) {\n this.definitions[definition.id] = definition;\n return true;\n }\n return false;\n }\n\n public has(id: RegisterId) {\n return !!this.definitions[id];\n }\n\n public tryGet(id: RegisterId) {\n return this.definitions[id];\n }\n\n public get(id: RegisterId) {\n const definition = this.definitions[id];\n if (!definition) {\n throw new Error(`Defintion was not loaded for register ${id}`);\n }\n return definition;\n }\n\n public all() {\n return Object.values(this.definitions).map(x => x!);\n }\n\n public reset() {\n this.definitions = {};\n }\n}\n\nfunction isDefinition(definitionOrPack: RegisterDefinition | RegisterPack): definitionOrPack is RegisterDefinition {\n return !!(definitionOrPack.id && definitionOrPack.aggregate && definitionOrPack.units);\n}\n\nexport const RegisterLibrary = new Library();\r\n","export const invariantDecimalSeparator = (0.1).toString()[1];\nexport const localeDecimalSeparator = (0.1).toLocaleString()[1];\n\nexport interface Parts {\n invariantPrecisionString: string;\n invariantCoefficientString: string;\n exponent: number;\n noOfCoefficientDecimals: number;\n}\n\nclass Formatter {\n public toPrecision(value: number, precision: number) {\n if (value === 0) {\n // (0).toPrecision(1) == \"0\"\n // (0).toPrecision(2) == \"0.0\"\n // (0).toPrecision(3) == \"0.00\"\n // However, we want:\n // Formatter.toPrecision(0, 0) == \"0\"\n // Formatter.toPrecision(0, 1) == \"0.0\"\n // Formatter.toPrecision(0, 2) == \"0.00\"\n return value.toPrecision(precision + 1);\n }\n const absValue = Math.abs(value);\n if (absValue < 1) {\n return value.toPrecision(precision);\n }\n\n const noOfIntegerDigits = Math.round(absValue).toString().length;\n return precision >= noOfIntegerDigits\n ? value.toFixed(precision - noOfIntegerDigits)\n : value.toPrecision(precision);\n }\n\n public toLocalePrecision(value: number, precision: number) {\n return this.toPrecision(value, precision)\n .replace(invariantDecimalSeparator, localeDecimalSeparator);\n }\n\n public toFixed(value: number, precision: number) {\n const parts = this.getParts(value, precision);\n if (parts.noOfCoefficientDecimals < parts.exponent) {\n const number = parts.invariantCoefficientString.replace(invariantDecimalSeparator, \"\");\n const zeros = parts.exponent - parts.noOfCoefficientDecimals;\n return `${number}${\"0\".repeat(zeros)}`;\n }\n else {\n return parts.invariantPrecisionString;\n }\n }\n\n public toLocaleFixed(value: number, precision: number) {\n return this.toFixed(value, precision)\n .replace(invariantDecimalSeparator, localeDecimalSeparator);\n }\n\n public getParts(value: number, precision: number): Parts {\n const precisionString = this.toPrecision(value, precision);\n if (precisionString.indexOf(\"e\") >= 0) {\n const match = /(.*)e([\\+-]\\d+)$/.exec(precisionString)!;\n const coefficientString = match[1];\n const exponent = parseInt(match[2]);\n const decimalSeparatorIndex = coefficientString.indexOf(invariantDecimalSeparator);\n const noOfCoefficientDecimals = decimalSeparatorIndex >= 0\n ? coefficientString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: coefficientString,\n exponent,\n noOfCoefficientDecimals,\n };\n }\n else {\n const decimalSeparatorIndex = precisionString.indexOf(invariantDecimalSeparator);\n const noOfCoefficientDecimals = decimalSeparatorIndex >= 0\n ? precisionString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: precisionString,\n exponent: 0,\n noOfCoefficientDecimals,\n };\n }\n }\n}\n\nexport const NumberFormatter = new Formatter();\n","import { RegisterDefinition } from \".\";\nimport { AggregateId } from \"./aggregate-id\";\nimport { RegisterId } from \"./register-id\";\nimport { getRegisterId } from \"./register-utils\";\n\nexport const aggregatePrefixes: { [aggregateId in AggregateId]: string } = {\n instant: \"\",\n diff: \"diff\",\n min: \"min\",\n max: \"max\",\n avg: \"avg\",\n sum: \"sum\",\n cnt: \"cnt\",\n ssq: \"ssq\",\n};\n\nclass Convention {\n public getAggregate(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n // Brute force all prefixes - if none of them, then it must be instant.\n for (const aggregateString of Object.keys(aggregatePrefixes)) {\n const aggregate = <AggregateId>aggregateString;\n const prefix = aggregatePrefixes[aggregate];\n if (prefix.length && isPrefix(registerId, prefix)) {\n // Not instant - it was any of the others.\n return aggregate;\n }\n }\n return \"instant\";\n }\n\n toInstant(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n for (const prefix of Object.values(aggregatePrefixes)) {\n if (prefix.length && isPrefix(registerId, prefix)) {\n const tail = registerId.substr(prefix.length);\n return <RegisterId>(tail[0].toLowerCase() + tail.substr(1));\n }\n }\n return registerId;\n }\n\n toAggregate(register: RegisterId | RegisterDefinition, aggregate: AggregateId) {\n const instantRegisterId = this.toInstant(register);\n if (aggregate === \"instant\") {\n return instantRegisterId;\n }\n const prefix = aggregatePrefixes[aggregate];\n return <RegisterId>(prefix + instantRegisterId[0].toUpperCase() + instantRegisterId.substr(1));\n }\n}\n\nexport function isPrefix(registerId: RegisterId, prefix: string) {\n return registerId.startsWith(prefix) && isUppercase(registerId[prefix.length]);\n}\n\nfunction isUppercase(input: string) {\n return input.toUpperCase() === input;\n}\n\nexport const RegisterConvention = new Convention();\r\n","import { RegisterDefinition } from \"./register-definition\";\nimport { RegisterId } from \"./register-id\";\n\nexport function getRegisterId(register: RegisterId | RegisterDefinition) {\n return typeof register === \"string\" ? register : register.id;\n}\r\n","import { DateTime, Duration } from \"luxon\";\n\nexport type Step = \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport enum DayOfWeek {\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n Sunday = 7,\n};\n\nexport namespace Step {\n export function startOf(dateTime: DateTime, step: Step, firstDayOfWeek?: DayOfWeek) {\n if (step === \"week\") {\n const value = dateTime.startOf(\"day\").set({ weekday: firstDayOfWeek ?? DayOfWeek.Monday });\n return value > dateTime\n ? value.minus({ days: 7 })\n : value;\n }\n else {\n return dateTime.startOf(step);\n }\n }\n \n export function asDuration(step: Step, amount = 1): Duration {\n switch (step) {\n case \"hour\": return Duration.fromObject({ hours: amount });\n case \"day\": return Duration.fromObject({ days: amount });\n case \"week\": return Duration.fromObject({ days: 7 * amount });\n case \"month\": return Duration.fromObject({ months: amount });\n case \"year\": return Duration.fromObject({ years: amount });\n }\n }\n}\r\n","import { DateTime } from \"luxon\";\n\nexport type TimeOrRule = Date | DateTime | string;\n\nexport namespace TimeOrRule {\n export function isTime(input: TimeOrRule): input is Date | DateTime {\n return typeof input !== \"string\";\n }\n\n export function isRule(input: TimeOrRule): input is string {\n return typeof input === \"string\";\n }\n \n export function asJSON(input: TimeOrRule) {\n return isRule(input) ? input : input.toJSON();\n }\n}\r\n","import { invariantDecimalSeparator } from \".\";\nimport { localeDecimalSeparator, NumberFormatter } from \"./number-formatter\";\n\nexport class PrecisionNumber {\n constructor(public value: number, public precision: number) {\n }\n\n static parse(input: string) {\n let normalized = input.trim().replace(\",\", \".\").replace(localeDecimalSeparator, invariantDecimalSeparator);\n if (normalized.endsWith(invariantDecimalSeparator)) {\n normalized += \"0\";\n }\n const precision = normalized.replace(\".\", \"\").replace(\"+\", \"\").replace(\"-\", \"\").length;\n return new PrecisionNumber(parseFloat(normalized), precision);\n }\n\n toString() {\n return this.value.toString();\n }\n\n toFixed() {\n return NumberFormatter.toFixed(this.value, this.precision);\n }\n\n toPrecision() {\n return NumberFormatter.toPrecision(this.value, this.precision);\n }\n\n toLocaleFixed() {\n return NumberFormatter.toLocaleFixed(this.value, this.precision);\n }\n\n toLocalePrecision() {\n return NumberFormatter.toLocalePrecision(this.value, this.precision);\n }\n}\n","// This is clearly not correct but it provides some amazing type safety\r\nexport type Repository = \"some/repo\";\r\n\r\nexport function Repository(repo: string): Repository;\r\nexport function Repository(team: string, name: string): Repository;\r\nexport function Repository(repoOrTeam: string, name?: string): Repository {\r\n if (name) {\r\n return <Repository>`${repoOrTeam}/${name}`;\r\n } else if (repoOrTeam.indexOf(\"/\") > 0) {\r\n return <Repository>repoOrTeam;\r\n } else {\r\n throw new TypeError(\"Invalid repository format\");\r\n }\r\n}\r\n\r\nexport namespace Repository {\r\n export function split(repo: Repository) {\r\n const parts = repo.split(\"/\");\r\n return {\r\n team: parts[0],\r\n name: parts[1],\r\n };\r\n }\r\n}\r\n"],"names":[],"version":3,"file":"index.mjs.map"}
|
|
1
|
+
{"mappings":";;ACIA,MAAM,6BAAO;IACT,AAAQ,WAAW,GAAwD,EAAE,CAAC;IAC9E,AAAO,GAAG,CAAC,GAAG,WAAW,AAAuC,EAAE;QAC9D,KAAK,MAAM,UAAU,IAAI,WAAW,CAAE;YAClC,IAAI,kCAAY,CAAC,UAAU,CAAC,EACxB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;iBAGxB,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CACpD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;SAGzC;KACJ;IAED,AAAQ,MAAM,CAAC,UAA8B,EAAE;QAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;YAClC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;YAC7C,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;KAChB;IAED,AAAO,GAAG,CAAC,EAAc,EAAE;QACvB,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KACjC;IAED,AAAO,MAAM,CAAC,EAAc,EAAE;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC/B;IAED,AAAO,GAAG,CAAC,EAAc,EAAE;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,AAAC;QACxC,IAAI,CAAC,UAAU,EACX,MAAM,IAAI,KAAK,CAAC,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnE,OAAO,UAAU,CAAC;KACrB;IAED,AAAO,GAAG,GAAG;QACT,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,GAAI,CAAC;QAAC,CAAC,CAAC;KACvD;IAED,AAAO,KAAK,GAAG;QACX,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACzB;CACJ;AAED,SAAS,kCAAY,CAAC,gBAAmD,EAA0C;IAC/G,OAAO,CAAC,CAAE,CAAA,gBAAgB,CAAC,EAAE,IAAI,gBAAgB,CAAC,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAA,AAAC,CAAC;CAC1F;AAEM,MAAM,yCAAe,GAAG,IAAI,6BAAO,EAAE,AAAC;;ADxD7C;AEAO,MAAM,yCAAyB,GAAG,AAAC,GAAG,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,AAAC;AACtD,MAAM,yCAAsB,GAAG,AAAC,GAAG,CAAE,cAAc,EAAE,CAAC,CAAC,CAAC,AAAC;AAShE,MAAM,+BAAS;IACX,AAAO,WAAW,CAAC,KAAa,EAAE,SAAiB,EAAE;QACjD,IAAI,KAAK,KAAK,CAAC,EACX,4BAA4B;QAC5B,8BAA8B;QAC9B,+BAA+B;QAC/B,oBAAoB;QACpB,qCAAqC;QACrC,uCAAuC;QACvC,wCAAwC;QACxC,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,AAAC;QACjC,IAAI,QAAQ,GAAG,CAAC,EACZ,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAGxC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,AAAC;QACjE,OAAO,SAAS,IAAI,iBAAiB,GAC/B,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC,GAC5C,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;KACtC;IAED,AAAO,iBAAiB,CAAC,KAAa,EAAE,SAAiB,EAAE;QACvD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CACpC,OAAO,CAAC,yCAAyB,EAAE,yCAAsB,CAAC,CAAC;KACnE;IAED,AAAO,OAAO,CAAC,KAAa,EAAE,SAAiB,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,AAAC;QAC9C,IAAI,KAAK,CAAC,uBAAuB,GAAG,KAAK,CAAC,QAAQ,EAAE;YAChD,MAAM,MAAM,GAAG,KAAK,CAAC,0BAA0B,CAAC,OAAO,CAAC,yCAAyB,EAAE,EAAE,CAAC,AAAC;YACvF,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,uBAAuB,AAAC;YAC7D,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1C,MAEG,OAAO,KAAK,CAAC,wBAAwB,CAAC;KAE7C;IAED,AAAO,aAAa,CAAC,KAAa,EAAE,SAAiB,EAAE;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAChC,OAAO,CAAC,yCAAyB,EAAE,yCAAsB,CAAC,CAAC;KACnE;IAED,AAAO,QAAQ,CAAC,KAAa,EAAE,SAAiB,EAAS;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,AAAC;QAC3D,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACnC,MAAM,KAAK,GAAG,mBAAmB,IAAI,CAAC,eAAe,CAAC,AAAC,AAAC;YACxD,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,AAAC;YACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,AAAC;YACpC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,OAAO,CAAC,yCAAyB,CAAC,AAAC;YACnF,MAAM,uBAAuB,GAAG,qBAAqB,IAAI,CAAC,GACpD,iBAAiB,CAAC,MAAM,GAAG,qBAAqB,GAAG,CAAC,GACpD,CAAC,AAAC;YACR,OAAO;gBACH,wBAAwB,EAAE,eAAe;gBACzC,0BAA0B,EAAE,iBAAiB;0BAC7C,QAAQ;yCACR,uBAAuB;aAC1B,CAAC;SACL,MACI;YACD,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,CAAC,yCAAyB,CAAC,AAAC;YACjF,MAAM,uBAAuB,GAAG,qBAAqB,IAAI,CAAC,GACpD,eAAe,CAAC,MAAM,GAAG,qBAAqB,GAAG,CAAC,GAClD,CAAC,AAAC;YACR,OAAO;gBACH,wBAAwB,EAAE,eAAe;gBACzC,0BAA0B,EAAE,eAAe;gBAC3C,QAAQ,EAAE,CAAC;yCACX,uBAAuB;aAC1B,CAAC;SACL;KACJ;CACJ;AAEM,MAAM,yCAAe,GAAG,IAAI,+BAAS,EAAE,AAAC;;;AEpFxC,SAAS,yCAAa,CAAC,QAAyC,EAAE;IACrE,OAAO,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;CAChE;;ADLD;AAKO,MAAM,yCAAiB,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,AAAC;AAEF,MAAM,gCAAU;IACZ,AAAO,YAAY,CAAC,QAAyC,EAAE;QAC3D,MAAM,UAAU,GAAG,yCAAa,CAAC,QAAQ,CAAC,AAAC;QAC3C,uEAAuE;QACvE,KAAK,MAAM,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,yCAAiB,CAAC,CAAE;YAC1D,MAAM,SAAS,GAAgB,eAAe,AAAC;YAC/C,MAAM,MAAM,GAAG,yCAAiB,CAAC,SAAS,CAAC,AAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,IAAI,yCAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,EAC7C,0CAA0C;YAC1C,OAAO,SAAS,CAAC;SAExB;QACD,OAAO,SAAS,CAAC;KACpB;IAED,SAAS,CAAC,QAAyC,EAAE;QACjD,MAAM,UAAU,GAAG,yCAAa,CAAC,QAAQ,CAAC,AAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,yCAAiB,CAAC,CACjD,IAAI,MAAM,CAAC,MAAM,IAAI,yCAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;YAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,AAAC;YAC9C,OAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE;SAC/D;QAEL,OAAO,UAAU,CAAC;KACrB;IAED,WAAW,CAAC,QAAyC,EAAE,SAAsB,EAAE;QAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,AAAC;QACnD,IAAI,SAAS,KAAK,SAAS,EACvB,OAAO,iBAAiB,CAAC;QAE7B,MAAM,MAAM,GAAG,yCAAiB,CAAC,SAAS,CAAC,AAAC;QAC5C,OAAoB,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE;KAClG;CACJ;AAEM,SAAS,yCAAQ,CAAC,UAAsB,EAAE,MAAc,EAAE;IAC7D,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,iCAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;CAClF;AAED,SAAS,iCAAW,CAAC,KAAa,EAAE;IAChC,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;CACxC;AAEM,MAAM,yCAAkB,GAAG,IAAI,gCAAU,EAAE,AAAC;;;AE5DnD;IAIO,yCAQN;UARW,yCAAS;IAAT,yCAAS,CAAT,yCAAS,CACjB,QAAM,IAAG,CAAC,IAAV,QAAM;IADE,yCAAS,CAAT,yCAAS,CAEjB,SAAO,IAAG,CAAC,IAAX,SAAO;IAFC,yCAAS,CAAT,yCAAS,CAGjB,WAAS,IAAG,CAAC,IAAb,WAAS;IAHD,yCAAS,CAAT,yCAAS,CAIjB,UAAQ,IAAG,CAAC,IAAZ,UAAQ;IAJA,yCAAS,CAAT,yCAAS,CAKjB,QAAM,IAAG,CAAC,IAAV,QAAM;IALE,yCAAS,CAAT,yCAAS,CAMjB,UAAQ,IAAG,CAAC,IAAZ,UAAQ;IANA,yCAAS,CAAT,yCAAS,CAOjB,QAAM,IAAG,CAAC,IAAV,QAAM;GAPE,yCAAS,KAAT,yCAAS;AAUrB,IAAU,0BAAI,AAsBb;;IArBU,SAAS,OAAO,CAAC,QAAkB,EAAE,IAAU,EAAE,cAA0B,EAAY;QAC1F,IAAI,IAAI,KAAK,MAAM,EAAE;YACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;gBAAE,OAAO,EAAE,cAAc,IAAI,yCAAS,CAAC,MAAM;aAAE,CAAC,AAAC;YAC3F,OAAO,KAAK,GAAG,QAAQ,GACjB,KAAK,CAAC,KAAK,CAAC;gBAAE,IAAI,EAAE,CAAC;aAAE,CAAC,GACxB,KAAK,CAAC;SACf,MAEG,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAErC;SAVe,OAAO,GAAP,OAAO;IAYhB,SAAS,UAAU,CAAC,IAAU,EAAE,MAAM,GAAG,CAAC,EAAY;QACzD,OAAQ,IAAI;YACR,KAAK,MAAM;gBAAE,OAAO,eAAQ,CAAC,UAAU,CAAC;oBAAE,KAAK,EAAE,MAAM;iBAAE,CAAC,CAAC;YAC3D,KAAK,KAAK;gBAAE,OAAO,eAAQ,CAAC,UAAU,CAAC;oBAAE,IAAI,EAAE,MAAM;iBAAE,CAAC,CAAC;YACzD,KAAK,MAAM;gBAAE,OAAO,eAAQ,CAAC,UAAU,CAAC;oBAAE,IAAI,EAAE,CAAC,GAAG,MAAM;iBAAE,CAAC,CAAC;YAC9D,KAAK,OAAO;gBAAE,OAAO,eAAQ,CAAC,UAAU,CAAC;oBAAE,MAAM,EAAE,MAAM;iBAAE,CAAC,CAAC;YAC7D,KAAK,MAAM;gBAAE,OAAO,eAAQ,CAAC,UAAU,CAAC;oBAAE,KAAK,EAAE,MAAM;iBAAE,CAAC,CAAC;SAC9D;KACJ;SARe,UAAU,GAAV,UAAU;GAbpB,0BAAI,KAAJ,0BAAI;;;ACVd,IAAU,gCAAU,AAYnB;;AChBD;;AAGO,MAAM,yCAAe;IACxB,YAAmB,KAAa,EAAS,SAAiB,CAAE;aAAzC,KAAa,GAAb,KAAa;aAAS,SAAiB,GAAjB,SAAiB;KACzD;IAED,OAAO,KAAK,CAAC,KAAa,EAAE;QACxB,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,yCAAsB,EAAE,yCAAyB,CAAC,AAAC;QAC3G,IAAI,UAAU,CAAC,QAAQ,CAAC,yCAAyB,CAAC,EAC9C,UAAU,IAAI,GAAG,CAAC;QAEtB,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,AAAC;QACvF,OAAO,IAAI,yCAAe,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;KACjE;IAED,QAAQ,GAAG;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KAChC;IAED,OAAO,GAAG;QACN,OAAO,yCAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KAC9D;IAED,WAAW,GAAG;QACV,OAAO,yCAAe,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KAClE;IAED,aAAa,GAAG;QACZ,OAAO,yCAAe,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACpE;IAED,iBAAiB,GAAG;QAChB,OAAO,yCAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KACxE;CACJ;;ID9BU,SAAS,MAAM,CAAC,KAAiB,EAA4B;QAChE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;KACpC;eAFe,MAAM,GAAN,MAAM;IAIf,SAAS,MAAM,CAAC,KAAiB,EAAmB;QACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;KACpC;eAFe,MAAM,GAAN,MAAM;IAIf,SAAS,MAAM,CAAC,KAAiB,EAAE;QACtC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;KACjD;eAFe,MAAM,GAAN,MAAM;GAThB,gCAAU,KAAV,gCAAU","sources":["src/index.ts","src/register-library.ts","src/number-formatter.ts","src/register-convention.ts","src/register-utils.ts","src/step.ts","src/time-or-rule.ts","src/precision-number.ts"],"sourcesContent":["import type { ConsumptionTypeId } from \"./consumption-type-id\";\nimport type { RegisterId } from \"./register-id\";\nimport type { UnitId } from \"./unit-id\";\nimport { RegisterLibrary } from \"./register-library\";\nimport type { RegisterDefinition } from \"./register-definition\";\nimport { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator } from \"./number-formatter\";\nimport { RegisterConvention } from \"./register-convention\";\nimport type { AggregateId } from \"./aggregate-id\";\nimport type { MeasureId } from \"./measure-id\";\nimport { Step, DayOfWeek } from \"./step\";\nimport { TimeOrRule } from \"./time-or-rule\";\nimport { PrecisionNumber } from \"./precision-number\";\nimport \"./repository\"; // We need this to get the Repository namespace exported\nimport type { Repository } from \"./repository\";\nimport type { Optional } from \"./optional\";\n\nexport {\n AggregateId,\n ConsumptionTypeId,\n DayOfWeek,\n MeasureId,\n NumberFormatter,\n PrecisionNumber,\n RegisterConvention,\n RegisterDefinition,\n RegisterId,\n RegisterLibrary,\n Repository,\n Step,\n TimeOrRule,\n UnitId,\n invariantDecimalSeparator,\n localeDecimalSeparator,\n Optional,\n};\n","import { RegisterDefinition } from \"./register-definition\";\nimport { RegisterId } from \"./register-id\";\nimport { RegisterPack } from \"./register-pack\";\n\nclass Library {\n private definitions: Partial<{ [id in RegisterId]: RegisterDefinition }> = {};\n public add(...definitions: (RegisterDefinition | RegisterPack)[]) {\n for (const definition of definitions) {\n if (isDefinition(definition)) {\n this.tryAdd(definition);\n }\n else {\n for (const definitionInPack of Object.values(definition)) {\n this.tryAdd(definitionInPack);\n }\n }\n }\n }\n\n private tryAdd(definition: RegisterDefinition) {\n if (!this.definitions[definition.id]) {\n this.definitions[definition.id] = definition;\n return true;\n }\n return false;\n }\n\n public has(id: RegisterId) {\n return !!this.definitions[id];\n }\n\n public tryGet(id: RegisterId) {\n return this.definitions[id];\n }\n\n public get(id: RegisterId) {\n const definition = this.definitions[id];\n if (!definition) {\n throw new Error(`Defintion was not loaded for register ${id}`);\n }\n return definition;\n }\n\n public all() {\n return Object.values(this.definitions).map(x => x!);\n }\n\n public reset() {\n this.definitions = {};\n }\n}\n\nfunction isDefinition(definitionOrPack: RegisterDefinition | RegisterPack): definitionOrPack is RegisterDefinition {\n return !!(definitionOrPack.id && definitionOrPack.aggregate && definitionOrPack.units);\n}\n\nexport const RegisterLibrary = new Library();\r\n","export const invariantDecimalSeparator = (0.1).toString()[1];\nexport const localeDecimalSeparator = (0.1).toLocaleString()[1];\n\nexport interface Parts {\n invariantPrecisionString: string;\n invariantCoefficientString: string;\n exponent: number;\n noOfCoefficientDecimals: number;\n}\n\nclass Formatter {\n public toPrecision(value: number, precision: number) {\n if (value === 0) {\n // (0).toPrecision(1) == \"0\"\n // (0).toPrecision(2) == \"0.0\"\n // (0).toPrecision(3) == \"0.00\"\n // However, we want:\n // Formatter.toPrecision(0, 0) == \"0\"\n // Formatter.toPrecision(0, 1) == \"0.0\"\n // Formatter.toPrecision(0, 2) == \"0.00\"\n return value.toPrecision(precision + 1);\n }\n const absValue = Math.abs(value);\n if (absValue < 1) {\n return value.toPrecision(precision);\n }\n\n const noOfIntegerDigits = Math.round(absValue).toString().length;\n return precision >= noOfIntegerDigits\n ? value.toFixed(precision - noOfIntegerDigits)\n : value.toPrecision(precision);\n }\n\n public toLocalePrecision(value: number, precision: number) {\n return this.toPrecision(value, precision)\n .replace(invariantDecimalSeparator, localeDecimalSeparator);\n }\n\n public toFixed(value: number, precision: number) {\n const parts = this.getParts(value, precision);\n if (parts.noOfCoefficientDecimals < parts.exponent) {\n const number = parts.invariantCoefficientString.replace(invariantDecimalSeparator, \"\");\n const zeros = parts.exponent - parts.noOfCoefficientDecimals;\n return `${number}${\"0\".repeat(zeros)}`;\n }\n else {\n return parts.invariantPrecisionString;\n }\n }\n\n public toLocaleFixed(value: number, precision: number) {\n return this.toFixed(value, precision)\n .replace(invariantDecimalSeparator, localeDecimalSeparator);\n }\n\n public getParts(value: number, precision: number): Parts {\n const precisionString = this.toPrecision(value, precision);\n if (precisionString.indexOf(\"e\") >= 0) {\n const match = /(.*)e([\\+-]\\d+)$/.exec(precisionString)!;\n const coefficientString = match[1];\n const exponent = parseInt(match[2]);\n const decimalSeparatorIndex = coefficientString.indexOf(invariantDecimalSeparator);\n const noOfCoefficientDecimals = decimalSeparatorIndex >= 0\n ? coefficientString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: coefficientString,\n exponent,\n noOfCoefficientDecimals,\n };\n }\n else {\n const decimalSeparatorIndex = precisionString.indexOf(invariantDecimalSeparator);\n const noOfCoefficientDecimals = decimalSeparatorIndex >= 0\n ? precisionString.length - decimalSeparatorIndex - 1\n : 0;\n return {\n invariantPrecisionString: precisionString,\n invariantCoefficientString: precisionString,\n exponent: 0,\n noOfCoefficientDecimals,\n };\n }\n }\n}\n\nexport const NumberFormatter = new Formatter();\n","import { RegisterDefinition } from \".\";\nimport { AggregateId } from \"./aggregate-id\";\nimport { RegisterId } from \"./register-id\";\nimport { getRegisterId } from \"./register-utils\";\n\nexport const aggregatePrefixes: { [aggregateId in AggregateId]: string } = {\n instant: \"\",\n diff: \"diff\",\n min: \"min\",\n max: \"max\",\n avg: \"avg\",\n sum: \"sum\",\n cnt: \"cnt\",\n ssq: \"ssq\",\n};\n\nclass Convention {\n public getAggregate(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n // Brute force all prefixes - if none of them, then it must be instant.\n for (const aggregateString of Object.keys(aggregatePrefixes)) {\n const aggregate = <AggregateId>aggregateString;\n const prefix = aggregatePrefixes[aggregate];\n if (prefix.length && isPrefix(registerId, prefix)) {\n // Not instant - it was any of the others.\n return aggregate;\n }\n }\n return \"instant\";\n }\n\n toInstant(register: RegisterId | RegisterDefinition) {\n const registerId = getRegisterId(register);\n for (const prefix of Object.values(aggregatePrefixes)) {\n if (prefix.length && isPrefix(registerId, prefix)) {\n const tail = registerId.substr(prefix.length);\n return <RegisterId>(tail[0].toLowerCase() + tail.substr(1));\n }\n }\n return registerId;\n }\n\n toAggregate(register: RegisterId | RegisterDefinition, aggregate: AggregateId) {\n const instantRegisterId = this.toInstant(register);\n if (aggregate === \"instant\") {\n return instantRegisterId;\n }\n const prefix = aggregatePrefixes[aggregate];\n return <RegisterId>(prefix + instantRegisterId[0].toUpperCase() + instantRegisterId.substr(1));\n }\n}\n\nexport function isPrefix(registerId: RegisterId, prefix: string) {\n return registerId.startsWith(prefix) && isUppercase(registerId[prefix.length]);\n}\n\nfunction isUppercase(input: string) {\n return input.toUpperCase() === input;\n}\n\nexport const RegisterConvention = new Convention();\r\n","import { RegisterDefinition } from \"./register-definition\";\nimport { RegisterId } from \"./register-id\";\n\nexport function getRegisterId(register: RegisterId | RegisterDefinition) {\n return typeof register === \"string\" ? register : register.id;\n}\r\n","import { DateTime, Duration } from \"luxon\";\n\nexport type Step = \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport enum DayOfWeek {\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n Sunday = 7,\n};\n\nnamespace Step {\n export function startOf(dateTime: DateTime, step: Step, firstDayOfWeek?: DayOfWeek): DateTime {\n if (step === \"week\") {\n const value = dateTime.startOf(\"day\").set({ weekday: firstDayOfWeek ?? DayOfWeek.Monday });\n return value > dateTime\n ? value.minus({ days: 7 })\n : value;\n }\n else {\n return dateTime.startOf(step);\n }\n }\n\n export function asDuration(step: Step, amount = 1): Duration {\n switch (step) {\n case \"hour\": return Duration.fromObject({ hours: amount });\n case \"day\": return Duration.fromObject({ days: amount });\n case \"week\": return Duration.fromObject({ days: 7 * amount });\n case \"month\": return Duration.fromObject({ months: amount });\n case \"year\": return Duration.fromObject({ years: amount });\n }\n }\n}\n","import { DateTime } from \"luxon\";\n\nexport type TimeOrRule = Date | DateTime | string;\n\nnamespace TimeOrRule {\n export function isTime(input: TimeOrRule): input is Date | DateTime {\n return typeof input !== \"string\";\n }\n\n export function isRule(input: TimeOrRule): input is string {\n return typeof input === \"string\";\n }\n\n export function asJSON(input: TimeOrRule) {\n return isRule(input) ? input : input.toJSON();\n }\n}\n","import { invariantDecimalSeparator } from \".\";\nimport { localeDecimalSeparator, NumberFormatter } from \"./number-formatter\";\n\nexport class PrecisionNumber {\n constructor(public value: number, public precision: number) {\n }\n\n static parse(input: string) {\n let normalized = input.trim().replace(\",\", \".\").replace(localeDecimalSeparator, invariantDecimalSeparator);\n if (normalized.endsWith(invariantDecimalSeparator)) {\n normalized += \"0\";\n }\n const precision = normalized.replace(\".\", \"\").replace(\"+\", \"\").replace(\"-\", \"\").length;\n return new PrecisionNumber(parseFloat(normalized), precision);\n }\n\n toString() {\n return this.value.toString();\n }\n\n toFixed() {\n return NumberFormatter.toFixed(this.value, this.precision);\n }\n\n toPrecision() {\n return NumberFormatter.toPrecision(this.value, this.precision);\n }\n\n toLocaleFixed() {\n return NumberFormatter.toLocaleFixed(this.value, this.precision);\n }\n\n toLocalePrecision() {\n return NumberFormatter.toLocalePrecision(this.value, this.precision);\n }\n}\n"],"names":[],"version":3,"file":"index.mjs.map"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { Step, DayOfWeek } from "./step";
|
|
|
11
11
|
import { TimeOrRule } from "./time-or-rule";
|
|
12
12
|
import { PrecisionNumber } from "./precision-number";
|
|
13
13
|
import "./repository"; // We need this to get the Repository namespace exported
|
|
14
|
-
import { Repository } from "./repository";
|
|
14
|
+
import type { Repository } from "./repository";
|
|
15
15
|
import type { Optional } from "./optional";
|
|
16
16
|
|
|
17
17
|
export {
|
package/src/repository.ts
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
// This is clearly not correct but it provides some amazing type safety
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (name) {
|
|
8
|
-
return <Repository>`${repoOrTeam}/${name}`;
|
|
9
|
-
} else if (repoOrTeam.indexOf("/") > 0) {
|
|
10
|
-
return <Repository>repoOrTeam;
|
|
11
|
-
} else {
|
|
12
|
-
throw new TypeError("Invalid repository format");
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export function split(repo: Repository) {
|
|
18
|
-
const parts = repo.split("/");
|
|
19
|
-
return {
|
|
20
|
-
team: parts[0],
|
|
21
|
-
name: parts[1],
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
}
|
|
1
|
+
// This is clearly not correct but it provides some amazing type safety
|
|
2
|
+
type Repository = "some/repo";
|
|
3
|
+
|
|
4
|
+
function Repository(repo: string): Repository;
|
|
5
|
+
function Repository(team: string, name: string): Repository;
|
|
6
|
+
function Repository(repoOrTeam: string, name?: string): Repository {
|
|
7
|
+
if (name) {
|
|
8
|
+
return <Repository>`${repoOrTeam}/${name}`;
|
|
9
|
+
} else if (repoOrTeam.indexOf("/") > 0) {
|
|
10
|
+
return <Repository>repoOrTeam;
|
|
11
|
+
} else {
|
|
12
|
+
throw new TypeError("Invalid repository format");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
namespace Repository {
|
|
17
|
+
export function split(repo: Repository) {
|
|
18
|
+
const parts = repo.split("/");
|
|
19
|
+
return {
|
|
20
|
+
team: parts[0],
|
|
21
|
+
name: parts[1],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { Repository };
|
package/src/step.ts
CHANGED
|
@@ -12,8 +12,8 @@ export enum DayOfWeek {
|
|
|
12
12
|
Sunday = 7,
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
export function startOf(dateTime: DateTime, step: Step, firstDayOfWeek?: DayOfWeek) {
|
|
15
|
+
namespace Step {
|
|
16
|
+
export function startOf(dateTime: DateTime, step: Step, firstDayOfWeek?: DayOfWeek): DateTime {
|
|
17
17
|
if (step === "week") {
|
|
18
18
|
const value = dateTime.startOf("day").set({ weekday: firstDayOfWeek ?? DayOfWeek.Monday });
|
|
19
19
|
return value > dateTime
|
|
@@ -24,7 +24,7 @@ export namespace Step {
|
|
|
24
24
|
return dateTime.startOf(step);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
export function asDuration(step: Step, amount = 1): Duration {
|
|
29
29
|
switch (step) {
|
|
30
30
|
case "hour": return Duration.fromObject({ hours: amount });
|
|
@@ -34,4 +34,4 @@ export namespace Step {
|
|
|
34
34
|
case "year": return Duration.fromObject({ years: amount });
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
}
|
|
37
|
+
}
|
package/src/time-or-rule.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { DateTime } from "luxon";
|
|
|
2
2
|
|
|
3
3
|
export type TimeOrRule = Date | DateTime | string;
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
namespace TimeOrRule {
|
|
6
6
|
export function isTime(input: TimeOrRule): input is Date | DateTime {
|
|
7
7
|
return typeof input !== "string";
|
|
8
8
|
}
|
|
@@ -10,8 +10,8 @@ export namespace TimeOrRule {
|
|
|
10
10
|
export function isRule(input: TimeOrRule): input is string {
|
|
11
11
|
return typeof input === "string";
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
export function asJSON(input: TimeOrRule) {
|
|
15
15
|
return isRule(input) ? input : input.toJSON();
|
|
16
16
|
}
|
|
17
|
-
}
|
|
17
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|