@onereach/idw-contracts 0.1.2-beta.7.0 → 0.2.0-beta.28.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.
Files changed (123) hide show
  1. package/README.md +30 -1
  2. package/dist/cjs/idw-card/bind.js +71 -0
  3. package/dist/cjs/idw-card/bind.js.map +1 -0
  4. package/dist/cjs/idw-card/card-schema.js +365 -0
  5. package/dist/cjs/idw-card/card-schema.js.map +1 -0
  6. package/dist/cjs/idw-card/collect.js +89 -0
  7. package/dist/cjs/idw-card/collect.js.map +1 -0
  8. package/dist/cjs/idw-card/fallbackText.js +11 -0
  9. package/dist/cjs/idw-card/fallbackText.js.map +1 -0
  10. package/dist/cjs/idw-card/index.js +68 -0
  11. package/dist/cjs/idw-card/index.js.map +1 -0
  12. package/dist/cjs/idw-card/templates/approval.js +81 -0
  13. package/dist/cjs/idw-card/templates/approval.js.map +1 -0
  14. package/dist/cjs/idw-card/templates/file.js +31 -0
  15. package/dist/cjs/idw-card/templates/file.js.map +1 -0
  16. package/dist/cjs/idw-card/templates/html.js +31 -0
  17. package/dist/cjs/idw-card/templates/html.js.map +1 -0
  18. package/dist/cjs/idw-card/templates/index.js +44 -0
  19. package/dist/cjs/idw-card/templates/index.js.map +1 -0
  20. package/dist/cjs/idw-card/templates/json-schema.js +91 -0
  21. package/dist/cjs/idw-card/templates/json-schema.js.map +1 -0
  22. package/dist/cjs/idw-card/templates/markdown.js +29 -0
  23. package/dist/cjs/idw-card/templates/markdown.js.map +1 -0
  24. package/dist/cjs/idw-card/templates/registry.js +28 -0
  25. package/dist/cjs/idw-card/templates/registry.js.map +1 -0
  26. package/dist/cjs/idw-card/templates/resolve.js +41 -0
  27. package/dist/cjs/idw-card/templates/resolve.js.map +1 -0
  28. package/dist/cjs/idw-card/templates/skill.js +38 -0
  29. package/dist/cjs/idw-card/templates/skill.js.map +1 -0
  30. package/dist/cjs/idw-card/templates/types.js +3 -0
  31. package/dist/cjs/idw-card/templates/types.js.map +1 -0
  32. package/dist/cjs/idw-card/types.js +7 -0
  33. package/dist/cjs/idw-card/types.js.map +1 -0
  34. package/dist/cjs/idw-card/url.js +20 -0
  35. package/dist/cjs/idw-card/url.js.map +1 -0
  36. package/dist/cjs/idw-card/validate.js +41 -0
  37. package/dist/cjs/idw-card/validate.js.map +1 -0
  38. package/dist/cjs/idw-card/version.js +11 -0
  39. package/dist/cjs/idw-card/version.js.map +1 -0
  40. package/dist/cjs/index.js +1 -0
  41. package/dist/cjs/index.js.map +1 -1
  42. package/dist/esm/idw-card/bind.js +68 -0
  43. package/dist/esm/idw-card/bind.js.map +1 -0
  44. package/dist/esm/idw-card/card-schema.js +362 -0
  45. package/dist/esm/idw-card/card-schema.js.map +1 -0
  46. package/dist/esm/idw-card/collect.js +82 -0
  47. package/dist/esm/idw-card/collect.js.map +1 -0
  48. package/dist/esm/idw-card/fallbackText.js +8 -0
  49. package/dist/esm/idw-card/fallbackText.js.map +1 -0
  50. package/dist/esm/idw-card/index.js +10 -0
  51. package/dist/esm/idw-card/index.js.map +1 -0
  52. package/dist/esm/idw-card/templates/approval.js +78 -0
  53. package/dist/esm/idw-card/templates/approval.js.map +1 -0
  54. package/dist/esm/idw-card/templates/file.js +28 -0
  55. package/dist/esm/idw-card/templates/file.js.map +1 -0
  56. package/dist/esm/idw-card/templates/html.js +28 -0
  57. package/dist/esm/idw-card/templates/html.js.map +1 -0
  58. package/dist/esm/idw-card/templates/index.js +9 -0
  59. package/dist/esm/idw-card/templates/index.js.map +1 -0
  60. package/dist/esm/idw-card/templates/json-schema.js +82 -0
  61. package/dist/esm/idw-card/templates/json-schema.js.map +1 -0
  62. package/dist/esm/idw-card/templates/markdown.js +26 -0
  63. package/dist/esm/idw-card/templates/markdown.js.map +1 -0
  64. package/dist/esm/idw-card/templates/registry.js +23 -0
  65. package/dist/esm/idw-card/templates/registry.js.map +1 -0
  66. package/dist/esm/idw-card/templates/resolve.js +38 -0
  67. package/dist/esm/idw-card/templates/resolve.js.map +1 -0
  68. package/dist/esm/idw-card/templates/skill.js +35 -0
  69. package/dist/esm/idw-card/templates/skill.js.map +1 -0
  70. package/dist/esm/idw-card/templates/types.js +2 -0
  71. package/dist/esm/idw-card/templates/types.js.map +1 -0
  72. package/dist/esm/idw-card/types.js +4 -0
  73. package/dist/esm/idw-card/types.js.map +1 -0
  74. package/dist/esm/idw-card/url.js +17 -0
  75. package/dist/esm/idw-card/url.js.map +1 -0
  76. package/dist/esm/idw-card/validate.js +37 -0
  77. package/dist/esm/idw-card/validate.js.map +1 -0
  78. package/dist/esm/idw-card/version.js +8 -0
  79. package/dist/esm/idw-card/version.js.map +1 -0
  80. package/dist/esm/index.js +1 -0
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/types/idw-card/bind.d.ts +7 -0
  83. package/dist/types/idw-card/bind.d.ts.map +1 -0
  84. package/dist/types/idw-card/card-schema.d.ts +7 -0
  85. package/dist/types/idw-card/card-schema.d.ts.map +1 -0
  86. package/dist/types/idw-card/collect.d.ts +7 -0
  87. package/dist/types/idw-card/collect.d.ts.map +1 -0
  88. package/dist/types/idw-card/fallbackText.d.ts +2 -0
  89. package/dist/types/idw-card/fallbackText.d.ts.map +1 -0
  90. package/dist/types/idw-card/index.d.ts +12 -0
  91. package/dist/types/idw-card/index.d.ts.map +1 -0
  92. package/dist/types/idw-card/templates/approval.d.ts +94 -0
  93. package/dist/types/idw-card/templates/approval.d.ts.map +1 -0
  94. package/dist/types/idw-card/templates/file.d.ts +27 -0
  95. package/dist/types/idw-card/templates/file.d.ts.map +1 -0
  96. package/dist/types/idw-card/templates/html.d.ts +27 -0
  97. package/dist/types/idw-card/templates/html.d.ts.map +1 -0
  98. package/dist/types/idw-card/templates/index.d.ts +16 -0
  99. package/dist/types/idw-card/templates/index.d.ts.map +1 -0
  100. package/dist/types/idw-card/templates/json-schema.d.ts +11 -0
  101. package/dist/types/idw-card/templates/json-schema.d.ts.map +1 -0
  102. package/dist/types/idw-card/templates/markdown.d.ts +23 -0
  103. package/dist/types/idw-card/templates/markdown.d.ts.map +1 -0
  104. package/dist/types/idw-card/templates/registry.d.ts +5 -0
  105. package/dist/types/idw-card/templates/registry.d.ts.map +1 -0
  106. package/dist/types/idw-card/templates/resolve.d.ts +19 -0
  107. package/dist/types/idw-card/templates/resolve.d.ts.map +1 -0
  108. package/dist/types/idw-card/templates/skill.d.ts +56 -0
  109. package/dist/types/idw-card/templates/skill.d.ts.map +1 -0
  110. package/dist/types/idw-card/templates/types.d.ts +37 -0
  111. package/dist/types/idw-card/templates/types.d.ts.map +1 -0
  112. package/dist/types/idw-card/types.d.ts +250 -0
  113. package/dist/types/idw-card/types.d.ts.map +1 -0
  114. package/dist/types/idw-card/url.d.ts +6 -0
  115. package/dist/types/idw-card/url.d.ts.map +1 -0
  116. package/dist/types/idw-card/validate.d.ts +4 -0
  117. package/dist/types/idw-card/validate.d.ts.map +1 -0
  118. package/dist/types/idw-card/version.d.ts +8 -0
  119. package/dist/types/idw-card/version.d.ts.map +1 -0
  120. package/dist/types/index.d.ts +1 -0
  121. package/dist/types/index.d.ts.map +1 -1
  122. package/package.json +5 -3
  123. package/skills/idw-card-authoring/SKILL.md +279 -0
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateIdwCard = validateIdwCard;
4
+ exports.parseIdwCard = parseIdwCard;
5
+ const card_schema_1 = require("./card-schema");
6
+ function formatPath(path) {
7
+ if (path.length === 0) {
8
+ return '';
9
+ }
10
+ return path
11
+ .map((segment, index) => {
12
+ if (typeof segment === 'number') {
13
+ return `[${segment}]`;
14
+ }
15
+ return index === 0 ? segment : `.${segment}`;
16
+ })
17
+ .join('')
18
+ .replace(/\.\[/g, '[');
19
+ }
20
+ function validateIdwCard(input) {
21
+ const parsed = card_schema_1.idwCardSchema.safeParse(input);
22
+ if (parsed.success) {
23
+ return {
24
+ success: true,
25
+ card: parsed.data,
26
+ issues: [],
27
+ };
28
+ }
29
+ const issues = parsed.error.issues.map((item) => ({
30
+ path: formatPath(item.path),
31
+ message: item.message,
32
+ }));
33
+ return {
34
+ success: false,
35
+ issues,
36
+ };
37
+ }
38
+ function parseIdwCard(input) {
39
+ return card_schema_1.idwCardSchema.parse(input);
40
+ }
41
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/idw-card/validate.ts"],"names":[],"mappings":";;AAmBA,0CAoBC;AAED,oCAEC;AA3CD,+CAA8C;AAG9C,SAAS,UAAU,CAAC,IAA4B;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,IAAI,OAAO,GAAG,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;IAC/C,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC;SACR,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC5C,MAAM,MAAM,GAAG,2BAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAE9C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAA6B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAA8B,CAAC;QACrD,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,2BAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IDW_CARD_MAX_COLUMNS = exports.IDW_CARD_MIN_COLUMNS = exports.IDW_CARD_MAX_ACTIONS = exports.IDW_CARD_MAX_NESTING = exports.IDW_CARD_MAX_BODY_ELEMENTS = exports.IDW_CARD_VERSION = exports.IDW_CARD_SCHEMA = void 0;
4
+ exports.IDW_CARD_SCHEMA = 'idw.card';
5
+ exports.IDW_CARD_VERSION = '1.0';
6
+ exports.IDW_CARD_MAX_BODY_ELEMENTS = 64;
7
+ exports.IDW_CARD_MAX_NESTING = 3;
8
+ exports.IDW_CARD_MAX_ACTIONS = 5;
9
+ exports.IDW_CARD_MIN_COLUMNS = 2;
10
+ exports.IDW_CARD_MAX_COLUMNS = 3;
11
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/idw-card/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,UAAmB,CAAC;AACtC,QAAA,gBAAgB,GAAG,KAAc,CAAC;AAElC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAChC,QAAA,oBAAoB,GAAG,CAAC,CAAC;AACzB,QAAA,oBAAoB,GAAG,CAAC,CAAC;AACzB,QAAA,oBAAoB,GAAG,CAAC,CAAC;AACzB,QAAA,oBAAoB,GAAG,CAAC,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./api"), exports);
18
+ __exportStar(require("./idw-card"), exports);
18
19
  __exportStar(require("./chat"), exports);
19
20
  __exportStar(require("./common"), exports);
20
21
  __exportStar(require("./datasources"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,yCAAuB;AACvB,2CAAyB;AACzB,gDAA8B;AAC9B,wCAAsB;AACtB,gDAA8B;AAC9B,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,0CAAwB;AACxB,oDAAkC;AAClC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,6CAA2B;AAC3B,yCAAuB;AACvB,2CAAyB;AACzB,gDAA8B;AAC9B,wCAAsB;AACtB,gDAA8B;AAC9B,8CAA4B;AAC5B,2CAAyB;AACzB,+CAA6B;AAC7B,0CAAwB;AACxB,oDAAkC;AAClC,0CAAwB"}
@@ -0,0 +1,68 @@
1
+ const WHOLE_PLACEHOLDER = /^\$\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z0-9_]+)*)\}$/;
2
+ const INTERPOLATE = /\$\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z0-9_]+)*)\}/g;
3
+ function getPath(data, path) {
4
+ if (data == null || typeof data !== 'object') {
5
+ return undefined;
6
+ }
7
+ return path.split('.').reduce((current, segment) => {
8
+ if (current == null || typeof current !== 'object') {
9
+ return undefined;
10
+ }
11
+ return current[segment];
12
+ }, data);
13
+ }
14
+ function interpolateString(value, data) {
15
+ const whole = value.trim().match(WHOLE_PLACEHOLDER);
16
+ if (whole) {
17
+ return getPath(data, whole[1]);
18
+ }
19
+ return value.replace(INTERPOLATE, (_match, path) => {
20
+ const resolved = getPath(data, path);
21
+ if (resolved == null) {
22
+ return '';
23
+ }
24
+ return String(resolved);
25
+ });
26
+ }
27
+ function isPlainObject(value) {
28
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
29
+ }
30
+ function bindNode(node, data) {
31
+ if (typeof node === 'string') {
32
+ return interpolateString(node, data);
33
+ }
34
+ if (Array.isArray(node)) {
35
+ return node
36
+ .map((item) => bindNode(item, data))
37
+ .filter((item) => item !== undefined);
38
+ }
39
+ if (!isPlainObject(node)) {
40
+ return node;
41
+ }
42
+ if (typeof node.$when === 'string') {
43
+ const condition = interpolateString(node.$when, data);
44
+ if (!condition) {
45
+ return undefined;
46
+ }
47
+ }
48
+ const next = {};
49
+ for (const [key, value] of Object.entries(node)) {
50
+ if (key === '$when') {
51
+ continue;
52
+ }
53
+ const bound = bindNode(value, data);
54
+ if (bound !== undefined) {
55
+ next[key] = bound;
56
+ }
57
+ }
58
+ return next;
59
+ }
60
+ /**
61
+ * Bind `${path}` placeholders and `$when` conditions.
62
+ * The input may be a template document that is not yet a valid card.
63
+ * Validate the result with {@link validateIdwCard}.
64
+ */
65
+ export function bindIdwCard(card, data) {
66
+ return bindNode(card, data);
67
+ }
68
+ //# sourceMappingURL=bind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bind.js","sourceRoot":"","sources":["../../../src/idw-card/bind.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,362 @@
1
+ import { z } from 'zod';
2
+ import { isAllowedResourceUrl } from './url';
3
+ import { IDW_CARD_MAX_ACTIONS, IDW_CARD_MAX_BODY_ELEMENTS, IDW_CARD_MAX_COLUMNS, IDW_CARD_MAX_NESTING, IDW_CARD_MIN_COLUMNS, IDW_CARD_SCHEMA, IDW_CARD_VERSION, } from './version';
4
+ const idwSpacingSchema = z.enum(['none', 'xs', 'sm', 'md', 'lg', 'xl']);
5
+ const idwTextStyleSchema = z.enum(['caption', 'body', 'headline']);
6
+ const idwToneSchema = z.enum(['default', 'emphasis', 'success', 'warning', 'attention']);
7
+ const idwCardActionStyleSchema = z.enum(['default', 'primary', 'destructive']);
8
+ const idwColumnWidthSchema = z.enum(['auto', 'stretch']);
9
+ export const idwCardVerbSchema = z.enum([
10
+ 'open-url',
11
+ 'approve',
12
+ 'reject',
13
+ 'submit',
14
+ 'start-skill',
15
+ 'mention',
16
+ 'open-conversation',
17
+ 'toggle-visibility',
18
+ 'show-card',
19
+ ]);
20
+ const elementCommonSchema = {
21
+ id: z.string().optional(),
22
+ spacing: idwSpacingSchema.optional(),
23
+ isVisible: z.boolean().optional(),
24
+ separator: z.boolean().optional(),
25
+ $when: z.string().optional(),
26
+ };
27
+ const inputCommonSchema = {
28
+ ...elementCommonSchema,
29
+ name: z.string().min(1),
30
+ label: z.string().optional(),
31
+ hint: z.string().optional(),
32
+ errorMessage: z.string().optional(),
33
+ required: z.boolean().optional(),
34
+ disabled: z.boolean().optional(),
35
+ };
36
+ function issue(ctx, message, path = []) {
37
+ ctx.addIssue({
38
+ code: z.ZodIssueCode.custom,
39
+ message,
40
+ path,
41
+ });
42
+ }
43
+ function refineAction(action, ctx, path = []) {
44
+ if (action.verb === 'open-url') {
45
+ if (!action.url) {
46
+ issue(ctx, 'open-url requires url', [...path, 'url']);
47
+ }
48
+ else if (!isAllowedResourceUrl(action.url)) {
49
+ issue(ctx, 'url must be relative or http(s)', [...path, 'url']);
50
+ }
51
+ }
52
+ else if (action.url) {
53
+ issue(ctx, 'url is only allowed on open-url', [...path, 'url']);
54
+ }
55
+ if (action.verb === 'start-skill') {
56
+ if (!action.skillId) {
57
+ issue(ctx, 'start-skill requires skillId', [...path, 'skillId']);
58
+ }
59
+ }
60
+ else if (action.skillId) {
61
+ issue(ctx, 'skillId is only allowed on start-skill', [...path, 'skillId']);
62
+ }
63
+ if (action.verb === 'toggle-visibility') {
64
+ if (!action.targetIds?.length) {
65
+ issue(ctx, 'toggle-visibility requires targetIds', [...path, 'targetIds']);
66
+ }
67
+ }
68
+ else if (action.targetIds) {
69
+ issue(ctx, 'targetIds is only allowed on toggle-visibility', [...path, 'targetIds']);
70
+ }
71
+ if (action.verb === 'show-card') {
72
+ if (!action.card) {
73
+ issue(ctx, 'show-card requires card', [...path, 'card']);
74
+ }
75
+ }
76
+ else if (action.card) {
77
+ issue(ctx, 'card is only allowed on show-card', [...path, 'card']);
78
+ }
79
+ }
80
+ export const idwCardActionSchema = z.object({
81
+ type: z.literal('Action'),
82
+ verb: idwCardVerbSchema,
83
+ title: z.string(),
84
+ url: z.string().optional(),
85
+ skillId: z.string().optional(),
86
+ data: z.record(z.string(), z.unknown()).optional(),
87
+ style: idwCardActionStyleSchema.optional(),
88
+ targetIds: z.array(z.string()).optional(),
89
+ card: z.unknown().optional(),
90
+ $when: z.string().optional(),
91
+ }).superRefine((action, ctx) => {
92
+ refineAction(action, ctx);
93
+ });
94
+ const idwFactSchema = z.object({
95
+ title: z.string(),
96
+ value: z.string(),
97
+ });
98
+ const skillDataSchema = z.object({
99
+ id: z.string(),
100
+ name: z.string(),
101
+ image: z.string(),
102
+ domain: z.string(),
103
+ });
104
+ const idwChoiceSchema = z.object({
105
+ title: z.string(),
106
+ value: z.string(),
107
+ disabled: z.boolean().optional(),
108
+ });
109
+ const locationValueSchema = z.object({
110
+ address: z.string().optional(),
111
+ lat: z.number().optional(),
112
+ lng: z.number().optional(),
113
+ });
114
+ export const idwCardElementSchema = z.lazy(() => z.discriminatedUnion('type', [
115
+ z.object({
116
+ ...elementCommonSchema,
117
+ type: z.literal('Text'),
118
+ text: z.string(),
119
+ textStyle: idwTextStyleSchema.optional(),
120
+ tone: idwToneSchema.optional(),
121
+ }),
122
+ z.object({
123
+ ...elementCommonSchema,
124
+ type: z.literal('Image'),
125
+ url: z.string(),
126
+ alt: z.string(),
127
+ }),
128
+ z.object({
129
+ ...elementCommonSchema,
130
+ type: z.literal('FactSet'),
131
+ facts: z.array(idwFactSchema),
132
+ }),
133
+ z.object({
134
+ ...elementCommonSchema,
135
+ type: z.literal('Container'),
136
+ items: z.array(idwCardElementSchema),
137
+ tone: idwToneSchema.optional(),
138
+ }),
139
+ z.object({
140
+ ...elementCommonSchema,
141
+ type: z.literal('ColumnSet'),
142
+ columns: z.array(z.object({
143
+ items: z.array(idwCardElementSchema),
144
+ width: idwColumnWidthSchema.optional(),
145
+ })).min(IDW_CARD_MIN_COLUMNS).max(IDW_CARD_MAX_COLUMNS),
146
+ }),
147
+ z.object({
148
+ ...elementCommonSchema,
149
+ type: z.literal('Html'),
150
+ title: z.string(),
151
+ content: z.string(),
152
+ }),
153
+ z.object({
154
+ ...elementCommonSchema,
155
+ type: z.literal('File'),
156
+ title: z.string(),
157
+ src: z.string(),
158
+ }),
159
+ z.object({
160
+ ...elementCommonSchema,
161
+ type: z.literal('Skill'),
162
+ text: z.string(),
163
+ skill: skillDataSchema.optional(),
164
+ startSkillLabel: z.string().optional(),
165
+ }),
166
+ z.object({
167
+ ...elementCommonSchema,
168
+ type: z.literal('ActionSet'),
169
+ actions: z.array(idwCardActionSchema).max(IDW_CARD_MAX_ACTIONS),
170
+ }),
171
+ z.object({
172
+ ...inputCommonSchema,
173
+ type: z.literal('Input.Text'),
174
+ value: z.string().optional(),
175
+ placeholder: z.string().optional(),
176
+ multiline: z.boolean().optional(),
177
+ rows: z.number().int().positive().optional(),
178
+ maxLength: z.number().int().positive().optional(),
179
+ style: z.enum(['text', 'email', 'url', 'tel', 'password']).optional(),
180
+ }),
181
+ z.object({
182
+ ...inputCommonSchema,
183
+ type: z.literal('Input.Number'),
184
+ value: z.number().optional(),
185
+ placeholder: z.string().optional(),
186
+ min: z.number().optional(),
187
+ max: z.number().optional(),
188
+ step: z.number().optional(),
189
+ }),
190
+ z.object({
191
+ ...inputCommonSchema,
192
+ type: z.literal('Input.Toggle'),
193
+ value: z.boolean().optional(),
194
+ }),
195
+ z.object({
196
+ ...inputCommonSchema,
197
+ type: z.literal('Input.Checkbox'),
198
+ value: z.boolean().optional(),
199
+ }),
200
+ z.object({
201
+ ...inputCommonSchema,
202
+ type: z.literal('Input.ChoiceSet'),
203
+ choices: z.array(idwChoiceSchema).min(1),
204
+ style: z.enum(['compact', 'expanded', 'filtered']).optional(),
205
+ multi: z.boolean().optional(),
206
+ value: z.union([z.string(), z.array(z.string())]).optional(),
207
+ placeholder: z.string().optional(),
208
+ }),
209
+ z.object({
210
+ ...inputCommonSchema,
211
+ type: z.literal('Input.Date'),
212
+ value: z.string().optional(),
213
+ placeholder: z.string().optional(),
214
+ }),
215
+ z.object({
216
+ ...inputCommonSchema,
217
+ type: z.literal('Input.Time'),
218
+ value: z.string().optional(),
219
+ placeholder: z.string().optional(),
220
+ }),
221
+ z.object({
222
+ ...inputCommonSchema,
223
+ type: z.literal('Input.DateTime'),
224
+ value: z.string().optional(),
225
+ placeholder: z.string().optional(),
226
+ }),
227
+ z.object({
228
+ ...inputCommonSchema,
229
+ type: z.literal('Input.Slider'),
230
+ value: z.number().optional(),
231
+ min: z.number().optional(),
232
+ max: z.number().optional(),
233
+ step: z.number().optional(),
234
+ }),
235
+ z.object({
236
+ ...inputCommonSchema,
237
+ type: z.literal('Input.Range'),
238
+ value: z.tuple([z.number(), z.number()]).optional(),
239
+ min: z.number().optional(),
240
+ max: z.number().optional(),
241
+ step: z.number().optional(),
242
+ }),
243
+ z.object({
244
+ ...inputCommonSchema,
245
+ type: z.literal('Input.Rating'),
246
+ value: z.number().optional(),
247
+ }),
248
+ z.object({
249
+ ...inputCommonSchema,
250
+ type: z.literal('Input.Location'),
251
+ value: locationValueSchema.optional(),
252
+ placeholder: z.string().optional(),
253
+ includeCoordinates: z.boolean().optional(),
254
+ }),
255
+ z.object({
256
+ ...elementCommonSchema,
257
+ type: z.literal('Progress'),
258
+ value: z.number(),
259
+ max: z.number().optional(),
260
+ label: z.string().optional(),
261
+ variant: z.enum(['linear', 'circle']).optional(),
262
+ tone: idwToneSchema.optional(),
263
+ }),
264
+ z.object({
265
+ ...elementCommonSchema,
266
+ type: z.literal('Badge'),
267
+ text: z.string(),
268
+ tone: idwToneSchema.optional(),
269
+ }),
270
+ z.object({
271
+ ...elementCommonSchema,
272
+ type: z.literal('Icon'),
273
+ icon: z.string(),
274
+ }),
275
+ z.object({
276
+ ...elementCommonSchema,
277
+ type: z.literal('ImageSet'),
278
+ images: z.array(z.object({
279
+ url: z.string(),
280
+ alt: z.string(),
281
+ })).min(1),
282
+ }),
283
+ z.object({
284
+ ...elementCommonSchema,
285
+ type: z.literal('Media'),
286
+ url: z.string(),
287
+ mediaType: z.enum(['video', 'audio']).optional(),
288
+ poster: z.string().optional(),
289
+ title: z.string().optional(),
290
+ }),
291
+ z.object({
292
+ ...elementCommonSchema,
293
+ type: z.literal('Table'),
294
+ columns: z.array(z.object({ title: z.string() })).min(1),
295
+ rows: z.array(z.array(z.string())),
296
+ }),
297
+ ]));
298
+ function walkActions(actions, ctx, path) {
299
+ actions?.forEach((action, index) => {
300
+ if (action.verb === 'show-card' && action.card) {
301
+ const nested = idwCardSchema.safeParse(action.card);
302
+ if (!nested.success) {
303
+ issue(ctx, 'show-card card is not a valid IdwCard', [...path, index, 'card']);
304
+ }
305
+ }
306
+ });
307
+ }
308
+ function walkNesting(elements, depth, ctx, path) {
309
+ elements.forEach((element, index) => {
310
+ const elementPath = [...path, index];
311
+ if (element.type === 'Image' && !isAllowedResourceUrl(element.url)) {
312
+ issue(ctx, 'url must be relative or http(s)', [...elementPath, 'url']);
313
+ }
314
+ if (element.type === 'File' && !isAllowedResourceUrl(element.src)) {
315
+ issue(ctx, 'src must be relative or http(s)', [...elementPath, 'src']);
316
+ }
317
+ if (element.type === 'Media' && !isAllowedResourceUrl(element.url)) {
318
+ issue(ctx, 'url must be relative or http(s)', [...elementPath, 'url']);
319
+ }
320
+ if (element.type === 'Media' && element.poster && !isAllowedResourceUrl(element.poster)) {
321
+ issue(ctx, 'poster must be relative or http(s)', [...elementPath, 'poster']);
322
+ }
323
+ if (element.type === 'ImageSet') {
324
+ element.images.forEach((image, imageIndex) => {
325
+ if (!isAllowedResourceUrl(image.url)) {
326
+ issue(ctx, 'url must be relative or http(s)', [...elementPath, 'images', imageIndex, 'url']);
327
+ }
328
+ });
329
+ }
330
+ if (element.type === 'ActionSet') {
331
+ walkActions(element.actions, ctx, [...elementPath, 'actions']);
332
+ }
333
+ if (element.type === 'Container' || element.type === 'ColumnSet') {
334
+ const nextDepth = depth + 1;
335
+ if (nextDepth > IDW_CARD_MAX_NESTING) {
336
+ issue(ctx, `Nesting exceeds ${IDW_CARD_MAX_NESTING}`, elementPath);
337
+ return;
338
+ }
339
+ if (element.type === 'Container') {
340
+ walkNesting(element.items, nextDepth, ctx, [...elementPath, 'items']);
341
+ }
342
+ else {
343
+ element.columns.forEach((column, columnIndex) => {
344
+ walkNesting(column.items, nextDepth, ctx, [...elementPath, 'columns', columnIndex, 'items']);
345
+ });
346
+ }
347
+ }
348
+ });
349
+ }
350
+ export const idwCardSchema = z.object({
351
+ $schema: z.string().optional(),
352
+ type: z.literal('IdwCard'),
353
+ schema: z.literal(IDW_CARD_SCHEMA),
354
+ version: z.literal(IDW_CARD_VERSION),
355
+ body: z.array(idwCardElementSchema).max(IDW_CARD_MAX_BODY_ELEMENTS),
356
+ actions: z.array(idwCardActionSchema).max(IDW_CARD_MAX_ACTIONS).optional(),
357
+ fallbackText: z.string().optional(),
358
+ }).superRefine((card, ctx) => {
359
+ walkNesting(card.body, 0, ctx, ['body']);
360
+ walkActions(card.actions, ctx, ['actions']);
361
+ });
362
+ //# sourceMappingURL=card-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-schema.js","sourceRoot":"","sources":["../../../src/idw-card/card-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { isIdwCardInputElement, } from './types';
2
+ export function isElementVisible(element, hiddenIds = new Set()) {
3
+ const baseHidden = element.isVisible === false;
4
+ const toggled = Boolean(element.id && hiddenIds.has(element.id));
5
+ return !(toggled ? !baseHidden : baseHidden);
6
+ }
7
+ function walkElements(elements, visit) {
8
+ for (const element of elements) {
9
+ visit(element);
10
+ if (element.type === 'Container') {
11
+ walkElements(element.items, visit);
12
+ }
13
+ else if (element.type === 'ColumnSet') {
14
+ for (const column of element.columns) {
15
+ walkElements(column.items, visit);
16
+ }
17
+ }
18
+ }
19
+ }
20
+ export function listIdwCardInputs(elements, hiddenIds = new Set()) {
21
+ const inputs = [];
22
+ walkElements(elements, (element) => {
23
+ if (!isIdwCardInputElement(element)) {
24
+ return;
25
+ }
26
+ inputs.push({
27
+ name: element.name,
28
+ required: Boolean(element.required),
29
+ errorMessage: element.errorMessage,
30
+ visible: isElementVisible(element, hiddenIds),
31
+ });
32
+ });
33
+ return inputs;
34
+ }
35
+ export function defaultInputValue(element) {
36
+ if (element.value !== undefined) {
37
+ return element.value;
38
+ }
39
+ switch (element.type) {
40
+ case 'Input.Toggle':
41
+ case 'Input.Checkbox':
42
+ return false;
43
+ case 'Input.ChoiceSet':
44
+ return element.multi ? [] : '';
45
+ case 'Input.Slider':
46
+ case 'Input.Number':
47
+ case 'Input.Rating':
48
+ return element.type === 'Input.Slider' ? (element.min ?? 0) : undefined;
49
+ case 'Input.Range':
50
+ return [element.min ?? 0, element.max ?? 100];
51
+ case 'Input.Location':
52
+ return { address: '' };
53
+ default:
54
+ return '';
55
+ }
56
+ }
57
+ export function collectInitialInputValues(elements) {
58
+ const values = {};
59
+ walkElements(elements, (element) => {
60
+ if (isIdwCardInputElement(element)) {
61
+ values[element.name] = defaultInputValue(element);
62
+ }
63
+ });
64
+ return values;
65
+ }
66
+ export function isInputEmpty(value) {
67
+ if (value == null) {
68
+ return true;
69
+ }
70
+ if (typeof value === 'string') {
71
+ return value.trim() === '';
72
+ }
73
+ if (Array.isArray(value)) {
74
+ return value.length === 0;
75
+ }
76
+ if (typeof value === 'object') {
77
+ const location = value;
78
+ return !location.address && location.lat == null && location.lng == null;
79
+ }
80
+ return false;
81
+ }
82
+ //# sourceMappingURL=collect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../src/idw-card/collect.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAKtB,MAAM,SAAS,CAAC;AAEjB,MAAM,UAAU,gBAAgB,CAC9B,OAAiD,EACjD,YAAiC,IAAI,GAAG,EAAE;IAE1C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CACnB,QAA0B,EAC1B,KAAwC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACxC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAA0B,EAC1B,YAAiC,IAAI,GAAG,EAAE;IAE1C,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YACnC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC5D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,cAAc,CAAC;QACpB,KAAK,gBAAgB;YACnB,OAAO,KAAK,CAAC;QACf,KAAK,iBAAiB;YACpB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc;YACjB,OAAO,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,KAAK,aAAa;YAChB,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QAChD,KAAK,gBAAgB;YACnB,OAAO,EAAE,OAAO,EAAE,EAAE,EAA6B,CAAC;QACpD;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAA0B;IAE1B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QACjC,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAyB,CAAC;QAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,8 @@
1
+ export function getIdwCardFallbackText(card) {
2
+ if (!card || typeof card !== 'object' || Array.isArray(card)) {
3
+ return undefined;
4
+ }
5
+ const fallbackText = card.fallbackText;
6
+ return typeof fallbackText === 'string' && fallbackText.trim() ? fallbackText : undefined;
7
+ }
8
+ //# sourceMappingURL=fallbackText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallbackText.js","sourceRoot":"","sources":["../../../src/idw-card/fallbackText.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAI,IAAmC,CAAC,YAAY,CAAC;IACvE,OAAO,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { idwCardActionSchema, idwCardElementSchema, idwCardSchema, idwCardVerbSchema, } from './card-schema';
2
+ export { collectInitialInputValues, defaultInputValue, isElementVisible, isInputEmpty, listIdwCardInputs, } from './collect';
3
+ export { isIdwCardInputElement } from './types';
4
+ export { getIdwCardFallbackText } from './fallbackText';
5
+ export { isAllowedResourceUrl } from './url';
6
+ export { parseIdwCard, validateIdwCard } from './validate';
7
+ export { bindIdwCard } from './bind';
8
+ export { APPROVAL_TEMPLATE_ID, approvalDataSchema, approvalTemplate, approvalTemplateCard, FILE_TEMPLATE_ID, fileDataSchema, fileTemplate, fileTemplateCard, getIdwCardJsonSchema, getIdwCardTemplate, getIdwCardTemplateDocument, getIdwDocumentJsonSchema, FEED_TEMPLATES_HREF, feedTemplateHref, HTML_TEMPLATE_ID, htmlDataSchema, htmlTemplate, htmlTemplateCard, IDW_CARD_SCHEMA_HREF, IDW_CARD_TEMPLATES, listIdwCardTemplates, listIdwSchemaCatalog, MARKDOWN_TEMPLATE_ID, markdownDataSchema, markdownTemplate, markdownTemplateCard, resolveIdwCardSource, SKILL_TEMPLATE_ID, skillDataSchema, skillTemplate, skillTemplateCard, toJsonSchema, } from './templates';
9
+ export { IDW_CARD_MAX_ACTIONS, IDW_CARD_MAX_BODY_ELEMENTS, IDW_CARD_MAX_COLUMNS, IDW_CARD_MAX_NESTING, IDW_CARD_MIN_COLUMNS, IDW_CARD_SCHEMA, IDW_CARD_VERSION, } from './version';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/idw-card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAwDnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AAgBrB,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,WAAW,CAAC"}