@voyantjs/availability-react 0.101.1 → 0.102.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.
@@ -11,7 +11,7 @@ export type { UseProductsOptions } from "./use-products.js";
11
11
  export { useProducts } from "./use-products.js";
12
12
  export type { UseRulesOptions } from "./use-rules.js";
13
13
  export { useRules } from "./use-rules.js";
14
- export { type UseSlotAllocationOptions, useAllocationAutomationMutation, useAllocationResourceMutation, useAssignTravelerAllocationMutation, useProductResourceTemplates, useResourceTemplateMutation, useSharingGroupLabelMutation, useSlotAllocation, useSlotAllocationAuditLog, useTravelerSharingGroupMutation, } from "./use-slot-allocation.js";
14
+ export { type UseSlotAllocationOptions, useAllocationAutomationMutation, useAllocationResourceMutation, useAssignTravelerAllocationMutation, useMaterializeOpenSlotsMutation, useProductResourceTemplates, useResourceTemplateMutation, useSharingGroupLabelMutation, useSlotAllocation, useSlotAllocationAuditLog, useTravelerSharingGroupMutation, } from "./use-slot-allocation.js";
15
15
  export type { UseSlotUnitAvailabilityOptions } from "./use-slot-unit-availability.js";
16
16
  export { useSlotUnitAvailability } from "./use-slot-unit-availability.js";
17
17
  export type { UseSlotsOptions } from "./use-slots.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAA;AAC5F,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EACL,KAAK,wBAAwB,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAA;AAC5F,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EACL,KAAK,wBAAwB,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,iBAAiB,EACjB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA"}
@@ -6,7 +6,7 @@ export { useCloseouts } from "./use-closeouts.js";
6
6
  export { usePickupPoints } from "./use-pickup-points.js";
7
7
  export { useProducts } from "./use-products.js";
8
8
  export { useRules } from "./use-rules.js";
9
- export { useAllocationAutomationMutation, useAllocationResourceMutation, useAssignTravelerAllocationMutation, useProductResourceTemplates, useResourceTemplateMutation, useSharingGroupLabelMutation, useSlotAllocation, useSlotAllocationAuditLog, useTravelerSharingGroupMutation, } from "./use-slot-allocation.js";
9
+ export { useAllocationAutomationMutation, useAllocationResourceMutation, useAssignTravelerAllocationMutation, useMaterializeOpenSlotsMutation, useProductResourceTemplates, useResourceTemplateMutation, useSharingGroupLabelMutation, useSlotAllocation, useSlotAllocationAuditLog, useTravelerSharingGroupMutation, } from "./use-slot-allocation.js";
10
10
  export { useSlotUnitAvailability } from "./use-slot-unit-availability.js";
11
11
  export { useSlots } from "./use-slots.js";
12
12
  export { useStartTimes } from "./use-start-times.js";
@@ -189,6 +189,18 @@ export declare function useResourceTemplateMutation(productId: string): {
189
189
  kind: string;
190
190
  }, unknown>;
191
191
  };
192
+ /**
193
+ * Back-fill resources across a product's open future departures from the
194
+ * option's templates (idempotent — slots that already have a kind are skipped).
195
+ * Lets an operator apply newly-configured departure inventory to slots that
196
+ * already exist, not just future ones.
197
+ */
198
+ export declare function useMaterializeOpenSlotsMutation(productId: string): import("@tanstack/react-query").UseMutationResult<{
199
+ slots: number;
200
+ created: number;
201
+ }, Error, {
202
+ optionId?: string;
203
+ }, unknown>;
192
204
  export declare function useAllocationAutomationMutation(slotId: string): {
193
205
  autoMaterialize: import("@tanstack/react-query").UseMutationResult<{
194
206
  kind: string;
@@ -234,6 +246,9 @@ export declare function useAllocationAutomationMutation(slotId: string): {
234
246
  }, Error, {
235
247
  kind?: string;
236
248
  }, unknown>;
249
+ materializeTemplates: import("@tanstack/react-query").UseMutationResult<{
250
+ created: number;
251
+ }, Error, void, unknown>;
237
252
  };
238
253
  export declare function useAssignTravelerAllocationMutation(slotId: string): import("@tanstack/react-query").UseMutationResult<{
239
254
  data: {
@@ -1 +1 @@
1
- {"version":3,"file":"use-slot-allocation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-slot-allocation.ts"],"names":[],"mappings":"AAaA,OAAO,EAOL,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EACjC,MAAM,eAAe,CAAA;AAwBtB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAc,EAAE,EAAE,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAMrF;AAED,wBAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,OAAc,EAAE,EAAE,wBAAwB;;;;;;;;;;;;UAM7F;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,SAAS,EACT,OAAc,GACf,EAAE;IACD,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;;;;;;;;;;;;;;;;;;;;;;;;UAMA;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA4B1C,MAAM;eACX,6BAA6B;;;;;;;EAyBzC;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;kBAe7C,MAAM;cACV,MAAM;eACL,2BAA2B;;;;;;;;kBAce,MAAM;cAAQ,MAAM;;EAW1E;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;eAWvB,MAAM;;;;;;;;;;;;;;;;;;;;;;eAaN,MAAM;;EAa5C;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM;;;;;;;gBAK5B,MAAM;UAAQ,MAAM;gBAAc,MAAM,GAAG,IAAI;YAmBpF;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM;;;;;;;;;iBAWxB,MAAM;eAAS,MAAM;;;;;;;;;;EAsBvD;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM;;;;;;;oBAIxB,MAAM;wBAAkB,MAAM,GAAG,IAAI;;;;;;;;qBAkBpC,MAAM,EAAE;yBAAmB,MAAM;;EAkBvE"}
1
+ {"version":3,"file":"use-slot-allocation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-slot-allocation.ts"],"names":[],"mappings":"AAaA,OAAO,EAOL,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EACjC,MAAM,eAAe,CAAA;AAwBtB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAc,EAAE,EAAE,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAMrF;AAED,wBAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,OAAc,EAAE,EAAE,wBAAwB;;;;;;;;;;;;UAM7F;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,SAAS,EACT,OAAc,GACf,EAAE;IACD,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;;;;;;;;;;;;;;;;;;;;;;;;UAMA;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA4B1C,MAAM;eACX,6BAA6B;;;;;;;EAyBzC;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;kBAe7C,MAAM;cACV,MAAM;eACL,2BAA2B;;;;;;;;kBAce,MAAM;cAAQ,MAAM;;EAW1E;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM;;;;eAKtB,MAAM;YAahD;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;eAWvB,MAAM;;;;;;;;;;;;;;;;;;;;;;eAaN,MAAM;;;;;EA4B5C;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM;;;;;;;gBAK5B,MAAM;UAAQ,MAAM;gBAAc,MAAM,GAAG,IAAI;YAmBpF;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM;;;;;;;;;iBAWxB,MAAM;eAAS,MAAM;;;;;;;;;;EAsBvD;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM;;;;;;;oBAIxB,MAAM;wBAAkB,MAAM,GAAG,IAAI;;;;;;;;qBAkBpC,MAAM,EAAE;yBAAmB,MAAM;;EAkBvE"}
@@ -90,6 +90,25 @@ export function useResourceTemplateMutation(productId) {
90
90
  });
91
91
  return { upsert, remove };
92
92
  }
93
+ /**
94
+ * Back-fill resources across a product's open future departures from the
95
+ * option's templates (idempotent — slots that already have a kind are skipped).
96
+ * Lets an operator apply newly-configured departure inventory to slots that
97
+ * already exist, not just future ones.
98
+ */
99
+ export function useMaterializeOpenSlotsMutation(productId) {
100
+ const { baseUrl, fetcher } = useVoyantAvailabilityContext();
101
+ const queryClient = useQueryClient();
102
+ return useMutation({
103
+ mutationFn: async (input) => {
104
+ const result = await fetchWithValidation(`/v1/admin/availability/products/${productId}/allocation/materialize-open-slots`, singleEnvelope(z.object({ slots: z.number(), created: z.number() })), { baseUrl, fetcher }, { method: "POST", body: JSON.stringify(input) });
105
+ return result.data;
106
+ },
107
+ onSuccess: () => {
108
+ void queryClient.invalidateQueries({ queryKey: availabilityQueryKeys.slots() });
109
+ },
110
+ });
111
+ }
93
112
  export function useAllocationAutomationMutation(slotId) {
94
113
  const { baseUrl, fetcher } = useVoyantAvailabilityContext();
95
114
  const queryClient = useQueryClient();
@@ -113,7 +132,16 @@ export function useAllocationAutomationMutation(slotId) {
113
132
  },
114
133
  onSuccess: invalidate,
115
134
  });
116
- return { autoMaterialize, autoAllocate };
135
+ // Materialize the slot's full configured inventory (all kinds, from template
136
+ // default_count) in one call — distinct from the pax-derived autoMaterialize.
137
+ const materializeTemplates = useMutation({
138
+ mutationFn: async () => {
139
+ const result = await fetchWithValidation(`/v1/admin/availability/slots/${slotId}/allocation/materialize-templates`, singleEnvelope(z.object({ created: z.number() })), { baseUrl, fetcher }, { method: "POST", body: JSON.stringify({}) });
140
+ return result.data;
141
+ },
142
+ onSuccess: invalidate,
143
+ });
144
+ return { autoMaterialize, autoAllocate, materializeTemplates };
117
145
  }
118
146
  export function useAssignTravelerAllocationMutation(slotId) {
119
147
  const { baseUrl, fetcher } = useVoyantAvailabilityContext();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/availability-react",
3
- "version": "0.101.1",
3
+ "version": "0.102.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,7 +41,7 @@
41
41
  "react": "^19.0.0",
42
42
  "react-dom": "^19.0.0",
43
43
  "zod": "^4.0.0",
44
- "@voyantjs/availability": "0.101.1"
44
+ "@voyantjs/availability": "0.102.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@tanstack/react-query": "^5.100.11",
@@ -52,12 +52,12 @@
52
52
  "typescript": "^6.0.2",
53
53
  "vitest": "^4.1.2",
54
54
  "zod": "^4.3.6",
55
- "@voyantjs/availability": "0.101.1",
56
- "@voyantjs/react": "0.101.1",
55
+ "@voyantjs/availability": "0.102.0",
56
+ "@voyantjs/react": "0.102.0",
57
57
  "@voyantjs/voyant-typescript-config": "0.1.0"
58
58
  },
59
59
  "dependencies": {
60
- "@voyantjs/react": "0.101.1"
60
+ "@voyantjs/react": "0.102.0"
61
61
  },
62
62
  "files": [
63
63
  "dist"