@bmhall2/skylight-mcp 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +265 -0
  3. package/dist/api/auth.d.ts +38 -0
  4. package/dist/api/auth.d.ts.map +1 -0
  5. package/dist/api/auth.js +62 -0
  6. package/dist/api/auth.js.map +1 -0
  7. package/dist/api/client.d.ts +84 -0
  8. package/dist/api/client.d.ts.map +1 -0
  9. package/dist/api/client.js +228 -0
  10. package/dist/api/client.js.map +1 -0
  11. package/dist/api/endpoints/calendar.d.ts +33 -0
  12. package/dist/api/endpoints/calendar.d.ts.map +1 -0
  13. package/dist/api/endpoints/calendar.js +60 -0
  14. package/dist/api/endpoints/calendar.js.map +1 -0
  15. package/dist/api/endpoints/categories.d.ts +23 -0
  16. package/dist/api/endpoints/categories.d.ts.map +1 -0
  17. package/dist/api/endpoints/categories.js +48 -0
  18. package/dist/api/endpoints/categories.js.map +1 -0
  19. package/dist/api/endpoints/chores.d.ts +50 -0
  20. package/dist/api/endpoints/chores.d.ts.map +1 -0
  21. package/dist/api/endpoints/chores.js +106 -0
  22. package/dist/api/endpoints/chores.js.map +1 -0
  23. package/dist/api/endpoints/devices.d.ts +6 -0
  24. package/dist/api/endpoints/devices.d.ts.map +1 -0
  25. package/dist/api/endpoints/devices.js +10 -0
  26. package/dist/api/endpoints/devices.js.map +1 -0
  27. package/dist/api/endpoints/frames.d.ts +6 -0
  28. package/dist/api/endpoints/frames.d.ts.map +1 -0
  29. package/dist/api/endpoints/frames.js +10 -0
  30. package/dist/api/endpoints/frames.js.map +1 -0
  31. package/dist/api/endpoints/lists.d.ts +55 -0
  32. package/dist/api/endpoints/lists.d.ts.map +1 -0
  33. package/dist/api/endpoints/lists.js +125 -0
  34. package/dist/api/endpoints/lists.js.map +1 -0
  35. package/dist/api/endpoints/meals.d.ts +102 -0
  36. package/dist/api/endpoints/meals.d.ts.map +1 -0
  37. package/dist/api/endpoints/meals.js +100 -0
  38. package/dist/api/endpoints/meals.js.map +1 -0
  39. package/dist/api/endpoints/misc.d.ts +27 -0
  40. package/dist/api/endpoints/misc.d.ts.map +1 -0
  41. package/dist/api/endpoints/misc.js +18 -0
  42. package/dist/api/endpoints/misc.js.map +1 -0
  43. package/dist/api/endpoints/photos.d.ts +13 -0
  44. package/dist/api/endpoints/photos.d.ts.map +1 -0
  45. package/dist/api/endpoints/photos.js +10 -0
  46. package/dist/api/endpoints/photos.js.map +1 -0
  47. package/dist/api/endpoints/rewards.d.ts +49 -0
  48. package/dist/api/endpoints/rewards.d.ts.map +1 -0
  49. package/dist/api/endpoints/rewards.js +105 -0
  50. package/dist/api/endpoints/rewards.js.map +1 -0
  51. package/dist/api/endpoints/taskbox.d.ts +13 -0
  52. package/dist/api/endpoints/taskbox.d.ts.map +1 -0
  53. package/dist/api/endpoints/taskbox.js +22 -0
  54. package/dist/api/endpoints/taskbox.js.map +1 -0
  55. package/dist/api/generated-types.d.ts +18967 -0
  56. package/dist/api/generated-types.d.ts.map +1 -0
  57. package/dist/api/generated-types.js +6 -0
  58. package/dist/api/generated-types.js.map +1 -0
  59. package/dist/api/types.d.ts +283 -0
  60. package/dist/api/types.d.ts.map +1 -0
  61. package/dist/api/types.js +5 -0
  62. package/dist/api/types.js.map +1 -0
  63. package/dist/config.d.ts +52 -0
  64. package/dist/config.d.ts.map +1 -0
  65. package/dist/config.js +80 -0
  66. package/dist/config.js.map +1 -0
  67. package/dist/index.d.ts +3 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +11 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/server.d.ts +7 -0
  72. package/dist/server.d.ts.map +1 -0
  73. package/dist/server.js +48 -0
  74. package/dist/server.js.map +1 -0
  75. package/dist/tools/calendar.d.ts +3 -0
  76. package/dist/tools/calendar.d.ts.map +1 -0
  77. package/dist/tools/calendar.js +297 -0
  78. package/dist/tools/calendar.js.map +1 -0
  79. package/dist/tools/chores.d.ts +3 -0
  80. package/dist/tools/chores.d.ts.map +1 -0
  81. package/dist/tools/chores.js +349 -0
  82. package/dist/tools/chores.js.map +1 -0
  83. package/dist/tools/family.d.ts +3 -0
  84. package/dist/tools/family.d.ts.map +1 -0
  85. package/dist/tools/family.js +182 -0
  86. package/dist/tools/family.js.map +1 -0
  87. package/dist/tools/lists.d.ts +3 -0
  88. package/dist/tools/lists.d.ts.map +1 -0
  89. package/dist/tools/lists.js +481 -0
  90. package/dist/tools/lists.js.map +1 -0
  91. package/dist/tools/meals.d.ts +3 -0
  92. package/dist/tools/meals.d.ts.map +1 -0
  93. package/dist/tools/meals.js +319 -0
  94. package/dist/tools/meals.js.map +1 -0
  95. package/dist/tools/misc.d.ts +3 -0
  96. package/dist/tools/misc.d.ts.map +1 -0
  97. package/dist/tools/misc.js +101 -0
  98. package/dist/tools/misc.js.map +1 -0
  99. package/dist/tools/photos.d.ts +3 -0
  100. package/dist/tools/photos.d.ts.map +1 -0
  101. package/dist/tools/photos.js +42 -0
  102. package/dist/tools/photos.js.map +1 -0
  103. package/dist/tools/rewards.d.ts +3 -0
  104. package/dist/tools/rewards.d.ts.map +1 -0
  105. package/dist/tools/rewards.js +338 -0
  106. package/dist/tools/rewards.js.map +1 -0
  107. package/dist/tools/tasks.d.ts +3 -0
  108. package/dist/tools/tasks.d.ts.map +1 -0
  109. package/dist/tools/tasks.js +68 -0
  110. package/dist/tools/tasks.js.map +1 -0
  111. package/dist/utils/dates.d.ts +26 -0
  112. package/dist/utils/dates.d.ts.map +1 -0
  113. package/dist/utils/dates.js +109 -0
  114. package/dist/utils/dates.js.map +1 -0
  115. package/dist/utils/errors.d.ts +45 -0
  116. package/dist/utils/errors.d.ts.map +1 -0
  117. package/dist/utils/errors.js +102 -0
  118. package/dist/utils/errors.js.map +1 -0
  119. package/package.json +59 -0
@@ -0,0 +1,55 @@
1
+ import type { ListResource, ListItemResource } from "../types.js";
2
+ /**
3
+ * Get all lists
4
+ */
5
+ export declare function getLists(): Promise<ListResource[]>;
6
+ export interface GetListWithItemsResult {
7
+ list: ListResource;
8
+ items: ListItemResource[];
9
+ sections?: unknown[];
10
+ }
11
+ /**
12
+ * Get a specific list with its items
13
+ */
14
+ export declare function getListWithItems(listId: string): Promise<GetListWithItemsResult>;
15
+ /**
16
+ * Find a list by name (case-insensitive)
17
+ */
18
+ export declare function findListByName(name: string): Promise<ListResource | undefined>;
19
+ /**
20
+ * Find a list by type (shopping or to_do)
21
+ */
22
+ export declare function findListByType(kind: "shopping" | "to_do", preferDefault?: boolean): Promise<ListResource | undefined>;
23
+ /**
24
+ * Create a new list
25
+ */
26
+ export declare function createList(label: string, kind: "shopping" | "to_do", color?: string): Promise<ListResource>;
27
+ /**
28
+ * Update an existing list
29
+ */
30
+ export declare function updateList(listId: string, updates: {
31
+ label?: string;
32
+ kind?: "shopping" | "to_do";
33
+ color?: string | null;
34
+ }): Promise<ListResource>;
35
+ /**
36
+ * Delete a list
37
+ */
38
+ export declare function deleteList(listId: string): Promise<void>;
39
+ /**
40
+ * Create a new list item
41
+ */
42
+ export declare function createListItem(listId: string, label: string, section?: string): Promise<ListItemResource>;
43
+ /**
44
+ * Update a list item
45
+ */
46
+ export declare function updateListItem(listId: string, itemId: string, updates: {
47
+ label?: string;
48
+ status?: "pending" | "completed";
49
+ section?: string | null;
50
+ }): Promise<ListItemResource>;
51
+ /**
52
+ * Delete a list item
53
+ */
54
+ export declare function deleteListItem(listId: string, itemId: string): Promise<void>;
55
+ //# sourceMappingURL=lists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../../src/api/endpoints/lists.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,YAAY,EACZ,gBAAgB,EAMjB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAIxD;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAStF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAIpF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,GAAG,OAAO,EAC1B,aAAa,UAAO,GACnB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAUnC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,GAAG,OAAO,EAC1B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC9E,OAAO,CAAC,YAAY,CAAC,CAavB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CAgB3B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrF,OAAO,CAAC,gBAAgB,CAAC,CAa3B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlF"}
@@ -0,0 +1,125 @@
1
+ import { getClient } from "../client.js";
2
+ /**
3
+ * Get all lists
4
+ */
5
+ export async function getLists() {
6
+ const client = getClient();
7
+ const response = await client.get("/api/frames/{frameId}/lists");
8
+ return response.data;
9
+ }
10
+ /**
11
+ * Get a specific list with its items
12
+ */
13
+ export async function getListWithItems(listId) {
14
+ const client = getClient();
15
+ const response = await client.get(`/api/frames/{frameId}/lists/${listId}`);
16
+ return {
17
+ list: response.data,
18
+ items: response.included ?? [],
19
+ sections: response.meta?.sections,
20
+ };
21
+ }
22
+ /**
23
+ * Find a list by name (case-insensitive)
24
+ */
25
+ export async function findListByName(name) {
26
+ const lists = await getLists();
27
+ const lowerName = name.toLowerCase();
28
+ return lists.find((list) => list.attributes.label.toLowerCase().includes(lowerName));
29
+ }
30
+ /**
31
+ * Find a list by type (shopping or to_do)
32
+ */
33
+ export async function findListByType(kind, preferDefault = true) {
34
+ const lists = await getLists();
35
+ const filtered = lists.filter((list) => list.attributes.kind === kind);
36
+ if (preferDefault && kind === "shopping") {
37
+ const defaultList = filtered.find((list) => list.attributes.default_grocery_list);
38
+ if (defaultList)
39
+ return defaultList;
40
+ }
41
+ return filtered[0];
42
+ }
43
+ /**
44
+ * Create a new list
45
+ */
46
+ export async function createList(label, kind, color) {
47
+ const client = getClient();
48
+ const request = {
49
+ data: {
50
+ type: "list",
51
+ attributes: {
52
+ label,
53
+ kind,
54
+ color: color ?? null,
55
+ },
56
+ },
57
+ };
58
+ const response = await client.post("/api/frames/{frameId}/lists", request);
59
+ return response.data;
60
+ }
61
+ /**
62
+ * Update an existing list
63
+ */
64
+ export async function updateList(listId, updates) {
65
+ const client = getClient();
66
+ const request = {
67
+ data: {
68
+ type: "list",
69
+ attributes: updates,
70
+ },
71
+ };
72
+ const response = await client.request(`/api/frames/{frameId}/lists/${listId}`, {
73
+ method: "PUT",
74
+ body: request,
75
+ });
76
+ return response.data;
77
+ }
78
+ /**
79
+ * Delete a list
80
+ */
81
+ export async function deleteList(listId) {
82
+ const client = getClient();
83
+ await client.request(`/api/frames/{frameId}/lists/${listId}`, { method: "DELETE" });
84
+ }
85
+ /**
86
+ * Create a new list item
87
+ */
88
+ export async function createListItem(listId, label, section) {
89
+ const client = getClient();
90
+ const request = {
91
+ data: {
92
+ type: "list_item",
93
+ attributes: {
94
+ label,
95
+ section: section ?? null,
96
+ },
97
+ },
98
+ };
99
+ const response = await client.post(`/api/frames/{frameId}/lists/${listId}/list_items`, request);
100
+ return response.data;
101
+ }
102
+ /**
103
+ * Update a list item
104
+ */
105
+ export async function updateListItem(listId, itemId, updates) {
106
+ const client = getClient();
107
+ const request = {
108
+ data: {
109
+ type: "list_item",
110
+ attributes: updates,
111
+ },
112
+ };
113
+ const response = await client.request(`/api/frames/{frameId}/lists/${listId}/list_items/${itemId}`, { method: "PUT", body: request });
114
+ return response.data;
115
+ }
116
+ /**
117
+ * Delete a list item
118
+ */
119
+ export async function deleteListItem(listId, itemId) {
120
+ const client = getClient();
121
+ await client.request(`/api/frames/{frameId}/lists/${listId}/list_items/${itemId}`, {
122
+ method: "DELETE",
123
+ });
124
+ }
125
+ //# sourceMappingURL=lists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../../src/api/endpoints/lists.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ export interface MealCategoryResource {
2
+ type: "meal_category";
3
+ id: string;
4
+ attributes: {
5
+ name?: string;
6
+ position?: number;
7
+ [key: string]: unknown;
8
+ };
9
+ }
10
+ export interface MealRecipeResource {
11
+ type: "meal_recipe";
12
+ id: string;
13
+ attributes: {
14
+ summary?: string;
15
+ description?: string | null;
16
+ [key: string]: unknown;
17
+ };
18
+ relationships?: {
19
+ meal_category?: {
20
+ data: {
21
+ type: string;
22
+ id: string;
23
+ } | null;
24
+ };
25
+ };
26
+ }
27
+ export interface MealSittingResource {
28
+ type: "meal_sitting";
29
+ id: string;
30
+ attributes: {
31
+ date?: string;
32
+ meal_time?: string;
33
+ [key: string]: unknown;
34
+ };
35
+ relationships?: {
36
+ meal_recipe?: {
37
+ data: {
38
+ type: string;
39
+ id: string;
40
+ } | null;
41
+ };
42
+ };
43
+ }
44
+ /**
45
+ * Get meal categories (Breakfast, Lunch, Dinner, etc.)
46
+ */
47
+ export declare function getMealCategories(): Promise<MealCategoryResource[]>;
48
+ export interface GetRecipesOptions {
49
+ include?: string;
50
+ }
51
+ /**
52
+ * Get all recipes
53
+ */
54
+ export declare function getRecipes(options?: GetRecipesOptions): Promise<MealRecipeResource[]>;
55
+ /**
56
+ * Get a specific recipe
57
+ */
58
+ export declare function getRecipe(recipeId: string): Promise<MealRecipeResource>;
59
+ export interface CreateRecipeOptions {
60
+ summary: string;
61
+ description?: string;
62
+ mealCategoryId?: string;
63
+ }
64
+ /**
65
+ * Create a new recipe
66
+ */
67
+ export declare function createRecipe(options: CreateRecipeOptions): Promise<MealRecipeResource>;
68
+ export interface UpdateRecipeOptions {
69
+ summary?: string;
70
+ description?: string | null;
71
+ mealCategoryId?: string | null;
72
+ }
73
+ /**
74
+ * Update a recipe
75
+ */
76
+ export declare function updateRecipe(recipeId: string, options: UpdateRecipeOptions): Promise<MealRecipeResource>;
77
+ /**
78
+ * Delete a recipe
79
+ */
80
+ export declare function deleteRecipe(recipeId: string): Promise<void>;
81
+ /**
82
+ * Add recipe ingredients to grocery list
83
+ */
84
+ export declare function addRecipeToGroceryList(recipeId: string): Promise<void>;
85
+ export interface GetMealSittingsOptions {
86
+ dateMin?: string;
87
+ dateMax?: string;
88
+ }
89
+ /**
90
+ * Get meal sittings (scheduled meals)
91
+ */
92
+ export declare function getMealSittings(options?: GetMealSittingsOptions): Promise<MealSittingResource[]>;
93
+ export interface CreateMealSittingOptions {
94
+ date: string;
95
+ mealCategoryId: string;
96
+ recipeId?: string;
97
+ }
98
+ /**
99
+ * Create a meal sitting (schedule a meal)
100
+ */
101
+ export declare function createMealSitting(options: CreateMealSittingOptions): Promise<MealSittingResource>;
102
+ //# sourceMappingURL=meals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meals.d.ts","sourceRoot":"","sources":["../../../src/api/endpoints/meals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { getClient } from "../client.js";
2
+ /**
3
+ * Get meal categories (Breakfast, Lunch, Dinner, etc.)
4
+ */
5
+ export async function getMealCategories() {
6
+ const client = getClient();
7
+ const response = await client.get("/api/frames/{frameId}/meals/categories");
8
+ return response.data;
9
+ }
10
+ /**
11
+ * Get all recipes
12
+ */
13
+ export async function getRecipes(options = {}) {
14
+ const client = getClient();
15
+ const response = await client.get("/api/frames/{frameId}/meals/recipes", { include: options.include ?? "meal_category" });
16
+ return response.data;
17
+ }
18
+ /**
19
+ * Get a specific recipe
20
+ */
21
+ export async function getRecipe(recipeId) {
22
+ const client = getClient();
23
+ const response = await client.get(`/api/frames/{frameId}/meals/recipes/${recipeId}`, { include: "meal_category" });
24
+ return response.data;
25
+ }
26
+ /**
27
+ * Create a new recipe
28
+ */
29
+ export async function createRecipe(options) {
30
+ const client = getClient();
31
+ const body = {
32
+ summary: options.summary,
33
+ description: options.description ?? null,
34
+ };
35
+ if (options.mealCategoryId) {
36
+ body.meal_category_id = options.mealCategoryId;
37
+ }
38
+ const response = await client.post("/api/frames/{frameId}/meals/recipes", body);
39
+ return response.data;
40
+ }
41
+ /**
42
+ * Update a recipe
43
+ */
44
+ export async function updateRecipe(recipeId, options) {
45
+ const client = getClient();
46
+ const body = {};
47
+ if (options.summary !== undefined)
48
+ body.summary = options.summary;
49
+ if (options.description !== undefined)
50
+ body.description = options.description;
51
+ if (options.mealCategoryId !== undefined)
52
+ body.meal_category_id = options.mealCategoryId;
53
+ const response = await client.request(`/api/frames/{frameId}/meals/recipes/${recipeId}`, { method: "PATCH", body });
54
+ return response.data;
55
+ }
56
+ /**
57
+ * Delete a recipe
58
+ */
59
+ export async function deleteRecipe(recipeId) {
60
+ const client = getClient();
61
+ await client.request(`/api/frames/{frameId}/meals/recipes/${recipeId}`, {
62
+ method: "DELETE",
63
+ });
64
+ }
65
+ /**
66
+ * Add recipe ingredients to grocery list
67
+ */
68
+ export async function addRecipeToGroceryList(recipeId) {
69
+ const client = getClient();
70
+ await client.post(`/api/frames/{frameId}/meals/recipes/${recipeId}/add_to_grocery_list`, {});
71
+ }
72
+ /**
73
+ * Get meal sittings (scheduled meals)
74
+ */
75
+ export async function getMealSittings(options = {}) {
76
+ const client = getClient();
77
+ const params = {};
78
+ if (options.dateMin)
79
+ params.date_min = options.dateMin;
80
+ if (options.dateMax)
81
+ params.date_max = options.dateMax;
82
+ const response = await client.get("/api/frames/{frameId}/meals/sittings", params);
83
+ return response.data;
84
+ }
85
+ /**
86
+ * Create a meal sitting (schedule a meal)
87
+ */
88
+ export async function createMealSitting(options) {
89
+ const client = getClient();
90
+ const body = {
91
+ date: options.date,
92
+ meal_category_id: options.mealCategoryId,
93
+ };
94
+ if (options.recipeId) {
95
+ body.meal_recipe_id = options.recipeId;
96
+ }
97
+ const response = await client.post("/api/frames/{frameId}/meals/sittings", body);
98
+ return response.data;
99
+ }
100
+ //# sourceMappingURL=meals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meals.js","sourceRoot":"","sources":["../../../src/api/endpoints/meals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface AvatarResource {
2
+ type: "avatar";
3
+ id: string;
4
+ attributes: {
5
+ name?: string;
6
+ url?: string;
7
+ [key: string]: unknown;
8
+ };
9
+ }
10
+ export interface ColorResource {
11
+ type: "color";
12
+ id: string;
13
+ attributes: {
14
+ name?: string;
15
+ hex?: string;
16
+ [key: string]: unknown;
17
+ };
18
+ }
19
+ /**
20
+ * Get available avatar options
21
+ */
22
+ export declare function getAvatars(): Promise<AvatarResource[]>;
23
+ /**
24
+ * Get available color options
25
+ */
26
+ export declare function getColors(): Promise<ColorResource[]>;
27
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/api/endpoints/misc.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAUD;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAI5D;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAI1D"}
@@ -0,0 +1,18 @@
1
+ import { getClient } from "../client.js";
2
+ /**
3
+ * Get available avatar options
4
+ */
5
+ export async function getAvatars() {
6
+ const client = getClient();
7
+ const response = await client.get("/api/avatars");
8
+ return response.data;
9
+ }
10
+ /**
11
+ * Get available color options
12
+ */
13
+ export async function getColors() {
14
+ const client = getClient();
15
+ const response = await client.get("/api/colors");
16
+ return response.data;
17
+ }
18
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/api/endpoints/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8BzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAkB,cAAc,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,aAAa,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface AlbumResource {
2
+ type: "album";
3
+ id: string;
4
+ attributes: {
5
+ name?: string;
6
+ [key: string]: unknown;
7
+ };
8
+ }
9
+ /**
10
+ * Get photo albums
11
+ */
12
+ export declare function getAlbums(): Promise<AlbumResource[]>;
13
+ //# sourceMappingURL=photos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photos.d.ts","sourceRoot":"","sources":["../../../src/api/endpoints/photos.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAMD;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAI1D"}
@@ -0,0 +1,10 @@
1
+ import { getClient } from "../client.js";
2
+ /**
3
+ * Get photo albums
4
+ */
5
+ export async function getAlbums() {
6
+ const client = getClient();
7
+ const response = await client.get("/api/frames/{frameId}/albums");
8
+ return response.data;
9
+ }
10
+ //# sourceMappingURL=photos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photos.js","sourceRoot":"","sources":["../../../src/api/endpoints/photos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAezC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,8BAA8B,CAAC,CAAC;IAClF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { RewardResource, RewardPointResource } from "../types.js";
2
+ export interface GetRewardsOptions {
3
+ redeemedAtMin?: string;
4
+ }
5
+ /**
6
+ * Get rewards (items that can be redeemed with points)
7
+ */
8
+ export declare function getRewards(options?: GetRewardsOptions): Promise<RewardResource[]>;
9
+ /**
10
+ * Get reward points for family members
11
+ */
12
+ export declare function getRewardPoints(): Promise<RewardPointResource[]>;
13
+ export interface CreateRewardOptions {
14
+ name: string;
15
+ pointValue: number;
16
+ description?: string;
17
+ emojiIcon?: string;
18
+ categoryIds?: string[];
19
+ respawnOnRedemption?: boolean;
20
+ }
21
+ /**
22
+ * Create a new reward
23
+ */
24
+ export declare function createReward(options: CreateRewardOptions): Promise<RewardResource>;
25
+ export interface UpdateRewardOptions {
26
+ name?: string;
27
+ pointValue?: number;
28
+ description?: string | null;
29
+ emojiIcon?: string | null;
30
+ categoryIds?: string[];
31
+ respawnOnRedemption?: boolean;
32
+ }
33
+ /**
34
+ * Update an existing reward
35
+ */
36
+ export declare function updateReward(rewardId: string, options: UpdateRewardOptions): Promise<RewardResource>;
37
+ /**
38
+ * Delete a reward
39
+ */
40
+ export declare function deleteReward(rewardId: string): Promise<void>;
41
+ /**
42
+ * Redeem a reward (spend points)
43
+ */
44
+ export declare function redeemReward(rewardId: string, categoryId?: string): Promise<RewardResource>;
45
+ /**
46
+ * Unredeem a reward (cancel redemption)
47
+ */
48
+ export declare function unredeemReward(rewardId: string): Promise<RewardResource>;
49
+ //# sourceMappingURL=rewards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewards.d.ts","sourceRoot":"","sources":["../../../src/api/endpoints/rewards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,cAAc,EAGd,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAS3F;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAMtE;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAyBxF;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,cAAc,CAAC,CA8BzB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAQzB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAO9E"}
@@ -0,0 +1,105 @@
1
+ import { getClient } from "../client.js";
2
+ /**
3
+ * Get rewards (items that can be redeemed with points)
4
+ */
5
+ export async function getRewards(options = {}) {
6
+ const client = getClient();
7
+ const response = await client.get("/api/frames/{frameId}/rewards", {
8
+ redeemed_at_min: options.redeemedAtMin,
9
+ });
10
+ return response.data;
11
+ }
12
+ /**
13
+ * Get reward points for family members
14
+ */
15
+ export async function getRewardPoints() {
16
+ const client = getClient();
17
+ const response = await client.get("/api/frames/{frameId}/reward_points");
18
+ return response.data;
19
+ }
20
+ /**
21
+ * Create a new reward
22
+ */
23
+ export async function createReward(options) {
24
+ const client = getClient();
25
+ const request = {
26
+ data: {
27
+ type: "reward",
28
+ attributes: {
29
+ name: options.name,
30
+ point_value: options.pointValue,
31
+ description: options.description ?? null,
32
+ emoji_icon: options.emojiIcon ?? null,
33
+ respawn_on_redemption: options.respawnOnRedemption ?? false,
34
+ },
35
+ },
36
+ };
37
+ if (options.categoryIds && options.categoryIds.length > 0) {
38
+ request.data.relationships = {
39
+ categories: {
40
+ data: options.categoryIds.map((id) => ({ type: "category", id })),
41
+ },
42
+ };
43
+ }
44
+ const response = await client.post("/api/frames/{frameId}/rewards", request);
45
+ return response.data;
46
+ }
47
+ /**
48
+ * Update an existing reward
49
+ */
50
+ export async function updateReward(rewardId, options) {
51
+ const client = getClient();
52
+ const request = {
53
+ data: {
54
+ type: "reward",
55
+ attributes: {},
56
+ },
57
+ };
58
+ if (options.name !== undefined)
59
+ request.data.attributes.name = options.name;
60
+ if (options.pointValue !== undefined)
61
+ request.data.attributes.point_value = options.pointValue;
62
+ if (options.description !== undefined)
63
+ request.data.attributes.description = options.description;
64
+ if (options.emojiIcon !== undefined)
65
+ request.data.attributes.emoji_icon = options.emojiIcon;
66
+ if (options.respawnOnRedemption !== undefined) {
67
+ request.data.attributes.respawn_on_redemption = options.respawnOnRedemption;
68
+ }
69
+ if (options.categoryIds) {
70
+ request.data.relationships = {
71
+ categories: {
72
+ data: options.categoryIds.map((id) => ({ type: "category", id })),
73
+ },
74
+ };
75
+ }
76
+ const response = await client.request(`/api/frames/{frameId}/rewards/${rewardId}`, { method: "PATCH", body: request });
77
+ return response.data;
78
+ }
79
+ /**
80
+ * Delete a reward
81
+ */
82
+ export async function deleteReward(rewardId) {
83
+ const client = getClient();
84
+ await client.request(`/api/frames/{frameId}/rewards/${rewardId}`, {
85
+ method: "DELETE",
86
+ });
87
+ }
88
+ /**
89
+ * Redeem a reward (spend points)
90
+ */
91
+ export async function redeemReward(rewardId, categoryId) {
92
+ const client = getClient();
93
+ const body = categoryId ? { category_id: categoryId } : {};
94
+ const response = await client.post(`/api/frames/{frameId}/rewards/${rewardId}/redeem`, body);
95
+ return response.data;
96
+ }
97
+ /**
98
+ * Unredeem a reward (cancel redemption)
99
+ */
100
+ export async function unredeemReward(rewardId) {
101
+ const client = getClient();
102
+ const response = await client.post(`/api/frames/{frameId}/rewards/${rewardId}/unredeem`, {});
103
+ return response.data;
104
+ }
105
+ //# sourceMappingURL=rewards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewards.js","sourceRoot":"","sources":["../../../src/api/endpoints/rewards.ts"],"names":[],"mappings":"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"}