@memberjunction/interactive-component-types 4.4.0 → 5.0.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.
@@ -0,0 +1,67 @@
1
+ import { ComponentEvent, ComponentProperty } from "./component-props-events.js";
2
+ import { ComponentDataRequirements } from "./data-requirements.js";
3
+ /**
4
+ * Represents a child component within a component hierarchy
5
+ */
6
+ export interface ComponentChildSpec {
7
+ /**
8
+ * The programmatic name of the component
9
+ */
10
+ componentName: string;
11
+ /**
12
+ * Example of the component being used in JSX format. This is used to provide a clear example on the properties and
13
+ * event handling that the component supports. This is used to teach the next AI exactly what we want it to generate for the
14
+ * child component.
15
+ */
16
+ exampleUsage: string;
17
+ /**
18
+ * The code for the child component. This is generated LATER by a separate process after the parent
19
+ * component generation is complete. When the parent component generates this is undefined.
20
+ */
21
+ componentCode?: string;
22
+ /**
23
+ * A summary of what this child component does that a user would understand.
24
+ * This should be a high-level, user-friendly description suitable for end users.
25
+ */
26
+ description: string;
27
+ /**
28
+ * Functional requirements for this child component.
29
+ * This should be in markdown format and describe what the component should do from a functional perspective.
30
+ * Includes:
31
+ * - Component-specific functionality
32
+ * - How it integrates with the parent component
33
+ * - User interactions within this component
34
+ * - Business rules specific to this component
35
+ */
36
+ functionalRequirements?: string;
37
+ /**
38
+ * Data requirements for this child component. This section defines where a child component
39
+ * will **directly** access data as required using utilities methods like `rv.runView` and `rq.runQuery`
40
+ */
41
+ dataRequirements?: ComponentDataRequirements;
42
+ /**
43
+ * An optional array of properties that the component uses. The names and descriptions
44
+ * allow consumers of the component to understand what is accepted by the component and the
45
+ * component. This can be used for shared data shared between components or for configuration
46
+ * settings.
47
+ */
48
+ properties?: ComponentProperty[];
49
+ /**
50
+ * An optional array of events that the component emits.
51
+ * This allows consumers of the component to understand what events they can listen to.
52
+ */
53
+ events?: ComponentEvent[];
54
+ /**
55
+ * Technical design details for this child component.
56
+ * This should be in markdown format and describe the implementation approach.
57
+ * Includes:
58
+ * - How the component is structured
59
+ * - Properites/events
60
+ */
61
+ technicalDesign?: string;
62
+ /**
63
+ * An array of sub-components
64
+ */
65
+ components: ComponentChildSpec[];
66
+ }
67
+ //# sourceMappingURL=child-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-spec.d.ts","sourceRoot":"","sources":["../src/child-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAE7C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEjC;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAE1B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,UAAU,EAAE,kBAAkB,EAAE,CAAC;CACpC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=child-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-spec.js","sourceRoot":"","sources":["../src/child-spec.ts"],"names":[],"mappings":""}
@@ -39,11 +39,10 @@ export type ComponentQueryDataRequirement = {
39
39
  description?: string;
40
40
  /**
41
41
  * A list of the fields that the component will use out of the possible fields returned by the query.
42
- * Uses the @see SimpleEntityFieldInfo type to describe each field. **NOTE** not all of the fields are actually
43
- * directly related to entity fields as some might be computed/etc, but SimpleEntityFieldInfo helps define some key aspects
44
- * like the data type of the column and a description of the field.
42
+ * Uses the @see SimpleQueryFieldInfo type to describe each field, which extends SimpleEntityFieldInfo
43
+ * with query-specific properties like source entity tracking and summary field indicators.
45
44
  */
46
- fields: SimpleEntityFieldInfo[];
45
+ fields: SimpleQueryFieldInfo[];
47
46
  /**
48
47
  * A list of the entities that are part of this query. This is vital information for matching query requests
49
48
  * against existing queries
@@ -197,6 +196,37 @@ export declare class SimpleEntityFieldInfo {
197
196
  */
198
197
  ToEntityFieldInfo(): Partial<EntityFieldInfo>;
199
198
  }
199
+ /**
200
+ * Extended field info class for query fields that includes data lineage tracking.
201
+ * Query fields may come from joins across multiple entities, so this class tracks
202
+ * the source entity and field for each column in the query result.
203
+ *
204
+ * Use this class for ComponentQueryDataRequirement.fields instead of SimpleEntityFieldInfo.
205
+ */
206
+ export declare class SimpleQueryFieldInfo extends SimpleEntityFieldInfo {
207
+ /**
208
+ * The source entity this field originates from (for data lineage tracking).
209
+ * For query fields, this indicates which MemberJunction entity the data comes from.
210
+ * May be undefined for computed fields that don't map to a single entity.
211
+ */
212
+ sourceEntity?: string;
213
+ /**
214
+ * The field name in the source entity (for data lineage tracking).
215
+ * Combined with sourceEntity, this provides full lineage back to the original data source.
216
+ */
217
+ sourceFieldName?: string;
218
+ /**
219
+ * Whether this field represents a summary/aggregate value (COUNT, SUM, AVG, etc.).
220
+ * Important for chart axis choices, grid formatting, and data interpretation.
221
+ */
222
+ isSummary?: boolean;
223
+ /**
224
+ * Description of the summary calculation (e.g., "Count of orders per customer").
225
+ * Provides context for how the aggregate value is computed.
226
+ */
227
+ summaryDescription?: string;
228
+ constructor(init?: Partial<SimpleQueryFieldInfo>);
229
+ }
200
230
  /**
201
231
  * Lightweight class to share entity metadata for component validation and linting.
202
232
  * Contains the entity name and complete list of all fields in the entity.
@@ -1 +1 @@
1
- {"version":3,"file":"data-requirements.d.ts","sourceRoot":"","sources":["../src/data-requirements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-requirements.d.ts","sourceRoot":"","sources":["../src/data-requirements.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,25 @@ export class SimpleEntityFieldInfo {
46
46
  };
47
47
  }
48
48
  }
49
+ /**
50
+ * Extended field info class for query fields that includes data lineage tracking.
51
+ * Query fields may come from joins across multiple entities, so this class tracks
52
+ * the source entity and field for each column in the query result.
53
+ *
54
+ * Use this class for ComponentQueryDataRequirement.fields instead of SimpleEntityFieldInfo.
55
+ */
56
+ export class SimpleQueryFieldInfo extends SimpleEntityFieldInfo {
57
+ constructor(init) {
58
+ super(init);
59
+ if (init) {
60
+ // Assign query-specific properties that aren't handled by super()
61
+ this.sourceEntity = init.sourceEntity;
62
+ this.sourceFieldName = init.sourceFieldName;
63
+ this.isSummary = init.isSummary;
64
+ this.summaryDescription = init.summaryDescription;
65
+ }
66
+ }
67
+ }
49
68
  /**
50
69
  * Lightweight class to share entity metadata for component validation and linting.
51
70
  * Contains the entity name and complete list of all fields in the entity.
@@ -1 +1 @@
1
- {"version":3,"file":"data-requirements.js","sourceRoot":"","sources":["../src/data-requirements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-requirements.js","sourceRoot":"","sources":["../src/data-requirements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { ComponentChildSpec } from "./child-spec.js";
2
+ import { ComponentDataRequirements } from "./data-requirements.js";
3
+ /**
4
+ * Represents a complete specification for a generated Skip component, including its structure,
5
+ * requirements, code, and nested component hierarchy
6
+ */
7
+ export type ComponentRootSpec = {
8
+ /**
9
+ * A description of what the component should do from a functional perspective.
10
+ * This should be in markdown format and include:
11
+ * - Core functionality
12
+ * - Business rules
13
+ * - Expected outcomes
14
+ * - UX considerations
15
+ */
16
+ functionalRequirements: string;
17
+ /**
18
+ * Detailed data requirements, including how the component accesses and uses data.
19
+ */
20
+ dataRequirements?: ComponentDataRequirements;
21
+ /**
22
+ * A technical description of how the component is designed and implemented.
23
+ * This should be in markdown format and include:
24
+ * - Architecture and design patterns
25
+ * - Key technical decisions
26
+ * - Component structure
27
+ * - State management
28
+ * - Integration points with parent/child components
29
+ */
30
+ technicalDesign: string;
31
+ /**
32
+ * The code for the main component.
33
+ */
34
+ componentCode: string;
35
+ /**
36
+ * Name of the component
37
+ */
38
+ componentName: string;
39
+ /**
40
+ * The type of component: report, dashboard, form, or other.
41
+ */
42
+ componentType: "report" | "dashboard" | "form" | "other";
43
+ /**
44
+ * A summary of what the component does that a user would understand.
45
+ */
46
+ description: string;
47
+ /**
48
+ * The callback strategy used by this component (e.g., "hybrid", "direct", "none")
49
+ */
50
+ callbackStrategy: string;
51
+ /**
52
+ * Describes the state structure managed by this component
53
+ */
54
+ stateStructure: Record<string, string>;
55
+ /**
56
+ * An array of child component specifications
57
+ */
58
+ childComponents: ComponentChildSpec[];
59
+ /**
60
+ * User-friendly name
61
+ */
62
+ title: string;
63
+ /**
64
+ * A user-friendly explanation of what the component does
65
+ */
66
+ userExplanation: string;
67
+ /**
68
+ * Summary of technical design
69
+ */
70
+ techExplanation: string;
71
+ };
72
+ //# sourceMappingURL=root-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-spec.d.ts","sourceRoot":"","sources":["../src/root-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B;;;;;;;OAOG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAE7C;;;;;;;;OAQG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAEzD;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,eAAe,EAAE,kBAAkB,EAAE,CAAC;IAEtC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=root-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-spec.js","sourceRoot":"","sources":["../src/root-spec.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/interactive-component-types",
3
3
  "type": "module",
4
- "version": "4.4.0",
4
+ "version": "5.0.0",
5
5
  "description": "MemberJunction: Interactive Component - Type specifications for MJ Interactive UI Componentry",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -20,8 +20,8 @@
20
20
  "typescript": "^5.9.3"
21
21
  },
22
22
  "dependencies": {
23
- "@memberjunction/core": "4.4.0",
24
- "@memberjunction/ai-vectors-memory": "4.4.0"
23
+ "@memberjunction/core": "5.0.0",
24
+ "@memberjunction/ai-vectors-memory": "5.0.0"
25
25
  },
26
26
  "repository": {
27
27
  "type": "git",