@purpleschool/gptbot-tools 0.0.75 → 0.0.76

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.
@@ -13,4 +13,5 @@ exports.SLIDE_LAYOUT_MAP = new Map([
13
13
  [enums_1.SLIDE_CONTENT_TYPE.THANK_YOU, [slide_layout_enum_1.SLIDE_LAYOUT.TYPE_1]],
14
14
  [enums_1.SLIDE_CONTENT_TYPE.TABLE, [slide_layout_enum_1.SLIDE_LAYOUT.TYPE_1]],
15
15
  [enums_1.SLIDE_CONTENT_TYPE.CHART, [slide_layout_enum_1.SLIDE_LAYOUT.TYPE_1]],
16
+ [enums_1.SLIDE_CONTENT_TYPE.TIMELINE, [slide_layout_enum_1.SLIDE_LAYOUT.TYPE_1]],
16
17
  ]);
@@ -12,4 +12,5 @@ var SLIDE_CONTENT_TYPE;
12
12
  SLIDE_CONTENT_TYPE["THANK_YOU"] = "THANK_YOU";
13
13
  SLIDE_CONTENT_TYPE["TABLE"] = "TABLE";
14
14
  SLIDE_CONTENT_TYPE["CHART"] = "CHART";
15
+ SLIDE_CONTENT_TYPE["TIMELINE"] = "TIMELINE";
15
16
  })(SLIDE_CONTENT_TYPE || (exports.SLIDE_CONTENT_TYPE = SLIDE_CONTENT_TYPE = {}));
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SlideContentUserEditSchema = exports.ChartSlideDataUserEditSchema = exports.BarChartSlideDataUserEditSchema = exports.TableSlideDataUserEditSchema = exports.SectionBreakSlideDataUserEditSchema = exports.ImageSlideDataUserEditSchema = exports.ContentsSlideDataUserEditSchema = exports.StructuredListSlideDataUserEditSchema = exports.TextSlideDataUserEditSchema = exports.ThankYouSlideDataUserEditSchema = exports.CoverSlideDataUserEditSchema = void 0;
6
+ exports.SlideContentUserEditSchema = exports.TimelineSlideDataUserEditSchema = exports.ChartSlideDataUserEditSchema = exports.BarChartSlideDataUserEditSchema = exports.TableSlideDataUserEditSchema = exports.SectionBreakSlideDataUserEditSchema = exports.ImageSlideDataUserEditSchema = exports.ContentsSlideDataUserEditSchema = exports.StructuredListSlideDataUserEditSchema = exports.TextSlideDataUserEditSchema = exports.ThankYouSlideDataUserEditSchema = exports.CoverSlideDataUserEditSchema = void 0;
7
7
  const zod_1 = __importDefault(require("zod"));
8
8
  const enums_1 = require("../enums");
9
9
  const slide_content_schema_1 = require("./slide-content.schema");
@@ -122,6 +122,22 @@ exports.ChartSlideDataUserEditSchema = zod_1.default.object({
122
122
  chart: zod_1.default.discriminatedUnion('type', [exports.BarChartSlideDataUserEditSchema]),
123
123
  version: zod_1.default.literal(1),
124
124
  });
125
+ exports.TimelineSlideDataUserEditSchema = zod_1.default.object({
126
+ contentType: zod_1.default.literal(enums_1.SLIDE_CONTENT_TYPE.TIMELINE),
127
+ title: zod_1.default.string().min(1).max(500),
128
+ description: zod_1.default.string().min(1).max(1000),
129
+ timeline: zod_1.default.object({
130
+ events: zod_1.default
131
+ .array(zod_1.default.object({
132
+ date: zod_1.default.string().min(1).max(100),
133
+ title: zod_1.default.string().min(1).max(200),
134
+ description: zod_1.default.string().min(1).max(500),
135
+ }))
136
+ .min(2)
137
+ .max(10),
138
+ }),
139
+ version: zod_1.default.literal(1),
140
+ });
125
141
  exports.SlideContentUserEditSchema = zod_1.default.discriminatedUnion('contentType', [
126
142
  exports.CoverSlideDataUserEditSchema,
127
143
  exports.StructuredListSlideDataUserEditSchema,
@@ -132,4 +148,5 @@ exports.SlideContentUserEditSchema = zod_1.default.discriminatedUnion('contentTy
132
148
  exports.ThankYouSlideDataUserEditSchema,
133
149
  exports.TableSlideDataUserEditSchema,
134
150
  exports.ChartSlideDataUserEditSchema,
151
+ exports.TimelineSlideDataUserEditSchema,
135
152
  ]);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SlideContentSchema = exports.ChartSlideDataSchema = exports.BarChartSlideDataSchema = exports.TableSlideDataSchema = exports.SectionBreakSlideDataSchema = exports.ImageSlideDataSchema = exports.ContentsSlideDataSchema = exports.TextSlideDataSchema = exports.StructuredListSlideDataSchema = exports.ThankYouSlideDataSchema = exports.CoverSlideDataSchema = exports.IconSlotSchema = exports.ImageSlotSchema = exports.SLIDE_CHART_TYPE = void 0;
3
+ exports.SlideContentSchema = exports.TimelineSlideDataSchema = exports.ChartSlideDataSchema = exports.BarChartSlideDataSchema = exports.TableSlideDataSchema = exports.SectionBreakSlideDataSchema = exports.ImageSlideDataSchema = exports.ContentsSlideDataSchema = exports.TextSlideDataSchema = exports.StructuredListSlideDataSchema = exports.ThankYouSlideDataSchema = exports.CoverSlideDataSchema = exports.IconSlotSchema = exports.ImageSlotSchema = exports.SLIDE_CHART_TYPE = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const enums_1 = require("../enums");
6
6
  var SLIDE_CHART_TYPE;
@@ -184,6 +184,30 @@ exports.ChartSlideDataSchema = zod_1.z.object({
184
184
  chart: zod_1.z.discriminatedUnion('type', [exports.BarChartSlideDataSchema]),
185
185
  version: zod_1.z.literal(1),
186
186
  });
187
+ exports.TimelineSlideDataSchema = zod_1.z.object({
188
+ contentType: zod_1.z.literal(enums_1.SLIDE_CONTENT_TYPE.TIMELINE),
189
+ title: zod_1.z.string().describe('Slide title in about 6 words').min(10).max(150),
190
+ description: zod_1.z.string().describe('Brief context for the timeline').min(10).max(200),
191
+ timeline: zod_1.z.object({
192
+ events: zod_1.z
193
+ .array(zod_1.z.object({
194
+ date: zod_1.z
195
+ .string()
196
+ .describe('Date or time period label. MUST be general/approximate if exact date unknown (e.g., "Early 2020s", "Mid-1990s", "Recent years")')
197
+ .min(2)
198
+ .max(50),
199
+ title: zod_1.z.string().describe('Event title in 2-4 words').min(5).max(80),
200
+ description: zod_1.z
201
+ .string()
202
+ .describe('Brief description of the event or milestone')
203
+ .min(20)
204
+ .max(150),
205
+ }))
206
+ .length(5)
207
+ .describe('Timeline must contain exactly 5 chronological events'),
208
+ }),
209
+ version: zod_1.z.literal(1),
210
+ });
187
211
  exports.SlideContentSchema = zod_1.z.discriminatedUnion('contentType', [
188
212
  exports.CoverSlideDataSchema,
189
213
  exports.StructuredListSlideDataSchema,
@@ -194,4 +218,5 @@ exports.SlideContentSchema = zod_1.z.discriminatedUnion('contentType', [
194
218
  exports.ThankYouSlideDataSchema,
195
219
  exports.TableSlideDataSchema,
196
220
  exports.ChartSlideDataSchema,
221
+ exports.TimelineSlideDataSchema,
197
222
  ]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot-tools",
3
- "version": "0.0.75",
3
+ "version": "0.0.76",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "scripts": {
@@ -11,4 +11,5 @@ export const SLIDE_LAYOUT_MAP = new Map<SLIDE_CONTENT_TYPE, SLIDE_LAYOUT[]>([
11
11
  [SLIDE_CONTENT_TYPE.THANK_YOU, [SLIDE_LAYOUT.TYPE_1]],
12
12
  [SLIDE_CONTENT_TYPE.TABLE, [SLIDE_LAYOUT.TYPE_1]],
13
13
  [SLIDE_CONTENT_TYPE.CHART, [SLIDE_LAYOUT.TYPE_1]],
14
+ [SLIDE_CONTENT_TYPE.TIMELINE, [SLIDE_LAYOUT.TYPE_1]],
14
15
  ]);
@@ -8,4 +8,5 @@ export enum SLIDE_CONTENT_TYPE {
8
8
  THANK_YOU = 'THANK_YOU',
9
9
  TABLE = 'TABLE',
10
10
  CHART = 'CHART',
11
+ TIMELINE = 'TIMELINE',
11
12
  }
@@ -13,6 +13,7 @@ import {
13
13
  IBarChartSlideDataStructure,
14
14
  IChartSlideDataStructure,
15
15
  ImageSlotSchema,
16
+ ITimelineSlideDataStructure,
16
17
  } from './slide-content.schema';
17
18
 
18
19
  export const CoverSlideDataUserEditSchema = z.object({
@@ -146,6 +147,25 @@ export const ChartSlideDataUserEditSchema = z.object({
146
147
  version: z.literal(1),
147
148
  }) satisfies z.ZodType<IChartSlideDataStructure>;
148
149
 
150
+ export const TimelineSlideDataUserEditSchema = z.object({
151
+ contentType: z.literal(SLIDE_CONTENT_TYPE.TIMELINE),
152
+ title: z.string().min(1).max(500),
153
+ description: z.string().min(1).max(1000),
154
+ timeline: z.object({
155
+ events: z
156
+ .array(
157
+ z.object({
158
+ date: z.string().min(1).max(100),
159
+ title: z.string().min(1).max(200),
160
+ description: z.string().min(1).max(500),
161
+ }),
162
+ )
163
+ .min(2)
164
+ .max(10),
165
+ }),
166
+ version: z.literal(1),
167
+ }) satisfies z.ZodType<ITimelineSlideDataStructure>;
168
+
149
169
  export const SlideContentUserEditSchema = z.discriminatedUnion('contentType', [
150
170
  CoverSlideDataUserEditSchema,
151
171
  StructuredListSlideDataUserEditSchema,
@@ -156,5 +176,6 @@ export const SlideContentUserEditSchema = z.discriminatedUnion('contentType', [
156
176
  ThankYouSlideDataUserEditSchema,
157
177
  TableSlideDataUserEditSchema,
158
178
  ChartSlideDataUserEditSchema,
179
+ TimelineSlideDataUserEditSchema,
159
180
  ]);
160
181
  export type SlideContentUserEdit = z.infer<typeof SlideContentUserEditSchema>;
@@ -108,6 +108,20 @@ export interface IChartSlideDataStructure {
108
108
  version: 1;
109
109
  }
110
110
 
111
+ export interface ITimelineSlideDataStructure {
112
+ contentType: SLIDE_CONTENT_TYPE.TIMELINE;
113
+ title: string;
114
+ description: string;
115
+ timeline: {
116
+ events: Array<{
117
+ date: string;
118
+ title: string;
119
+ description: string;
120
+ }>;
121
+ };
122
+ version: 1;
123
+ }
124
+
111
125
  export const CoverSlideDataSchema = z.object({
112
126
  contentType: z.literal(SLIDE_CONTENT_TYPE.COVER),
113
127
  title: z.string().describe('Slide title in about 6 words').min(10).max(150),
@@ -313,6 +327,36 @@ export const ChartSlideDataSchema = z.object({
313
327
  }) satisfies z.ZodType<IChartSlideDataStructure>;
314
328
  export type ChartSlideData = z.infer<typeof ChartSlideDataSchema>;
315
329
 
330
+ export const TimelineSlideDataSchema = z.object({
331
+ contentType: z.literal(SLIDE_CONTENT_TYPE.TIMELINE),
332
+ title: z.string().describe('Slide title in about 6 words').min(10).max(150),
333
+ description: z.string().describe('Brief context for the timeline').min(10).max(200),
334
+ timeline: z.object({
335
+ events: z
336
+ .array(
337
+ z.object({
338
+ date: z
339
+ .string()
340
+ .describe(
341
+ 'Date or time period label. MUST be general/approximate if exact date unknown (e.g., "Early 2020s", "Mid-1990s", "Recent years")',
342
+ )
343
+ .min(2)
344
+ .max(50),
345
+ title: z.string().describe('Event title in 2-4 words').min(5).max(80),
346
+ description: z
347
+ .string()
348
+ .describe('Brief description of the event or milestone')
349
+ .min(20)
350
+ .max(150),
351
+ }),
352
+ )
353
+ .length(5)
354
+ .describe('Timeline must contain exactly 5 chronological events'),
355
+ }),
356
+ version: z.literal(1),
357
+ }) satisfies z.ZodType<ITimelineSlideDataStructure>;
358
+ export type TimelineSlideData = z.infer<typeof TimelineSlideDataSchema>;
359
+
316
360
  export const SlideContentSchema = z.discriminatedUnion('contentType', [
317
361
  CoverSlideDataSchema,
318
362
  StructuredListSlideDataSchema,
@@ -323,5 +367,6 @@ export const SlideContentSchema = z.discriminatedUnion('contentType', [
323
367
  ThankYouSlideDataSchema,
324
368
  TableSlideDataSchema,
325
369
  ChartSlideDataSchema,
370
+ TimelineSlideDataSchema,
326
371
  ]);
327
372
  export type SlideContent = z.infer<typeof SlideContentSchema>;