@onereach/billing-shared 31.17.4-beta.13576.0 → 31.17.4-beta.13600.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/cjs/{usage-granularity/source-event-policy.js → constants/db-event-type-map.js} +1 -13
  2. package/dist/cjs/constants/db-event-type-map.js.map +1 -0
  3. package/dist/cjs/constants/index.js +1 -0
  4. package/dist/cjs/constants/index.js.map +1 -1
  5. package/dist/cjs/index.js +0 -2
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/{usage-granularity/reporting.types.js → types/usage-collection.js} +1 -1
  8. package/dist/cjs/types/usage-collection.js.map +1 -0
  9. package/dist/cjs/utils/generate-pull-slots.js +17 -0
  10. package/dist/cjs/utils/generate-pull-slots.js.map +1 -0
  11. package/dist/cjs/utils/get-druid-event-types.js +16 -0
  12. package/dist/cjs/utils/get-druid-event-types.js.map +1 -0
  13. package/dist/cjs/utils/index.js +2 -0
  14. package/dist/cjs/utils/index.js.map +1 -1
  15. package/dist/esm/{usage-granularity/metric-policy.js → constants/db-event-type-map.js} +6 -14
  16. package/dist/esm/constants/db-event-type-map.js.map +1 -0
  17. package/dist/esm/constants/index.js +1 -0
  18. package/dist/esm/constants/index.js.map +1 -1
  19. package/dist/esm/index.js +0 -2
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/types/usage-collection.js +2 -0
  22. package/dist/esm/types/usage-collection.js.map +1 -0
  23. package/dist/esm/utils/generate-pull-slots.js +14 -0
  24. package/dist/esm/utils/generate-pull-slots.js.map +1 -0
  25. package/dist/esm/utils/get-druid-event-types.js +13 -0
  26. package/dist/esm/utils/get-druid-event-types.js.map +1 -0
  27. package/dist/esm/utils/index.js +2 -0
  28. package/dist/esm/utils/index.js.map +1 -1
  29. package/dist/types/{usage-granularity/source-event-policy.d.ts → constants/db-event-type-map.d.ts} +1 -2
  30. package/dist/types/constants/db-event-type-map.d.ts.map +1 -0
  31. package/dist/types/constants/index.d.ts +1 -0
  32. package/dist/types/constants/index.d.ts.map +1 -1
  33. package/dist/types/index.d.ts +0 -2
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/types/index.d.ts +1 -0
  36. package/dist/types/types/index.d.ts.map +1 -1
  37. package/dist/types/types/usage-collection.d.ts +14 -0
  38. package/dist/types/types/usage-collection.d.ts.map +1 -0
  39. package/dist/types/utils/generate-pull-slots.d.ts +5 -0
  40. package/dist/types/utils/generate-pull-slots.d.ts.map +1 -0
  41. package/dist/types/utils/get-druid-event-types.d.ts +3 -0
  42. package/dist/types/utils/get-druid-event-types.d.ts.map +1 -0
  43. package/dist/types/utils/index.d.ts +2 -0
  44. package/dist/types/utils/index.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/src/{usage-granularity/source-event-policy.ts → constants/db-event-type-map.ts} +1 -13
  47. package/src/constants/index.ts +1 -0
  48. package/src/index.ts +0 -2
  49. package/src/types/index.ts +1 -0
  50. package/src/types/usage-collection.ts +15 -0
  51. package/src/utils/generate-pull-slots.ts +25 -0
  52. package/src/utils/get-druid-event-types.ts +16 -0
  53. package/src/utils/index.ts +2 -0
  54. package/dist/cjs/billing-boundaries/index.js +0 -49
  55. package/dist/cjs/billing-boundaries/index.js.map +0 -1
  56. package/dist/cjs/billing-boundaries/types.js +0 -3
  57. package/dist/cjs/billing-boundaries/types.js.map +0 -1
  58. package/dist/cjs/usage-granularity/constants.js +0 -7
  59. package/dist/cjs/usage-granularity/constants.js.map +0 -1
  60. package/dist/cjs/usage-granularity/index.js +0 -23
  61. package/dist/cjs/usage-granularity/index.js.map +0 -1
  62. package/dist/cjs/usage-granularity/metric-policy.js +0 -45
  63. package/dist/cjs/usage-granularity/metric-policy.js.map +0 -1
  64. package/dist/cjs/usage-granularity/reporting.types.js.map +0 -1
  65. package/dist/cjs/usage-granularity/source-event-policy.js.map +0 -1
  66. package/dist/cjs/usage-granularity/types.js +0 -3
  67. package/dist/cjs/usage-granularity/types.js.map +0 -1
  68. package/dist/cjs/usage-granularity/usage-granularity.js +0 -67
  69. package/dist/cjs/usage-granularity/usage-granularity.js.map +0 -1
  70. package/dist/esm/billing-boundaries/index.js +0 -42
  71. package/dist/esm/billing-boundaries/index.js.map +0 -1
  72. package/dist/esm/billing-boundaries/types.js +0 -2
  73. package/dist/esm/billing-boundaries/types.js.map +0 -1
  74. package/dist/esm/usage-granularity/constants.js +0 -4
  75. package/dist/esm/usage-granularity/constants.js.map +0 -1
  76. package/dist/esm/usage-granularity/index.js +0 -7
  77. package/dist/esm/usage-granularity/index.js.map +0 -1
  78. package/dist/esm/usage-granularity/metric-policy.js.map +0 -1
  79. package/dist/esm/usage-granularity/reporting.types.js +0 -2
  80. package/dist/esm/usage-granularity/reporting.types.js.map +0 -1
  81. package/dist/esm/usage-granularity/source-event-policy.js +0 -43
  82. package/dist/esm/usage-granularity/source-event-policy.js.map +0 -1
  83. package/dist/esm/usage-granularity/types.js +0 -2
  84. package/dist/esm/usage-granularity/types.js.map +0 -1
  85. package/dist/esm/usage-granularity/usage-granularity.js +0 -60
  86. package/dist/esm/usage-granularity/usage-granularity.js.map +0 -1
  87. package/dist/types/billing-boundaries/index.d.ts +0 -6
  88. package/dist/types/billing-boundaries/index.d.ts.map +0 -1
  89. package/dist/types/billing-boundaries/types.d.ts +0 -9
  90. package/dist/types/billing-boundaries/types.d.ts.map +0 -1
  91. package/dist/types/usage-granularity/constants.d.ts +0 -4
  92. package/dist/types/usage-granularity/constants.d.ts.map +0 -1
  93. package/dist/types/usage-granularity/index.d.ts +0 -7
  94. package/dist/types/usage-granularity/index.d.ts.map +0 -1
  95. package/dist/types/usage-granularity/metric-policy.d.ts +0 -4
  96. package/dist/types/usage-granularity/metric-policy.d.ts.map +0 -1
  97. package/dist/types/usage-granularity/reporting.types.d.ts +0 -14
  98. package/dist/types/usage-granularity/reporting.types.d.ts.map +0 -1
  99. package/dist/types/usage-granularity/source-event-policy.d.ts.map +0 -1
  100. package/dist/types/usage-granularity/types.d.ts +0 -8
  101. package/dist/types/usage-granularity/types.d.ts.map +0 -1
  102. package/dist/types/usage-granularity/usage-granularity.d.ts +0 -7
  103. package/dist/types/usage-granularity/usage-granularity.d.ts.map +0 -1
  104. package/src/billing-boundaries/index.ts +0 -52
  105. package/src/billing-boundaries/types.ts +0 -9
  106. package/src/usage-granularity/constants.ts +0 -5
  107. package/src/usage-granularity/index.ts +0 -6
  108. package/src/usage-granularity/metric-policy.ts +0 -41
  109. package/src/usage-granularity/reporting.types.ts +0 -15
  110. package/src/usage-granularity/types.ts +0 -9
  111. package/src/usage-granularity/usage-granularity.ts +0 -72
@@ -2,7 +2,6 @@
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.DB_EVENT_TYPE_MAP = void 0;
5
- exports.getDruidEventTypes = getDruidEventTypes;
6
5
  var category_namespace_1 = require("../enums/category-namespace");
7
6
  var customer_usage_1 = require("../enums/customer-usage");
8
7
  exports.DB_EVENT_TYPE_MAP = (_a = {},
@@ -34,15 +33,4 @@ exports.DB_EVENT_TYPE_MAP = (_a = {},
34
33
  category_namespace_1.CategoryNamespace.PRODUCT,
35
34
  ],
36
35
  _a);
37
- var CATEGORY_NAMESPACES = new Set(Object.values(category_namespace_1.CategoryNamespace));
38
- function getDruidEventTypes(metadata) {
39
- if (!Array.isArray(metadata === null || metadata === void 0 ? void 0 : metadata.tables))
40
- return [];
41
- var eventTypes = metadata.tables.flatMap(function (table) {
42
- if (typeof table !== 'object' || table === null || !('eventTypes' in table))
43
- return [];
44
- return Array.isArray(table.eventTypes) ? table.eventTypes : [];
45
- });
46
- return Array.from(new Set(eventTypes.filter(function (eventType) { return (typeof eventType === 'string' && CATEGORY_NAMESPACES.has(eventType)); })));
47
- }
48
- //# sourceMappingURL=source-event-policy.js.map
36
+ //# sourceMappingURL=db-event-type-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-event-type-map.js","sourceRoot":"","sources":["../../../src/constants/db-event-type-map.ts"],"names":[],"mappings":";;;;AAAA,kEAAgE;AAChE,0DAA6D;AAGhD,QAAA,iBAAiB;IAC5B,GAAC,mCAAkB,CAAC,KAAK,IAAG;QAC1B,sCAAiB,CAAC,eAAe;QACjC,sCAAiB,CAAC,gBAAgB;QAClC,sCAAiB,CAAC,kBAAkB;QACpC,sCAAiB,CAAC,6BAA6B;QAC/C,sCAAiB,CAAC,MAAM;QACxB,sCAAiB,CAAC,eAAe;QACjC,sCAAiB,CAAC,cAAc;QAChC,sCAAiB,CAAC,iBAAiB;QACnC,sCAAiB,CAAC,WAAW;QAC7B,sCAAiB,CAAC,eAAe;QACjC,sCAAiB,CAAC,gBAAgB;QAClC,sCAAiB,CAAC,UAAU;QAC5B,sCAAiB,CAAC,IAAI;QACtB,sCAAiB,CAAC,OAAO;KAC1B;IACD,GAAC,mCAAkB,CAAC,KAAK,IAAG;QAC1B,sCAAiB,CAAC,cAAc;QAChC,sCAAiB,CAAC,kBAAkB;QACpC,sCAAiB,CAAC,gBAAgB;QAClC,sCAAiB,CAAC,MAAM;QACxB,sCAAiB,CAAC,eAAe;QACjC,sCAAiB,CAAC,gBAAgB;QAClC,sCAAiB,CAAC,WAAW;QAC7B,sCAAiB,CAAC,cAAc;QAChC,sCAAiB,CAAC,OAAO;KAC1B;QACD"}
@@ -20,4 +20,5 @@ __exportStar(require("./currency"), exports);
20
20
  exports.test = 'test';
21
21
  exports.BATCH_SIZE = 10;
22
22
  __exportStar(require("./vendor-ids"), exports);
23
+ __exportStar(require("./db-event-type-map"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B;AAEd,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,UAAU,GAAG,EAAE,CAAC;AAC7B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B;AAEd,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,UAAU,GAAG,EAAE,CAAC;AAC7B,+CAA6B;AAC7B,sDAAoC"}
package/dist/cjs/index.js CHANGED
@@ -18,6 +18,4 @@ __exportStar(require("./enums"), exports);
18
18
  __exportStar(require("./constants"), exports);
19
19
  __exportStar(require("./types"), exports);
20
20
  __exportStar(require("./utils"), exports);
21
- __exportStar(require("./usage-granularity"), exports);
22
- __exportStar(require("./billing-boundaries"), exports);
23
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAwB;AACxB,sDAAoC;AACpC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAwB"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=reporting.types.js.map
3
+ //# sourceMappingURL=usage-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-collection.js","sourceRoot":"","sources":["../../../src/types/usage-collection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePullSlots = generatePullSlots;
4
+ function generatePullSlots(dateFrom, dateTo, intervalMs) {
5
+ var starTimeMs = new Date(dateFrom).getTime();
6
+ var endTimeMs = new Date(dateTo).getTime();
7
+ var periods = [];
8
+ while (starTimeMs < endTimeMs) {
9
+ periods.push({
10
+ dateFrom: new Date(starTimeMs),
11
+ dateTo: new Date(starTimeMs + intervalMs),
12
+ });
13
+ starTimeMs += intervalMs;
14
+ }
15
+ return periods;
16
+ }
17
+ //# sourceMappingURL=generate-pull-slots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-pull-slots.js","sourceRoot":"","sources":["../../../src/utils/generate-pull-slots.ts"],"names":[],"mappings":";;AAQA,8CAgBC;AAhBD,SAAgB,iBAAiB,CAC/B,QAAc,EACd,MAAY,EACZ,UAAkB;IAElB,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,IAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,OAAO,UAAU,GAAG,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC;YAC9B,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC1C,CAAC,CAAC;QACH,UAAU,IAAI,UAAU,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDruidEventTypes = getDruidEventTypes;
4
+ var category_namespace_1 = require("../enums/category-namespace");
5
+ var CATEGORY_NAMESPACES = new Set(Object.values(category_namespace_1.CategoryNamespace));
6
+ function getDruidEventTypes(metadata) {
7
+ if (!Array.isArray(metadata === null || metadata === void 0 ? void 0 : metadata.tables))
8
+ return [];
9
+ var eventTypes = metadata.tables.flatMap(function (table) {
10
+ if (typeof table !== 'object' || table === null || !('eventTypes' in table))
11
+ return [];
12
+ return Array.isArray(table.eventTypes) ? table.eventTypes : [];
13
+ });
14
+ return Array.from(new Set(eventTypes.filter(function (eventType) { return (typeof eventType === 'string' && CATEGORY_NAMESPACES.has(eventType)); })));
15
+ }
16
+ //# sourceMappingURL=get-druid-event-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-druid-event-types.js","sourceRoot":"","sources":["../../../src/utils/get-druid-event-types.ts"],"names":[],"mappings":";;AAIA,gDAWC;AAfD,kEAAgE;AAEhE,IAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,sCAAiB,CAAC,CAAC,CAAC;AAE9E,SAAgB,kBAAkB,CAAC,QAAkC;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhD,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvF,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAC,SAAS,IAAqC,OAAA,CACzF,OAAO,SAAS,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CACpE,EAF0F,CAE1F,CAAC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -21,4 +21,6 @@ __exportStar(require("./format-date"), exports);
21
21
  __exportStar(require("./escape-csv-value"), exports);
22
22
  __exportStar(require("./build-csv-file-name"), exports);
23
23
  __exportStar(require("./build-csv-file-string"), exports);
24
+ __exportStar(require("./get-druid-event-types"), exports);
25
+ __exportStar(require("./generate-pull-slots"), exports);
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,qDAAmC;AACnC,yCAAuB;AACvB,gDAA8B;AAC9B,qDAAmC;AACnC,wDAAsC;AACtC,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,qDAAmC;AACnC,yCAAuB;AACvB,gDAA8B;AAC9B,qDAAmC;AACnC,wDAAsC;AACtC,0DAAwC;AACxC,0DAAwC;AACxC,wDAAsC"}
@@ -1,6 +1,6 @@
1
1
  import { CategoryNamespace } from '../enums/category-namespace';
2
2
  import { DataSourceProvider } from '../enums/customer-usage';
3
- const COARSE_EVENTS = {
3
+ export const DB_EVENT_TYPE_MAP = {
4
4
  [DataSourceProvider.AZURE]: [
5
5
  CategoryNamespace.PROCESSING_FLOW,
6
6
  CategoryNamespace.PROCESSING_VOICE,
@@ -11,10 +11,11 @@ const COARSE_EVENTS = {
11
11
  CategoryNamespace.MESSAGING_TEXT,
12
12
  CategoryNamespace.CONVERSATIONS_WAP,
13
13
  CategoryNamespace.CARRIER_FEE,
14
- CategoryNamespace.USER,
15
- CategoryNamespace.IDENTIFIER,
16
14
  CategoryNamespace.STORAGE_GENERAL,
17
15
  CategoryNamespace.STORAGE_WEAVIATE,
16
+ CategoryNamespace.IDENTIFIER,
17
+ CategoryNamespace.USER,
18
+ CategoryNamespace.PRODUCT,
18
19
  ],
19
20
  [DataSourceProvider.DRUID]: [
20
21
  CategoryNamespace.EXECUTABLE_LLM,
@@ -25,16 +26,7 @@ const COARSE_EVENTS = {
25
26
  CategoryNamespace.PROCESSING_VOICE,
26
27
  CategoryNamespace.CARRIER_FEE,
27
28
  CategoryNamespace.MESSAGING_TEXT,
29
+ CategoryNamespace.PRODUCT,
28
30
  ],
29
31
  };
30
- export function supportsCoarseUsageCollection(provider, eventType) {
31
- if (provider !== DataSourceProvider.AZURE && provider !== DataSourceProvider.DRUID)
32
- return false;
33
- return COARSE_EVENTS[provider].includes(eventType);
34
- }
35
- export function assertUsageCollectionMetric(provider, eventType, hours) {
36
- if (hours > 1 && !supportsCoarseUsageCollection(provider, eventType)) {
37
- throw new Error(`Coarse collection is not verified for ${provider}/${eventType}; use 1h granularity`);
38
- }
39
- }
40
- //# sourceMappingURL=metric-policy.js.map
32
+ //# sourceMappingURL=db-event-type-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-event-type-map.js","sourceRoot":"","sources":["../../../src/constants/db-event-type-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;QAC1B,iBAAiB,CAAC,eAAe;QACjC,iBAAiB,CAAC,gBAAgB;QAClC,iBAAiB,CAAC,kBAAkB;QACpC,iBAAiB,CAAC,6BAA6B;QAC/C,iBAAiB,CAAC,MAAM;QACxB,iBAAiB,CAAC,eAAe;QACjC,iBAAiB,CAAC,cAAc;QAChC,iBAAiB,CAAC,iBAAiB;QACnC,iBAAiB,CAAC,WAAW;QAC7B,iBAAiB,CAAC,eAAe;QACjC,iBAAiB,CAAC,gBAAgB;QAClC,iBAAiB,CAAC,UAAU;QAC5B,iBAAiB,CAAC,IAAI;QACtB,iBAAiB,CAAC,OAAO;KAC1B;IACD,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;QAC1B,iBAAiB,CAAC,cAAc;QAChC,iBAAiB,CAAC,kBAAkB;QACpC,iBAAiB,CAAC,gBAAgB;QAClC,iBAAiB,CAAC,MAAM;QACxB,iBAAiB,CAAC,eAAe;QACjC,iBAAiB,CAAC,gBAAgB;QAClC,iBAAiB,CAAC,WAAW;QAC7B,iBAAiB,CAAC,cAAc;QAChC,iBAAiB,CAAC,OAAO;KAC1B;CACF,CAAC"}
@@ -3,4 +3,5 @@ export * from './currency';
3
3
  export const test = 'test';
4
4
  export const BATCH_SIZE = 10;
5
5
  export * from './vendor-ids';
6
+ export * from './db-event-type-map';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAE3B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAE3B,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -2,6 +2,4 @@ export * from './enums';
2
2
  export * from './constants';
3
3
  export * from './types';
4
4
  export * from './utils';
5
- export * from './usage-granularity';
6
- export * from './billing-boundaries';
7
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=usage-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-collection.js","sourceRoot":"","sources":["../../../src/types/usage-collection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export function generatePullSlots(dateFrom, dateTo, intervalMs) {
2
+ let starTimeMs = new Date(dateFrom).getTime();
3
+ const endTimeMs = new Date(dateTo).getTime();
4
+ const periods = [];
5
+ while (starTimeMs < endTimeMs) {
6
+ periods.push({
7
+ dateFrom: new Date(starTimeMs),
8
+ dateTo: new Date(starTimeMs + intervalMs),
9
+ });
10
+ starTimeMs += intervalMs;
11
+ }
12
+ return periods;
13
+ }
14
+ //# sourceMappingURL=generate-pull-slots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-pull-slots.js","sourceRoot":"","sources":["../../../src/utils/generate-pull-slots.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,iBAAiB,CAC/B,QAAc,EACd,MAAY,EACZ,UAAkB;IAElB,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,OAAO,UAAU,GAAG,SAAS,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC;YAC9B,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC1C,CAAC,CAAC;QACH,UAAU,IAAI,UAAU,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { CategoryNamespace } from '../enums/category-namespace';
2
+ const CATEGORY_NAMESPACES = new Set(Object.values(CategoryNamespace));
3
+ export function getDruidEventTypes(metadata) {
4
+ if (!Array.isArray(metadata === null || metadata === void 0 ? void 0 : metadata.tables))
5
+ return [];
6
+ const eventTypes = metadata.tables.flatMap(table => {
7
+ if (typeof table !== 'object' || table === null || !('eventTypes' in table))
8
+ return [];
9
+ return Array.isArray(table.eventTypes) ? table.eventTypes : [];
10
+ });
11
+ return Array.from(new Set(eventTypes.filter((eventType) => (typeof eventType === 'string' && CATEGORY_NAMESPACES.has(eventType)))));
12
+ }
13
+ //# sourceMappingURL=get-druid-event-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-druid-event-types.js","sourceRoot":"","sources":["../../../src/utils/get-druid-event-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAE9E,MAAM,UAAU,kBAAkB,CAAC,QAAkC;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvF,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAkC,EAAE,CAAC,CACzF,OAAO,SAAS,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CACpE,CAAC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -5,4 +5,6 @@ export * from './format-date';
5
5
  export * from './escape-csv-value';
6
6
  export * from './build-csv-file-name';
7
7
  export * from './build-csv-file-string';
8
+ export * from './get-druid-event-types';
9
+ export * from './generate-pull-slots';
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -3,5 +3,4 @@ export declare const DB_EVENT_TYPE_MAP: {
3
3
  azure: CategoryNamespace[];
4
4
  druid: CategoryNamespace[];
5
5
  };
6
- export declare function getDruidEventTypes(metadata?: Record<string, unknown>): CategoryNamespace[];
7
- //# sourceMappingURL=source-event-policy.d.ts.map
6
+ //# sourceMappingURL=db-event-type-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-event-type-map.d.ts","sourceRoot":"","sources":["../../../src/constants/db-event-type-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAIhE,eAAO,MAAM,iBAAiB;;;CA4B7B,CAAC"}
@@ -3,4 +3,5 @@ export * from './currency';
3
3
  export declare const test = "test";
4
4
  export declare const BATCH_SIZE = 10;
5
5
  export * from './vendor-ids';
6
+ export * from './db-event-type-map';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAE3B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAE3B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
@@ -2,6 +2,4 @@ export * from './enums';
2
2
  export * from './constants';
3
3
  export * from './types';
4
4
  export * from './utils';
5
- export * from './usage-granularity';
6
- export * from './billing-boundaries';
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -6,4 +6,5 @@ export * from './threshold-calculation';
6
6
  export * from './cur-delta';
7
7
  export * from './usage-cost-collection';
8
8
  export type * from './customer-for-payments';
9
+ export type * from './usage-collection';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,mBAAmB,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,mBAAmB,yBAAyB,CAAC;AAC7C,mBAAmB,oBAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { CategoryNamespace } from '../enums/category-namespace';
2
+ import type { DataSourceProvider } from '../enums/customer-usage';
3
+ export interface UsageQueuePayload {
4
+ id: string;
5
+ provider: DataSourceProvider;
6
+ queryType: CategoryNamespace;
7
+ dateFrom: Date;
8
+ dateTo: Date;
9
+ sourceType?: string;
10
+ processingRecordId: string;
11
+ jobId: string;
12
+ }
13
+ export type InitialUsageQueuePayload = Omit<UsageQueuePayload, 'processingRecordId' | 'jobId'>;
14
+ //# sourceMappingURL=usage-collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-collection.d.ts","sourceRoot":"","sources":["../../../src/types/usage-collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,GAAG,OAAO,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function generatePullSlots(dateFrom: Date, dateTo: Date, intervalMs: number): {
2
+ dateFrom: Date;
3
+ dateTo: Date;
4
+ }[];
5
+ //# sourceMappingURL=generate-pull-slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-pull-slots.d.ts","sourceRoot":"","sources":["../../../src/utils/generate-pull-slots.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,IAAI,EACd,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,MAAM,GACjB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;CAAE,EAAE,CAYrC"}
@@ -0,0 +1,3 @@
1
+ import { CategoryNamespace } from '../enums/category-namespace';
2
+ export declare function getDruidEventTypes(metadata?: Record<string, unknown>): CategoryNamespace[];
3
+ //# sourceMappingURL=get-druid-event-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-druid-event-types.d.ts","sourceRoot":"","sources":["../../../src/utils/get-druid-event-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAIhE,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAW1F"}
@@ -5,4 +5,6 @@ export * from './format-date';
5
5
  export * from './escape-csv-value';
6
6
  export * from './build-csv-file-name';
7
7
  export * from './build-csv-file-string';
8
+ export * from './get-druid-event-types';
9
+ export * from './generate-pull-slots';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onereach/billing-shared",
3
- "version": "31.17.4-beta.13576.0",
3
+ "version": "31.17.4-beta.13600.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -1,6 +1,7 @@
1
1
  import { CategoryNamespace } from '../enums/category-namespace';
2
2
  import { DataSourceProvider } from '../enums/customer-usage';
3
3
 
4
+
4
5
  export const DB_EVENT_TYPE_MAP = {
5
6
  [DataSourceProvider.AZURE]: [
6
7
  CategoryNamespace.PROCESSING_FLOW,
@@ -30,16 +31,3 @@ export const DB_EVENT_TYPE_MAP = {
30
31
  CategoryNamespace.PRODUCT,
31
32
  ],
32
33
  };
33
-
34
- const CATEGORY_NAMESPACES = new Set<string>(Object.values(CategoryNamespace));
35
-
36
- export function getDruidEventTypes(metadata?: Record<string, unknown>): CategoryNamespace[] {
37
- if (!Array.isArray(metadata?.tables)) return [];
38
- const eventTypes = metadata.tables.flatMap(table => {
39
- if (typeof table !== 'object' || table === null || !('eventTypes' in table)) return [];
40
- return Array.isArray(table.eventTypes) ? table.eventTypes : [];
41
- });
42
- return Array.from(new Set(eventTypes.filter((eventType): eventType is CategoryNamespace => (
43
- typeof eventType === 'string' && CATEGORY_NAMESPACES.has(eventType)
44
- ))));
45
- }
@@ -4,3 +4,4 @@ export * from './currency';
4
4
  export const test = 'test';
5
5
  export const BATCH_SIZE = 10;
6
6
  export * from './vendor-ids';
7
+ export * from './db-event-type-map';
package/src/index.ts CHANGED
@@ -2,5 +2,3 @@ export * from './enums';
2
2
  export * from './constants';
3
3
  export * from './types';
4
4
  export * from './utils';
5
- export * from './usage-granularity';
6
- export * from './billing-boundaries';
@@ -6,3 +6,4 @@ export * from './threshold-calculation';
6
6
  export * from './cur-delta';
7
7
  export * from './usage-cost-collection';
8
8
  export type * from './customer-for-payments';
9
+ export type * from './usage-collection';
@@ -0,0 +1,15 @@
1
+ import type { CategoryNamespace } from '../enums/category-namespace';
2
+ import type { DataSourceProvider } from '../enums/customer-usage';
3
+
4
+ export interface UsageQueuePayload {
5
+ id: string;
6
+ provider: DataSourceProvider;
7
+ queryType: CategoryNamespace;
8
+ dateFrom: Date;
9
+ dateTo: Date;
10
+ sourceType?: string;
11
+ processingRecordId: string;
12
+ jobId: string;
13
+ }
14
+
15
+ export type InitialUsageQueuePayload = Omit<UsageQueuePayload, 'processingRecordId' | 'jobId'>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Generates period slots with dateFrom and dateTo.
3
+ *
4
+ * @param dateFrom
5
+ * @param dateTo
6
+ * @param intervalMs
7
+ * @returns An array of objects with dateFrom and dateTo.
8
+ */
9
+ export function generatePullSlots(
10
+ dateFrom: Date,
11
+ dateTo: Date,
12
+ intervalMs: number,
13
+ ): { dateFrom: Date; dateTo: Date; }[] {
14
+ let starTimeMs = new Date(dateFrom).getTime();
15
+ const endTimeMs = new Date(dateTo).getTime();
16
+ const periods: { dateFrom: Date; dateTo: Date; }[] = [];
17
+ while (starTimeMs < endTimeMs) {
18
+ periods.push({
19
+ dateFrom: new Date(starTimeMs),
20
+ dateTo: new Date(starTimeMs + intervalMs),
21
+ });
22
+ starTimeMs += intervalMs;
23
+ }
24
+ return periods;
25
+ }
@@ -0,0 +1,16 @@
1
+ import { CategoryNamespace } from '../enums/category-namespace';
2
+
3
+ const CATEGORY_NAMESPACES = new Set<string>(Object.values(CategoryNamespace));
4
+
5
+ export function getDruidEventTypes(metadata?: Record<string, unknown>): CategoryNamespace[] {
6
+ if (!Array.isArray(metadata?.tables)) return [];
7
+
8
+ const eventTypes = metadata.tables.flatMap(table => {
9
+ if (typeof table !== 'object' || table === null || !('eventTypes' in table)) return [];
10
+ return Array.isArray(table.eventTypes) ? table.eventTypes : [];
11
+ });
12
+
13
+ return Array.from(new Set(eventTypes.filter((eventType): eventType is CategoryNamespace => (
14
+ typeof eventType === 'string' && CATEGORY_NAMESPACES.has(eventType)
15
+ ))));
16
+ }
@@ -5,3 +5,5 @@ export * from './format-date';
5
5
  export * from './escape-csv-value';
6
6
  export * from './build-csv-file-name';
7
7
  export * from './build-csv-file-string';
8
+ export * from './get-druid-event-types';
9
+ export * from './generate-pull-slots';
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isUtcMidnight = isUtcMidnight;
4
- exports.isUtcInclusiveDateEnd = isUtcInclusiveDateEnd;
5
- exports.toExclusiveUtcDateEnd = toExclusiveUtcDateEnd;
6
- exports.getUtcBillingDateIssues = getUtcBillingDateIssues;
7
- var UTC_DAY_MS = 24 * 60 * 60 * 1000;
8
- function isUtcMidnight(value) {
9
- return value instanceof Date && Number.isFinite(value.getTime()) && value.getTime() % UTC_DAY_MS === 0;
10
- }
11
- function isUtcInclusiveDateEnd(value) {
12
- if (!(value instanceof Date) || !Number.isFinite(value.getTime()))
13
- return false;
14
- var time = value.getTime();
15
- return (isUtcMidnight(value) || (time + 1) % UTC_DAY_MS === 0)
16
- && Number.isFinite(new Date(Math.floor(time / UTC_DAY_MS) * UTC_DAY_MS + UTC_DAY_MS).getTime());
17
- }
18
- function toExclusiveUtcDateEnd(value) {
19
- if (!isUtcInclusiveDateEnd(value)) {
20
- throw new RangeError('Billing end date must be a UTC calendar date or UTC end of day');
21
- }
22
- return new Date(Math.floor(value.getTime() / UTC_DAY_MS) * UTC_DAY_MS + UTC_DAY_MS);
23
- }
24
- function getUtcBillingDateIssues(startDate, endDate, options) {
25
- if (options === void 0) { options = {}; }
26
- var issues = [];
27
- var prefix = options.pathPrefix ? "".concat(options.pathPrefix, ".") : '';
28
- if (!isUtcMidnight(startDate)) {
29
- issues.push({
30
- path: "".concat(prefix, "startDate"),
31
- constraints: { utcMidnight: 'Start date must be a valid date at midnight UTC' },
32
- });
33
- }
34
- var openEnd = options.allowOpenEnd && (endDate === null || endDate === undefined);
35
- if (!openEnd && !isUtcInclusiveDateEnd(endDate)) {
36
- issues.push({
37
- path: "".concat(prefix, "endDate"),
38
- constraints: { utcCalendarEnd: 'End date must be a valid UTC calendar date at midnight or 23:59:59.999 UTC (inclusive)' },
39
- });
40
- }
41
- if (isUtcMidnight(startDate) && isUtcInclusiveDateEnd(endDate) && toExclusiveUtcDateEnd(endDate) <= startDate) {
42
- issues.push({
43
- path: "".concat(prefix, "endDate"),
44
- constraints: { minDate: 'End date must not be before the start date' },
45
- });
46
- }
47
- return issues;
48
- }
49
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/billing-boundaries/index.ts"],"names":[],"mappings":";;AAIA,sCAEC;AAGD,sDAKC;AAGD,sDAKC;AAED,0DA2BC;AAjDD,IAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvC,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,KAAK,CAAC,CAAC;AACzG,CAAC;AAGD,SAAgB,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAChF,IAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7B,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,KAAK,CAAC,CAAC;WACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACpG,CAAC;AAGD,SAAgB,qBAAqB,CAAC,KAAW;IAC/C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAAC,gEAAgE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC;AACtF,CAAC;AAED,SAAgB,uBAAuB,CACrC,SAAkB,EAClB,OAAgB,EAChB,OAA0C;IAA1C,wBAAA,EAAA,YAA0C;IAE1C,IAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,IAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAG,OAAO,CAAC,UAAU,MAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,UAAG,MAAM,cAAW;YAC1B,WAAW,EAAE,EAAE,WAAW,EAAE,iDAAiD,EAAE;SAChF,CAAC,CAAC;IACL,CAAC;IACD,IAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC;IACpF,IAAI,CAAC,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,UAAG,MAAM,YAAS;YACxB,WAAW,EAAE,EAAE,cAAc,EAAE,wFAAwF,EAAE;SAC1H,CAAC,CAAC;IACL,CAAC;IACD,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;QAC9G,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,UAAG,MAAM,YAAS;YACxB,WAAW,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE;SACvE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/billing-boundaries/types.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USAGE_HOUR_MS = exports.DEFAULT_USAGE_GRANULARITY_HOURS = exports.USAGE_GRANULARITY_HOURS = void 0;
4
- exports.USAGE_GRANULARITY_HOURS = [1, 2, 3, 4, 6, 8, 12, 24];
5
- exports.DEFAULT_USAGE_GRANULARITY_HOURS = 1;
6
- exports.USAGE_HOUR_MS = 3600000;
7
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/usage-granularity/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAE9D,QAAA,+BAA+B,GAAG,CAAC,CAAC;AAEpC,QAAA,aAAa,GAAG,OAAO,CAAC"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./constants"), exports);
18
- __exportStar(require("./types"), exports);
19
- __exportStar(require("./usage-granularity"), exports);
20
- __exportStar(require("./source-event-policy"), exports);
21
- __exportStar(require("./reporting.types"), exports);
22
- __exportStar(require("./metric-policy"), exports);
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/usage-granularity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC;AAClC,kDAAgC"}