pupt-lib 1.2.1 → 1.2.3

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.
@@ -29,7 +29,7 @@ export declare const askConfirmSchema: z.ZodObject<{
29
29
  export type ConfirmProps = z.infer<typeof askConfirmSchema> & {
30
30
  children?: PuptNode;
31
31
  };
32
- export declare class AskConfirm extends Component<ConfirmProps, boolean | undefined> {
32
+ export declare class AskConfirm extends Component<ConfirmProps, boolean> {
33
33
  static schema: z.ZodObject<{
34
34
  name: z.ZodString;
35
35
  label: z.ZodString;
@@ -55,7 +55,7 @@ export declare class AskConfirm extends Component<ConfirmProps, boolean | undefi
55
55
  } & {
56
56
  default: z.ZodOptional<z.ZodBoolean>;
57
57
  }, z.ZodTypeAny, "passthrough">>;
58
- resolve(props: ConfirmProps, context: RenderContext): boolean | undefined;
58
+ resolve(props: ConfirmProps, context: RenderContext): boolean;
59
59
  render(props: ConfirmProps, resolvedValue: boolean | undefined, context: RenderContext): PuptNode;
60
60
  }
61
61
  //# sourceMappingURL=Confirm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Confirm.d.ts","sourceRoot":"","sources":["../../../src/components/ask/Confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAG7E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;gCAEb,CAAC;AAEjB,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAGtF,qBAAa,UAAW,SAAQ,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1E,MAAM,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;qCAAoB;IAEjC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,GAAG,SAAS;IAezE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,QAAQ;CAkClG"}
1
+ {"version":3,"file":"Confirm.d.ts","sourceRoot":"","sources":["../../../src/components/ask/Confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAG7E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;gCAEb,CAAC;AAEjB,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAGtF,qBAAa,UAAW,SAAQ,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAC9D,MAAM,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;qCAAoB;IAEjC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO;IAW7D,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,aAAa,GAAG,QAAQ;CA8BlG"}
package/dist/index.js CHANGED
@@ -547,6 +547,57 @@ function createInputIterator(element, options = {}) {
547
547
  }
548
548
  return reqs.length;
549
549
  }
550
+ function followPath2(obj, path) {
551
+ return path.reduce((current, key) => {
552
+ if (current == null) return void 0;
553
+ return current[key];
554
+ }, obj);
555
+ }
556
+ function resolveIteratorPropValue(value) {
557
+ if (isPuptElement(value)) {
558
+ const elementProps = value[PROPS];
559
+ const elementName = elementProps.name;
560
+ if (elementName && values2.has(elementName)) {
561
+ return values2.get(elementName);
562
+ }
563
+ if (elementProps.default !== void 0) {
564
+ return elementProps.default;
565
+ }
566
+ return void 0;
567
+ }
568
+ if (isDeferredRef(value)) {
569
+ const elementProps = value.element[PROPS];
570
+ const elementName = elementProps.name;
571
+ let elementValue;
572
+ if (elementName && values2.has(elementName)) {
573
+ elementValue = values2.get(elementName);
574
+ } else if (elementProps.default !== void 0) {
575
+ elementValue = elementProps.default;
576
+ }
577
+ return followPath2(elementValue, value.path);
578
+ }
579
+ if (Array.isArray(value)) {
580
+ return value.map((item) => resolveIteratorPropValue(item));
581
+ }
582
+ if (value !== null && typeof value === "object" && !isPuptElement(value) && !isDeferredRef(value)) {
583
+ const resolved = {};
584
+ for (const [key, val] of Object.entries(value)) {
585
+ resolved[key] = resolveIteratorPropValue(val);
586
+ }
587
+ return resolved;
588
+ }
589
+ return value;
590
+ }
591
+ function resolveIteratorProps(props) {
592
+ if (props == null) {
593
+ return {};
594
+ }
595
+ const resolved = {};
596
+ for (const [key, value] of Object.entries(props)) {
597
+ resolved[key] = resolveIteratorPropValue(value);
598
+ }
599
+ return resolved;
600
+ }
550
601
  async function walkNode(node, context) {
551
602
  if (node === null || node === void 0 || node === false) {
552
603
  return;
@@ -571,8 +622,14 @@ function createInputIterator(element, options = {}) {
571
622
  return;
572
623
  }
573
624
  if (isComponentClass(type)) {
625
+ if (children && children.length > 0) {
626
+ for (const child of children) {
627
+ await walkNode(child, context);
628
+ }
629
+ }
574
630
  const instance = new type();
575
- const renderResult = instance.render({ ...props, children }, void 0, context);
631
+ const resolvedProps = resolveIteratorProps(props);
632
+ const renderResult = instance.render({ ...resolvedProps, children }, void 0, context);
576
633
  const result = renderResult instanceof Promise ? await renderResult : renderResult;
577
634
  if (result !== null && typeof result === "object") {
578
635
  await walkNode(result, context);
@@ -580,8 +637,14 @@ function createInputIterator(element, options = {}) {
580
637
  return;
581
638
  }
582
639
  if (typeof type === "function" && !isComponentClass(type)) {
640
+ if (children && children.length > 0) {
641
+ for (const child of children) {
642
+ await walkNode(child, context);
643
+ }
644
+ }
583
645
  const fn = type;
584
- const renderResult = fn({ ...props, children });
646
+ const resolvedProps = resolveIteratorProps(props);
647
+ const renderResult = fn({ ...resolvedProps, children });
585
648
  const result = renderResult instanceof Promise ? await renderResult : renderResult;
586
649
  if (result !== null && typeof result === "object") {
587
650
  await walkNode(result, context);
@@ -39145,7 +39208,8 @@ class Section extends Component {
39145
39208
  case "xml":
39146
39209
  return [`<${tagName}>
39147
39210
  `, childContent, `
39148
- </${tagName}>`];
39211
+ </${tagName}>
39212
+ `];
39149
39213
  case "markdown":
39150
39214
  return [`## ${tagName}
39151
39215
 
@@ -39166,7 +39230,7 @@ class Role extends Component {
39166
39230
  const childContent = Array.isArray(children) ? children : children;
39167
39231
  switch (delimiter) {
39168
39232
  case "xml":
39169
- return ["<role>\n", childContent, "\n</role>"];
39233
+ return ["<role>\n", childContent, "\n</role>\n"];
39170
39234
  case "markdown":
39171
39235
  return ["## role\n\n", childContent];
39172
39236
  case "none":
@@ -39183,7 +39247,7 @@ class Task extends Component {
39183
39247
  const childContent = Array.isArray(children) ? children : children;
39184
39248
  switch (delimiter) {
39185
39249
  case "xml":
39186
- return ["<task>\n", childContent, "\n</task>"];
39250
+ return ["<task>\n", childContent, "\n</task>\n"];
39187
39251
  case "markdown":
39188
39252
  return ["## task\n\n", childContent];
39189
39253
  case "none":
@@ -39200,7 +39264,7 @@ class Context extends Component {
39200
39264
  const childContent = Array.isArray(children) ? children : children;
39201
39265
  switch (delimiter) {
39202
39266
  case "xml":
39203
- return ["<context>\n", childContent, "\n</context>"];
39267
+ return ["<context>\n", childContent, "\n</context>\n"];
39204
39268
  case "markdown":
39205
39269
  return ["## context\n\n", childContent];
39206
39270
  case "none":
@@ -39223,7 +39287,7 @@ class Constraint extends Component {
39223
39287
  }[type] : "";
39224
39288
  switch (delimiter) {
39225
39289
  case "xml":
39226
- return ["<constraint>\n", prefix, childContent, "\n</constraint>"];
39290
+ return ["<constraint>\n", prefix, childContent, "\n</constraint>\n"];
39227
39291
  case "markdown":
39228
39292
  return ["## constraint\n\n", prefix, childContent];
39229
39293
  case "none":
@@ -39250,9 +39314,9 @@ class Format extends Component {
39250
39314
  switch (delimiter) {
39251
39315
  case "xml":
39252
39316
  if (hasChildren) {
39253
- return ["<format>\n", prefix, childContent, "\n</format>"];
39317
+ return ["<format>\n", prefix, childContent, "\n</format>\n"];
39254
39318
  }
39255
- return ["<format>\n", prefix.trim(), "\n</format>"];
39319
+ return ["<format>\n", prefix.trim(), "\n</format>\n"];
39256
39320
  case "markdown":
39257
39321
  if (hasChildren) {
39258
39322
  return ["## format\n\n", prefix, childContent];
@@ -39275,7 +39339,7 @@ class Audience extends Component {
39275
39339
  const childContent = Array.isArray(children) ? children : children;
39276
39340
  switch (delimiter) {
39277
39341
  case "xml":
39278
- return ["<audience>\n", childContent, "\n</audience>"];
39342
+ return ["<audience>\n", childContent, "\n</audience>\n"];
39279
39343
  case "markdown":
39280
39344
  return ["## audience\n\n", childContent];
39281
39345
  case "none":
@@ -39292,7 +39356,7 @@ class Tone extends Component {
39292
39356
  const childContent = Array.isArray(children) ? children : children;
39293
39357
  switch (delimiter) {
39294
39358
  case "xml":
39295
- return ["<tone>\n", childContent, "\n</tone>"];
39359
+ return ["<tone>\n", childContent, "\n</tone>\n"];
39296
39360
  case "markdown":
39297
39361
  return ["## tone\n\n", childContent];
39298
39362
  case "none":
@@ -39309,7 +39373,7 @@ class SuccessCriteria extends Component {
39309
39373
  const childContent = Array.isArray(children) ? children : children;
39310
39374
  switch (delimiter) {
39311
39375
  case "xml":
39312
- return ["<success-criteria>\n", childContent, "\n</success-criteria>"];
39376
+ return ["<success-criteria>\n", childContent, "\n</success-criteria>\n"];
39313
39377
  case "markdown":
39314
39378
  return ["## success-criteria\n\n", childContent];
39315
39379
  case "none":
@@ -39602,15 +39666,12 @@ const askConfirmSchema = askBaseSchema.extend({
39602
39666
  }).passthrough();
39603
39667
  class AskConfirm extends Component {
39604
39668
  resolve(props, context) {
39605
- const { name, default: defaultValue } = props;
39669
+ const { name, default: defaultValue = false } = props;
39606
39670
  const value = context.inputs.get(name);
39607
39671
  if (value !== void 0) {
39608
39672
  return Boolean(value);
39609
39673
  }
39610
- if (defaultValue !== void 0) {
39611
- return defaultValue;
39612
- }
39613
- return void 0;
39674
+ return defaultValue;
39614
39675
  }
39615
39676
  render(props, resolvedValue, context) {
39616
39677
  const {
@@ -39618,7 +39679,7 @@ class AskConfirm extends Component {
39618
39679
  label,
39619
39680
  description = label,
39620
39681
  required = false,
39621
- default: defaultValue,
39682
+ default: defaultValue = false,
39622
39683
  silent = false
39623
39684
  } = props;
39624
39685
  const requirement = {
@@ -39634,9 +39695,6 @@ class AskConfirm extends Component {
39634
39695
  return "";
39635
39696
  }
39636
39697
  const actualValue = resolvedValue ?? this.resolve(props, context);
39637
- if (actualValue === void 0) {
39638
- return `{${name}}`;
39639
- }
39640
39698
  return actualValue ? "Yes" : "No";
39641
39699
  }
39642
39700
  }
@@ -1 +1 @@
1
- {"version":3,"file":"input-iterator.d.ts","sourceRoot":"","sources":["../../src/services/input-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAY,gBAAgB,EAAE,gBAAgB,EAAiB,MAAM,UAAU,CAAC;AAQzG,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC;AA6CpD;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,gBAAgB,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClD;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,IAAI,OAAO,CAAC;IAClB,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;;;;;OAMG;IACH,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD;AAID,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,oBAAyB,GACjC,aAAa,CA6lBf"}
1
+ {"version":3,"file":"input-iterator.d.ts","sourceRoot":"","sources":["../../src/services/input-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAY,gBAAgB,EAAE,gBAAgB,EAAiB,MAAM,UAAU,CAAC;AASzG,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC;AA6CpD;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,gBAAgB,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAClD;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,IAAI,OAAO,CAAC;IAClB,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;;;;;OAMG;IACH,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD;AAID,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,oBAAyB,GACjC,aAAa,CA2sBf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pupt-lib",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "TypeScript library for creating AI prompts using JSX syntax",
5
5
  "license": "MIT",
6
6
  "author": "",