@pisell/pisellos 2.3.72 → 2.3.73

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 (42) hide show
  1. package/dist/modules/OpenData/types.d.ts +1 -0
  2. package/dist/modules/Order/utils.js +6 -1
  3. package/dist/modules/ResourcePlanner/index.d.ts +0 -22
  4. package/dist/modules/ResourcePlanner/index.js +1 -180
  5. package/dist/modules/ResourcePlanner/localClock.d.ts +33 -0
  6. package/dist/modules/ResourcePlanner/localClock.js +183 -0
  7. package/dist/modules/ResourcePlanner/planner.d.ts +5 -14
  8. package/dist/modules/ResourcePlanner/planner.js +2019 -936
  9. package/dist/modules/ResourcePlanner/types.d.ts +346 -187
  10. package/dist/modules/ResourcePlanner/types.js +33 -1
  11. package/dist/solution/BookingByStep/index.d.ts +1 -1
  12. package/dist/solution/BookingTicket/index.js +4 -2
  13. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +2 -1
  14. package/dist/solution/BookingTicket/utils/addProductDecision.js +3 -2
  15. package/dist/solution/UnifiedBookingSales/index.d.ts +110 -73
  16. package/dist/solution/UnifiedBookingSales/index.js +3349 -971
  17. package/dist/solution/UnifiedBookingSales/remoteOccupancyCache.d.ts +49 -0
  18. package/dist/solution/UnifiedBookingSales/remoteOccupancyCache.js +430 -0
  19. package/dist/solution/UnifiedBookingSales/types.d.ts +133 -76
  20. package/dist/solution/UnifiedBookingSales/types.js +4 -9
  21. package/lib/model/strategy/adapter/promotion/index.js +0 -51
  22. package/lib/modules/OpenData/types.d.ts +1 -0
  23. package/lib/modules/Order/utils.js +5 -1
  24. package/lib/modules/ResourcePlanner/index.d.ts +0 -22
  25. package/lib/modules/ResourcePlanner/index.js +0 -123
  26. package/lib/modules/ResourcePlanner/localClock.d.ts +33 -0
  27. package/lib/modules/ResourcePlanner/localClock.js +270 -0
  28. package/lib/modules/ResourcePlanner/planner.d.ts +5 -14
  29. package/lib/modules/ResourcePlanner/planner.js +1903 -798
  30. package/lib/modules/ResourcePlanner/types.d.ts +346 -187
  31. package/lib/modules/ResourcePlanner/types.js +19 -0
  32. package/lib/solution/BookingByStep/index.d.ts +1 -1
  33. package/lib/solution/BookingTicket/index.js +2 -1
  34. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +2 -1
  35. package/lib/solution/BookingTicket/utils/addProductDecision.js +2 -0
  36. package/lib/solution/UnifiedBookingSales/index.d.ts +110 -73
  37. package/lib/solution/UnifiedBookingSales/index.js +2289 -374
  38. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.d.ts +49 -0
  39. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +376 -0
  40. package/lib/solution/UnifiedBookingSales/types.d.ts +133 -76
  41. package/lib/solution/UnifiedBookingSales/types.js +3 -2
  42. package/package.json +1 -1
@@ -0,0 +1,270 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/modules/ResourcePlanner/localClock.ts
20
+ var localClock_exports = {};
21
+ __export(localClock_exports, {
22
+ addLocalCalendarDays: () => addLocalCalendarDays,
23
+ addLocalHours: () => addLocalHours,
24
+ addLocalMinutes: () => addLocalMinutes,
25
+ captureRuntimeOffsetMinutes: () => captureRuntimeOffsetMinutes,
26
+ ceilLocalScalarToTenMinutes: () => ceilLocalScalarToTenMinutes,
27
+ dateOrdinalFromLocalDate: () => dateOrdinalFromLocalDate,
28
+ extractFixedOffsetMinutes: () => extractFixedOffsetMinutes,
29
+ formatFixedOffset: () => formatFixedOffset,
30
+ formatLocalDate: () => formatLocalDate,
31
+ formatLocalDateTime: () => formatLocalDateTime,
32
+ formatLocalTime: () => formatLocalTime,
33
+ localDateTimeToScalar: () => localDateTimeToScalar,
34
+ localDateToScalar: () => localDateToScalar,
35
+ localDateToScalarStart: () => localDateToScalarStart,
36
+ nextDate: () => nextDate,
37
+ parseLocalDate: () => parseLocalDate,
38
+ parseLocalDateTime: () => parseLocalDateTime,
39
+ scalarToLocalDateParts: () => scalarToLocalDateParts,
40
+ scalarToLocalDateTimeParts: () => scalarToLocalDateTimeParts,
41
+ weekdayFromLocalDate: () => weekdayFromLocalDate
42
+ });
43
+ module.exports = __toCommonJS(localClock_exports);
44
+ var MINUTE_MS = 60 * 1e3;
45
+ var HOUR_MS = 60 * MINUTE_MS;
46
+ function pad(value, size = 2) {
47
+ return String(value).padStart(size, "0");
48
+ }
49
+ function isFiniteInteger(value) {
50
+ return Number.isInteger(value) && Number.isFinite(value);
51
+ }
52
+ function assertDateParts(parts) {
53
+ if (!isFiniteInteger(parts.year) || !isFiniteInteger(parts.month) || !isFiniteInteger(parts.day)) {
54
+ throw new Error("Invalid local date parts");
55
+ }
56
+ const probe = new Date(Date.UTC(parts.year, parts.month - 1, parts.day));
57
+ if (probe.getUTCFullYear() !== parts.year || probe.getUTCMonth() !== parts.month - 1 || probe.getUTCDate() !== parts.day) {
58
+ throw new Error("Invalid local date");
59
+ }
60
+ }
61
+ function assertTimeParts(parts) {
62
+ if (!isFiniteInteger(parts.hour) || !isFiniteInteger(parts.minute) || !isFiniteInteger(parts.second) || parts.hour < 0 || parts.hour > 23 || parts.minute < 0 || parts.minute > 59 || parts.second < 0 || parts.second > 59) {
63
+ throw new Error("Invalid local time");
64
+ }
65
+ }
66
+ function localDateInputToParts(value) {
67
+ if (typeof value !== "string") {
68
+ assertDateParts(value);
69
+ return value;
70
+ }
71
+ return parseLocalDate(value);
72
+ }
73
+ function scalarToDate(value) {
74
+ if (!Number.isFinite(value)) {
75
+ throw new Error("Invalid local scalar");
76
+ }
77
+ return new Date(value);
78
+ }
79
+ function parseLocalDate(value) {
80
+ const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value.trim());
81
+ if (!match) {
82
+ throw new Error(`Invalid local date: ${value}`);
83
+ }
84
+ const parts = {
85
+ year: Number(match[1]),
86
+ month: Number(match[2]),
87
+ day: Number(match[3])
88
+ };
89
+ assertDateParts(parts);
90
+ return parts;
91
+ }
92
+ function parseLocalDateTime(value) {
93
+ const match = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2}))?(?:\.\d{1,9})?(?:[zZ]|[+-]\d{2}:\d{2})?$/.exec(value.trim());
94
+ if (!match) {
95
+ throw new Error(`Invalid local datetime: ${value}`);
96
+ }
97
+ const parts = {
98
+ year: Number(match[1]),
99
+ month: Number(match[2]),
100
+ day: Number(match[3]),
101
+ hour: Number(match[4]),
102
+ minute: Number(match[5]),
103
+ second: Number(match[6] || "0")
104
+ };
105
+ assertDateParts(parts);
106
+ assertTimeParts(parts);
107
+ return parts;
108
+ }
109
+ function extractFixedOffsetMinutes(value) {
110
+ if (!value)
111
+ return null;
112
+ const trimmed = value.trim();
113
+ if (trimmed.toUpperCase() === "Z")
114
+ return 0;
115
+ const directMatch = /^([+-])(\d{2}):(\d{2})$/.exec(trimmed);
116
+ const suffixMatch = /([zZ]|[+-]\d{2}:\d{2})$/.exec(trimmed);
117
+ const target = directMatch ? trimmed : suffixMatch == null ? void 0 : suffixMatch[1];
118
+ if (!target)
119
+ return null;
120
+ if (target.toUpperCase() === "Z")
121
+ return 0;
122
+ const match = /^([+-])(\d{2}):(\d{2})$/.exec(target);
123
+ if (!match)
124
+ return null;
125
+ const minutes = Number(match[2]) * 60 + Number(match[3]);
126
+ return match[1] === "-" ? -minutes : minutes;
127
+ }
128
+ function captureRuntimeOffsetMinutes(value = /* @__PURE__ */ new Date()) {
129
+ return -value.getTimezoneOffset();
130
+ }
131
+ function formatFixedOffset(offsetMinutes) {
132
+ if (offsetMinutes === null || offsetMinutes === void 0)
133
+ return "";
134
+ if (!Number.isFinite(offsetMinutes)) {
135
+ throw new Error("Invalid fixed offset");
136
+ }
137
+ const normalized = Math.trunc(offsetMinutes);
138
+ if (normalized === 0)
139
+ return "Z";
140
+ const sign = normalized >= 0 ? "+" : "-";
141
+ const absolute = Math.abs(normalized);
142
+ return `${sign}${pad(Math.floor(absolute / 60))}:${pad(absolute % 60)}`;
143
+ }
144
+ function localDateTimeToScalar(value) {
145
+ assertDateParts(value);
146
+ assertTimeParts(value);
147
+ return Date.UTC(value.year, value.month - 1, value.day, value.hour, value.minute, value.second, 0);
148
+ }
149
+ function localDateToScalar(value) {
150
+ return Date.UTC(
151
+ value.getFullYear(),
152
+ value.getMonth(),
153
+ value.getDate(),
154
+ value.getHours(),
155
+ value.getMinutes(),
156
+ value.getSeconds(),
157
+ 0
158
+ );
159
+ }
160
+ function localDateToScalarStart(value) {
161
+ const parts = localDateInputToParts(value);
162
+ return Date.UTC(parts.year, parts.month - 1, parts.day, 0, 0, 0, 0);
163
+ }
164
+ function scalarToLocalDateParts(value) {
165
+ const date = scalarToDate(value);
166
+ return {
167
+ year: date.getUTCFullYear(),
168
+ month: date.getUTCMonth() + 1,
169
+ day: date.getUTCDate()
170
+ };
171
+ }
172
+ function scalarToLocalDateTimeParts(value) {
173
+ const date = scalarToDate(value);
174
+ return {
175
+ year: date.getUTCFullYear(),
176
+ month: date.getUTCMonth() + 1,
177
+ day: date.getUTCDate(),
178
+ hour: date.getUTCHours(),
179
+ minute: date.getUTCMinutes(),
180
+ second: date.getUTCSeconds()
181
+ };
182
+ }
183
+ function dateOrdinalFromLocalDate(value) {
184
+ const parts = localDateInputToParts(value);
185
+ return Math.floor(Date.UTC(parts.year, parts.month - 1, parts.day) / (24 * HOUR_MS));
186
+ }
187
+ function weekdayFromLocalDate(value) {
188
+ const parts = localDateInputToParts(value);
189
+ return new Date(Date.UTC(parts.year, parts.month - 1, parts.day)).getUTCDay();
190
+ }
191
+ function formatLocalDate(value) {
192
+ const parts = typeof value === "number" ? scalarToLocalDateParts(value) : localDateInputToParts(value);
193
+ return `${pad(parts.year, 4)}-${pad(parts.month)}-${pad(parts.day)}`;
194
+ }
195
+ function formatLocalTime(value, includeSeconds = true) {
196
+ const parts = typeof value === "number" ? scalarToLocalDateTimeParts(value) : typeof value === "string" ? parseLocalDateTime(value) : value;
197
+ assertTimeParts(parts);
198
+ if (!includeSeconds) {
199
+ return `${pad(parts.hour)}:${pad(parts.minute)}`;
200
+ }
201
+ return `${pad(parts.hour)}:${pad(parts.minute)}:${pad(parts.second)}`;
202
+ }
203
+ function formatLocalDateTime(value, fixedOffsetMinutes) {
204
+ const parts = typeof value === "number" ? scalarToLocalDateTimeParts(value) : typeof value === "string" ? parseLocalDateTime(value) : value;
205
+ assertDateParts(parts);
206
+ assertTimeParts(parts);
207
+ return `${formatLocalDate(parts)}T${formatLocalTime(parts)}${formatFixedOffset(fixedOffsetMinutes)}`;
208
+ }
209
+ function addLocalMinutes(value, minutes) {
210
+ if (!Number.isFinite(minutes)) {
211
+ throw new Error("Invalid minute delta");
212
+ }
213
+ return value + Math.trunc(minutes) * MINUTE_MS;
214
+ }
215
+ function addLocalHours(value, hours) {
216
+ if (!Number.isFinite(hours)) {
217
+ throw new Error("Invalid hour delta");
218
+ }
219
+ return value + Math.trunc(hours) * HOUR_MS;
220
+ }
221
+ function addLocalCalendarDays(value, days) {
222
+ if (!Number.isFinite(days)) {
223
+ throw new Error("Invalid day delta");
224
+ }
225
+ const parts = scalarToLocalDateTimeParts(value);
226
+ return Date.UTC(
227
+ parts.year,
228
+ parts.month - 1,
229
+ parts.day + Math.trunc(days),
230
+ parts.hour,
231
+ parts.minute,
232
+ parts.second,
233
+ 0
234
+ );
235
+ }
236
+ function nextDate(value) {
237
+ return formatLocalDate(addLocalCalendarDays(localDateToScalarStart(value), 1));
238
+ }
239
+ function ceilLocalScalarToTenMinutes(value) {
240
+ const parts = scalarToLocalDateTimeParts(value);
241
+ const minuteRemainder = parts.minute % 10;
242
+ if (minuteRemainder === 0 && parts.second === 0)
243
+ return value;
244
+ const deltaMinutes = parts.second === 0 ? 10 - minuteRemainder : minuteRemainder === 0 ? 10 : 10 - minuteRemainder;
245
+ const roundedBase = Date.UTC(parts.year, parts.month - 1, parts.day, parts.hour, parts.minute, 0, 0);
246
+ return addLocalMinutes(roundedBase, deltaMinutes);
247
+ }
248
+ // Annotate the CommonJS export names for ESM import in node:
249
+ 0 && (module.exports = {
250
+ addLocalCalendarDays,
251
+ addLocalHours,
252
+ addLocalMinutes,
253
+ captureRuntimeOffsetMinutes,
254
+ ceilLocalScalarToTenMinutes,
255
+ dateOrdinalFromLocalDate,
256
+ extractFixedOffsetMinutes,
257
+ formatFixedOffset,
258
+ formatLocalDate,
259
+ formatLocalDateTime,
260
+ formatLocalTime,
261
+ localDateTimeToScalar,
262
+ localDateToScalar,
263
+ localDateToScalarStart,
264
+ nextDate,
265
+ parseLocalDate,
266
+ parseLocalDateTime,
267
+ scalarToLocalDateParts,
268
+ scalarToLocalDateTimeParts,
269
+ weekdayFromLocalDate
270
+ });
@@ -1,14 +1,5 @@
1
- import type { ResourcePlannerAssignmentResult, ResourcePlannerAssignableSlotResult, ResourcePlannerAvailabilityCell, ResourcePlannerContextInput, ResourcePlannerDemandInterval, ResourcePlannerProduct, ResourcePlannerProjection, ResourcePlannerQuery, ResourcePlannerResource, ResourcePlannerSelection, ResourcePlannerValidationResult } from './types';
2
- export declare const DEFAULT_RESOURCE_PLANNER_CONTEXT: Required<ResourcePlannerContextInput>;
3
- export declare const DEFAULT_RESOURCE_PLANNER_SELECTION: ResourcePlannerSelection;
4
- export declare function normalizePlannerContext(input?: ResourcePlannerContextInput): Required<ResourcePlannerContextInput>;
5
- export declare function buildDemandIntervals(products: ResourcePlannerProduct[], query: ResourcePlannerQuery, context?: Required<ResourcePlannerContextInput>): ResourcePlannerDemandInterval[];
6
- export declare function evaluateResourceForInterval(params: {
7
- resource: ResourcePlannerResource;
8
- interval: ResourcePlannerDemandInterval;
9
- context: Required<ResourcePlannerContextInput>;
10
- }): ResourcePlannerAvailabilityCell;
11
- export declare function queryPlannerAvailability(contextInput: ResourcePlannerContextInput, query?: ResourcePlannerQuery): ResourcePlannerProjection;
12
- export declare function resolveAssignableSlots(contextInput: ResourcePlannerContextInput, query?: ResourcePlannerQuery): ResourcePlannerAssignableSlotResult;
13
- export declare function autoAssignResources(contextInput: ResourcePlannerContextInput, query?: ResourcePlannerQuery): ResourcePlannerAssignmentResult;
14
- export declare function validateAssignments(contextInput: ResourcePlannerContextInput, selection: ResourcePlannerSelection): ResourcePlannerValidationResult;
1
+ import type { AvailabilityProjection, AvailabilityProjectionInput, AvailabilityQuery, AvailabilityQueryResult, AvailabilitySelectionValidationParams, AvailabilitySelectionValidationResult, GetProductTimeRangesRequest, ProductTimeRangeGroup } from './types';
2
+ export declare function createAvailabilityProjection(input: AvailabilityProjectionInput): AvailabilityProjection;
3
+ export declare function getProductTimeRanges(projection: AvailabilityProjection, request?: GetProductTimeRangesRequest): ProductTimeRangeGroup[];
4
+ export declare function queryAvailabilityProjection(projection: AvailabilityProjection, request: AvailabilityQuery): AvailabilityQueryResult;
5
+ export declare function validateAvailabilitySelection(projection: AvailabilityProjection, params: AvailabilitySelectionValidationParams): AvailabilitySelectionValidationResult;