@things-factory/ai-dashboard 10.1.213 → 10.1.215

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 (73) hide show
  1. package/client/components/card-dialogs.ts +24 -1
  2. package/client/components/dashboard-card.ts +24 -70
  3. package/client/index.ts +2 -0
  4. package/client/pages/my-dashboard-page.ts +6 -5
  5. package/client/utils/card-api.ts +3 -2
  6. package/client/utils/card-words.ts +11 -0
  7. package/client/utils/examples.ts +15 -0
  8. package/dist-client/components/card-dialogs.js +22 -1
  9. package/dist-client/components/card-dialogs.js.map +1 -1
  10. package/dist-client/components/dashboard-card.d.ts +6 -5
  11. package/dist-client/components/dashboard-card.js +23 -73
  12. package/dist-client/components/dashboard-card.js.map +1 -1
  13. package/dist-client/index.d.ts +1 -0
  14. package/dist-client/index.js +2 -0
  15. package/dist-client/index.js.map +1 -1
  16. package/dist-client/pages/my-dashboard-page.js +6 -5
  17. package/dist-client/pages/my-dashboard-page.js.map +1 -1
  18. package/dist-client/tsconfig.tsbuildinfo +1 -1
  19. package/dist-client/utils/card-api.d.ts +6 -1
  20. package/dist-client/utils/card-api.js +1 -1
  21. package/dist-client/utils/card-api.js.map +1 -1
  22. package/dist-client/utils/card-words.d.ts +14 -0
  23. package/dist-client/utils/card-words.js +9 -0
  24. package/dist-client/utils/card-words.js.map +1 -1
  25. package/dist-client/utils/examples.d.ts +3 -0
  26. package/dist-client/utils/examples.js +14 -0
  27. package/dist-client/utils/examples.js.map +1 -0
  28. package/dist-server/service/card/card-access.d.ts +8 -2
  29. package/dist-server/service/card/card-access.js +9 -3
  30. package/dist-server/service/card/card-access.js.map +1 -1
  31. package/dist-server/service/card/card-definition.d.ts +42 -6
  32. package/dist-server/service/card/card-definition.js +172 -18
  33. package/dist-server/service/card/card-definition.js.map +1 -1
  34. package/dist-server/service/card/card-names.d.ts +5 -0
  35. package/dist-server/service/card/card-names.js +6 -1
  36. package/dist-server/service/card/card-names.js.map +1 -1
  37. package/dist-server/service/card/card-proposal.d.ts +6 -0
  38. package/dist-server/service/card/card-proposal.js +9 -0
  39. package/dist-server/service/card/card-proposal.js.map +1 -1
  40. package/dist-server/service/card/card-resolver.js +24 -5
  41. package/dist-server/service/card/card-resolver.js.map +1 -1
  42. package/dist-server/service/card/card-run.js +5 -1
  43. package/dist-server/service/card/card-run.js.map +1 -1
  44. package/dist-server/service/card/card-tool.d.ts +66 -8
  45. package/dist-server/service/card/card-tool.js +88 -17
  46. package/dist-server/service/card/card-tool.js.map +1 -1
  47. package/dist-server/service/card/card-types.d.ts +1 -0
  48. package/dist-server/service/card/card-types.js +8 -4
  49. package/dist-server/service/card/card-types.js.map +1 -1
  50. package/dist-server/service/card/dashboard-card.d.ts +2 -0
  51. package/dist-server/service/card/dashboard-card.js +5 -3
  52. package/dist-server/service/card/dashboard-card.js.map +1 -1
  53. package/dist-server/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +5 -5
  55. package/server/service/card/card-access.test.ts +62 -7
  56. package/server/service/card/card-access.ts +12 -5
  57. package/server/service/card/card-definition.ts +182 -18
  58. package/server/service/card/card-intent.test.ts +250 -0
  59. package/server/service/card/card-names.ts +5 -0
  60. package/server/service/card/card-proposal.ts +10 -1
  61. package/server/service/card/card-resolver.ts +26 -8
  62. package/server/service/card/card-run.ts +5 -1
  63. package/server/service/card/card-tool.ts +91 -20
  64. package/server/service/card/card-types.ts +7 -4
  65. package/server/service/card/dashboard-card.ts +5 -3
  66. package/test/card-menu.test.ts +34 -0
  67. package/test/translations.test.ts +1 -1
  68. package/translations/en.json +3 -3
  69. package/translations/es.json +3 -3
  70. package/translations/ja.json +3 -3
  71. package/translations/ko.json +3 -3
  72. package/translations/ms.json +3 -3
  73. package/translations/zh.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"card-types.js","sourceRoot":"","sources":["../../../server/service/card/card-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\nimport { GraphQLJSON } from 'graphql-scalars'\n\nimport { DashboardCardShareScope } from './dashboard-card.js'\n\n@ObjectType({ description: 'Who a card is shared with, as its owner sees it.' })\nexport class DashboardCardShareItem {\n @Field(type => DashboardCardShareScope, { description: 'A person, a department or the domain.' })\n scope: DashboardCardShareScope\n\n @Field({ description: 'The user, department or domain id.' })\n targetId: string\n\n @Field({ nullable: true, description: 'Its name when it was shared.' })\n targetName?: string\n}\n\n@ObjectType({ description: 'A dashboard card as the viewer may use it.' })\nexport class DashboardCardItem {\n @Field(type => ID, { description: 'Card id.' })\n id: string\n\n @Field({ description: 'The card name.' })\n name: string\n\n @Field({ nullable: true, description: 'What it shows, in a line.' })\n description?: string\n\n @Field(type => Int, { description: 'The current version.' })\n version: number\n\n @Field(type => GraphQLJSON, { description: 'The current definition.' })\n definition: unknown\n\n @Field({ description: \"'owner' when the viewer made it, 'shared' when it was shared with them.\" })\n access: string\n\n @Field({ nullable: true, description: 'Who made it.' })\n ownerName?: string\n\n @Field({ nullable: true, description: 'The card it was copied from.' })\n copiedFromId?: string\n\n @Field({ description: 'Whether the viewer has placed it on their dashboard.' })\n placed: boolean\n\n @Field(type => [DashboardCardShareItem], { nullable: true, description: 'Who it is shared with - its owner only.' })\n shares?: DashboardCardShareItem[]\n\n @Field({ nullable: true, description: 'When it was changed last.' })\n updatedAt?: Date\n}\n\n@ObjectType({ description: 'One card placed on the viewer\\'s dashboard.' })\nexport class DashboardPlaceItem {\n @Field(type => ID, { description: 'Place id.' })\n id: string\n\n @Field(type => Int, { description: 'Its order in the grid.' })\n order: number\n\n @Field(type => Int, { description: 'Columns it spans, 1 to 4.' })\n width: number\n\n @Field(type => Int, { description: 'Rows it spans, 1 to 2.' })\n height: number\n\n @Field(type => DashboardCardItem, { description: 'The card.' })\n card: DashboardCardItem\n}\n\n@ObjectType({ description: 'A version of a card, as its owner sees it.' })\nexport class DashboardCardVersionItem {\n @Field(type => Int, { description: 'The version number.' })\n version: number\n\n @Field({ description: 'The name in this version.' })\n name: string\n\n @Field(type => GraphQLJSON, { description: 'The definition in this version.' })\n definition: unknown\n\n @Field({ nullable: true, description: 'Who saved it.' })\n creatorName?: string\n\n @Field({ nullable: true, description: 'When it was saved.' })\n createdAt?: Date\n}\n\n@ObjectType({ description: 'A department or person a card may be shared with.' })\nexport class DashboardShareChoice {\n @Field({ description: 'The department id, or the user id of a person.' })\n id: string\n\n @Field({ description: 'The name.' })\n name: string\n\n @Field({ nullable: true, description: 'Where the person works.' })\n note?: string\n}\n\n@ObjectType({ description: 'What a card may be shared with by the viewer.' })\nexport class DashboardShareOptions {\n @Field({ description: 'The domain - the whole-domain share names it.' })\n domainId: string\n\n @Field({ description: 'The domain name.' })\n domainName: string\n\n @Field({ description: 'Whether departments are known here (the organization module).' })\n departmentsAvailable: boolean\n\n @Field(type => [DashboardShareChoice], { description: \"The viewer's own departments.\" })\n departments: DashboardShareChoice[]\n\n @Field({ description: 'Whether the viewer may look people up to share with them.' })\n peopleAvailable: boolean\n}\n\n@InputType({ description: 'One share of a card.' })\nexport class DashboardCardShareInput {\n @Field(type => DashboardCardShareScope, { description: 'A person, a department or the domain.' })\n scope: DashboardCardShareScope\n\n @Field({ description: 'The user, department or domain id.' })\n targetId: string\n\n @Field({ nullable: true, description: 'Its name, shown to the owner.' })\n targetName?: string\n}\n\n@InputType({ description: 'Where one placed card goes.' })\nexport class DashboardPlaceInput {\n @Field(type => ID, { description: 'Place id.' })\n id: string\n\n @Field(type => Int, { description: 'Its order.' })\n order: number\n\n @Field(type => Int, { description: 'Columns, 1 to 4.' })\n width: number\n\n @Field(type => Int, { description: 'Rows, 1 to 2.' })\n height: number\n}\n"]}
1
+ {"version":3,"file":"card-types.js","sourceRoot":"","sources":["../../../server/service/card/card-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\nimport { GraphQLJSON } from 'graphql-scalars'\n\nimport { DashboardCardShareScope } from './dashboard-card.js'\n\n@ObjectType({ description: 'Who a card is shared with, as its owner sees it.' })\nexport class DashboardCardShareItem {\n @Field(type => DashboardCardShareScope, { description: 'A person, a department, a role or the domain.' })\n scope: DashboardCardShareScope\n\n @Field({ description: 'The user, department, role or domain id.' })\n targetId: string\n\n @Field({ nullable: true, description: 'Its name when it was shared.' })\n targetName?: string\n}\n\n@ObjectType({ description: 'A dashboard card as the viewer may use it.' })\nexport class DashboardCardItem {\n @Field(type => ID, { description: 'Card id.' })\n id: string\n\n @Field({ description: 'The card name.' })\n name: string\n\n @Field({ nullable: true, description: 'What it shows, in a line.' })\n description?: string\n\n @Field(type => Int, { description: 'The current version.' })\n version: number\n\n @Field(type => GraphQLJSON, { description: 'The current definition.' })\n definition: unknown\n\n @Field({ description: \"'owner' when the viewer made it, 'shared' when it was shared with them.\" })\n access: string\n\n @Field({ nullable: true, description: 'Who made it.' })\n ownerName?: string\n\n @Field({ nullable: true, description: 'The card it was copied from.' })\n copiedFromId?: string\n\n @Field({ description: 'Whether the viewer has placed it on their dashboard.' })\n placed: boolean\n\n @Field(type => [DashboardCardShareItem], { nullable: true, description: 'Who it is shared with - its owner only.' })\n shares?: DashboardCardShareItem[]\n\n @Field({ nullable: true, description: 'When it was changed last.' })\n updatedAt?: Date\n}\n\n@ObjectType({ description: 'One card placed on the viewer\\'s dashboard.' })\nexport class DashboardPlaceItem {\n @Field(type => ID, { description: 'Place id.' })\n id: string\n\n @Field(type => Int, { description: 'Its order in the grid.' })\n order: number\n\n @Field(type => Int, { description: 'Columns it spans, 1 to 4.' })\n width: number\n\n @Field(type => Int, { description: 'Rows it spans, 1 to 2.' })\n height: number\n\n @Field(type => DashboardCardItem, { description: 'The card.' })\n card: DashboardCardItem\n}\n\n@ObjectType({ description: 'A version of a card, as its owner sees it.' })\nexport class DashboardCardVersionItem {\n @Field(type => Int, { description: 'The version number.' })\n version: number\n\n @Field({ description: 'The name in this version.' })\n name: string\n\n @Field(type => GraphQLJSON, { description: 'The definition in this version.' })\n definition: unknown\n\n @Field({ nullable: true, description: 'Who saved it.' })\n creatorName?: string\n\n @Field({ nullable: true, description: 'When it was saved.' })\n createdAt?: Date\n}\n\n@ObjectType({ description: 'A department or person a card may be shared with.' })\nexport class DashboardShareChoice {\n @Field({ description: 'The department id, or the user id of a person.' })\n id: string\n\n @Field({ description: 'The name.' })\n name: string\n\n @Field({ nullable: true, description: 'Where the person works.' })\n note?: string\n}\n\n@ObjectType({ description: 'What a card may be shared with by the viewer.' })\nexport class DashboardShareOptions {\n @Field({ description: 'The domain - the whole-domain share names it.' })\n domainId: string\n\n @Field({ description: 'The domain name.' })\n domainName: string\n\n @Field({ description: 'Whether departments are known here (the organization module).' })\n departmentsAvailable: boolean\n\n @Field(type => [DashboardShareChoice], { description: \"The viewer's own departments.\" })\n departments: DashboardShareChoice[]\n\n @Field({ description: 'Whether the viewer may look people up to share with them.' })\n peopleAvailable: boolean\n\n @Field(type => [DashboardShareChoice], { description: \"The domain's roles, the ones it inherits included - a card shared with one reaches whoever holds it.\" })\n roles: DashboardShareChoice[]\n}\n\n@InputType({ description: 'One share of a card.' })\nexport class DashboardCardShareInput {\n @Field(type => DashboardCardShareScope, { description: 'A person, a department, a role or the domain.' })\n scope: DashboardCardShareScope\n\n @Field({ description: 'The user, department, role or domain id.' })\n targetId: string\n\n @Field({ nullable: true, description: 'Its name, shown to the owner.' })\n targetName?: string\n}\n\n@InputType({ description: 'Where one placed card goes.' })\nexport class DashboardPlaceInput {\n @Field(type => ID, { description: 'Place id.' })\n id: string\n\n @Field(type => Int, { description: 'Its order.' })\n order: number\n\n @Field(type => Int, { description: 'Columns, 1 to 4.' })\n width: number\n\n @Field(type => Int, { description: 'Rows, 1 to 2.' })\n height: number\n}\n"]}
@@ -6,6 +6,8 @@ export declare enum DashboardCardShareScope {
6
6
  USER = "USER",
7
7
  /** The active members of one department, by department id (organization). */
8
8
  DEPARTMENT = "DEPARTMENT",
9
+ /** Whoever holds one role of the domain, by role id (auth-base). */
10
+ ROLE = "ROLE",
9
11
  /** Everyone in the domain. */
10
12
  DOMAIN = "DOMAIN"
11
13
  }
@@ -19,10 +19,12 @@ var DashboardCardShareScope;
19
19
  DashboardCardShareScope["USER"] = "USER";
20
20
  /** The active members of one department, by department id (organization). */
21
21
  DashboardCardShareScope["DEPARTMENT"] = "DEPARTMENT";
22
+ /** Whoever holds one role of the domain, by role id (auth-base). */
23
+ DashboardCardShareScope["ROLE"] = "ROLE";
22
24
  /** Everyone in the domain. */
23
25
  DashboardCardShareScope["DOMAIN"] = "DOMAIN";
24
26
  })(DashboardCardShareScope || (exports.DashboardCardShareScope = DashboardCardShareScope = {}));
25
- (0, type_graphql_1.registerEnumType)(DashboardCardShareScope, { name: 'DashboardCardShareScope', description: 'Who a dashboard card is shared with: a person, a department or the whole domain.' });
27
+ (0, type_graphql_1.registerEnumType)(DashboardCardShareScope, { name: 'DashboardCardShareScope', description: 'Who a dashboard card is shared with: a person, a department, a role or the whole domain.' });
26
28
  let DashboardCard = class DashboardCard {
27
29
  get definition() {
28
30
  return (0, long_text_js_1.parsedJson)(this.definitionJson);
@@ -246,12 +248,12 @@ tslib_1.__decorate([
246
248
  ], DashboardCardShare.prototype, "cardId", void 0);
247
249
  tslib_1.__decorate([
248
250
  (0, typeorm_1.Column)(),
249
- (0, type_graphql_1.Field)(type => DashboardCardShareScope, { description: 'A person, a department or the domain.' }),
251
+ (0, type_graphql_1.Field)(type => DashboardCardShareScope, { description: 'A person, a department, a role or the domain.' }),
250
252
  tslib_1.__metadata("design:type", String)
251
253
  ], DashboardCardShare.prototype, "scope", void 0);
252
254
  tslib_1.__decorate([
253
255
  (0, typeorm_1.Column)(),
254
- (0, type_graphql_1.Field)({ description: 'The user, department or domain id the scope names.' }),
256
+ (0, type_graphql_1.Field)({ description: 'The user, department, role or domain id the scope names.' }),
255
257
  tslib_1.__metadata("design:type", String)
256
258
  ], DashboardCardShare.prototype, "targetId", void 0);
257
259
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-card.js","sourceRoot":"","sources":["../../../server/service/card/dashboard-card.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * The four tables of the dashboard cards (ADR-0160 decisions 7, 8, 10): a card and its versions, who it is shared\n * with, and where each person placed the cards they use. A card holds its definition only - never values.\n */\nimport { Column, CreateDateColumn, DeleteDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'\nimport { Field, ID, Int, ObjectType, registerEnumType } from 'type-graphql'\nimport { GraphQLJSON } from 'graphql-scalars'\n\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\nimport { LONG_TEXT, parsedJson } from './long-text.js'\n\n/** Who a card is shared with besides its owner - nobody when it has no share row. */\nexport enum DashboardCardShareScope {\n /** One person, by user id. */\n USER = 'USER',\n /** The active members of one department, by department id (organization). */\n DEPARTMENT = 'DEPARTMENT',\n /** Everyone in the domain. */\n DOMAIN = 'DOMAIN'\n}\n\nregisterEnumType(DashboardCardShareScope, { name: 'DashboardCardShareScope', description: 'Who a dashboard card is shared with: a person, a department or the whole domain.' })\n\n@Entity('ai_dashboard_cards')\n@Index('ix_ai_dashboard_card_0', (card: DashboardCard) => [card.domain, card.owner])\n@ObjectType({ description: 'A dashboard card - a definition made with the assistant, run as the viewer when drawn.' })\nexport class DashboardCard {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Card id.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain the card is in.' })\n domain?: Domain\n\n @RelationId((card: DashboardCard) => card.domain)\n domainId?: string\n\n @Column()\n @Field({ description: 'The card name.' })\n name: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'What the card shows, in a line.' })\n description?: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true, description: 'The one who made the card - the only one who changes it.' })\n owner?: User\n\n @RelationId((card: DashboardCard) => card.owner)\n ownerId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'The current version - one more each time the definition or name changes.' })\n version: number\n\n @Column({ ...LONG_TEXT, nullable: false })\n definitionJson: string\n\n @Field(type => GraphQLJSON, { description: 'The current definition - what is read, how its rows are shaped and drawn.' })\n get definition(): unknown {\n return parsedJson(this.definitionJson)\n }\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The card this one was copied from.' })\n copiedFromId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who created the row.' })\n creator?: User\n\n @RelationId((card: DashboardCard) => card.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed the row last.' })\n updater?: User\n\n @RelationId((card: DashboardCard) => card.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When the card was made.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When the card was changed last.' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When the card was deleted.' })\n deletedAt?: Date\n}\n\n@Entity('ai_dashboard_card_versions')\n@Index('ix_ai_dashboard_card_version_0', (one: DashboardCardVersion) => [one.card, one.version], { unique: true, where: '\"deleted_at\" IS NULL' })\n/* A proposal saved once - pressing it again finds this row and answers the same card (decision 9). */\n@Index('ix_ai_dashboard_card_version_1', (one: DashboardCardVersion) => [one.domain, one.proposalSessionId, one.proposalKey], { unique: true, where: '\"deleted_at\" IS NULL AND \"proposal_session_id\" IS NOT NULL' })\n@ObjectType({ description: 'One version of a dashboard card - its name and definition as saved then.' })\nexport class DashboardCardVersion {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Version row id.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain.' })\n domain?: Domain\n\n @RelationId((one: DashboardCardVersion) => one.domain)\n domainId?: string\n\n @ManyToOne(type => DashboardCard, { onDelete: 'CASCADE' })\n card?: DashboardCard\n\n @RelationId((one: DashboardCardVersion) => one.card)\n @Field({ description: 'The card.' })\n cardId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'The version number.' })\n version: number\n\n @Column()\n @Field({ description: 'The card name in this version.' })\n name: string\n\n @Column({ ...LONG_TEXT, nullable: false })\n definitionJson: string\n\n @Field(type => GraphQLJSON, { description: 'The definition in this version.' })\n get definition(): unknown {\n return parsedJson(this.definitionJson)\n }\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The conversation whose proposal made this version.' })\n proposalSessionId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The proposal that made this version.' })\n proposalKey?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who saved this version.' })\n creator?: User\n\n @RelationId((one: DashboardCardVersion) => one.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed the row last.' })\n updater?: User\n\n @RelationId((one: DashboardCardVersion) => one.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When this version was saved.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When the row was changed last.' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When the row was deleted.' })\n deletedAt?: Date\n}\n\n@Entity('ai_dashboard_card_shares')\n@Index('ix_ai_dashboard_card_share_0', (one: DashboardCardShare) => [one.card, one.scope, one.targetId], { unique: true, where: '\"deleted_at\" IS NULL' })\n@Index('ix_ai_dashboard_card_share_1', (one: DashboardCardShare) => [one.domain, one.scope, one.targetId])\n@ObjectType({ description: 'Who one dashboard card is shared with - a person, a department or the domain.' })\nexport class DashboardCardShare {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Share id.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain.' })\n domain?: Domain\n\n @RelationId((one: DashboardCardShare) => one.domain)\n domainId?: string\n\n @ManyToOne(type => DashboardCard, { onDelete: 'CASCADE' })\n card?: DashboardCard\n\n @RelationId((one: DashboardCardShare) => one.card)\n @Field({ description: 'The card shared.' })\n cardId?: string\n\n @Column()\n @Field(type => DashboardCardShareScope, { description: 'A person, a department or the domain.' })\n scope: DashboardCardShareScope\n\n @Column()\n @Field({ description: 'The user, department or domain id the scope names.' })\n targetId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The name of the person, department or domain when it was shared - shown to the owner.' })\n targetName?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who shared it.' })\n creator?: User\n\n @RelationId((one: DashboardCardShare) => one.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed the row last.' })\n updater?: User\n\n @RelationId((one: DashboardCardShare) => one.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When it was shared.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When the row was changed last.' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When the share was withdrawn.' })\n deletedAt?: Date\n}\n\n@Entity('ai_dashboard_card_places')\n@Index('ix_ai_dashboard_card_place_0', (one: DashboardCardPlace) => [one.domain, one.user, one.card], { unique: true, where: '\"deleted_at\" IS NULL' })\n@ObjectType({ description: 'Where one person placed a card on their dashboard - its order and size.' })\nexport class DashboardCardPlace {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Place id.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain.' })\n domain?: Domain\n\n @RelationId((one: DashboardCardPlace) => one.domain)\n domainId?: string\n\n @ManyToOne(type => User)\n user?: User\n\n @RelationId((one: DashboardCardPlace) => one.user)\n userId?: string\n\n @ManyToOne(type => DashboardCard, { onDelete: 'CASCADE' })\n card?: DashboardCard\n\n @RelationId((one: DashboardCardPlace) => one.card)\n @Field({ description: 'The card placed.' })\n cardId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'Its place in the grid, from the top left.' })\n order: number\n\n @Column('int')\n @Field(type => Int, { description: 'Columns it spans, 1 to 4.' })\n width: number\n\n @Column('int')\n @Field(type => Int, { description: 'Rows it spans, 1 to 2.' })\n height: number\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who created the row.' })\n creator?: User\n\n @RelationId((one: DashboardCardPlace) => one.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed the row last.' })\n updater?: User\n\n @RelationId((one: DashboardCardPlace) => one.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When it was placed.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When it was moved or sized last.' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When it was taken off the dashboard.' })\n deletedAt?: Date\n}\n"]}
1
+ {"version":3,"file":"dashboard-card.js","sourceRoot":"","sources":["../../../server/service/card/dashboard-card.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * The four tables of the dashboard cards (ADR-0160 decisions 7, 8, 10): a card and its versions, who it is shared\n * with, and where each person placed the cards they use. A card holds its definition only - never values.\n */\nimport { Column, CreateDateColumn, DeleteDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'\nimport { Field, ID, Int, ObjectType, registerEnumType } from 'type-graphql'\nimport { GraphQLJSON } from 'graphql-scalars'\n\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\nimport { LONG_TEXT, parsedJson } from './long-text.js'\n\n/** Who a card is shared with besides its owner - nobody when it has no share row. */\nexport enum DashboardCardShareScope {\n /** One person, by user id. */\n USER = 'USER',\n /** The active members of one department, by department id (organization). */\n DEPARTMENT = 'DEPARTMENT',\n /** Whoever holds one role of the domain, by role id (auth-base). */\n ROLE = 'ROLE',\n /** Everyone in the domain. */\n DOMAIN = 'DOMAIN'\n}\n\nregisterEnumType(DashboardCardShareScope, { name: 'DashboardCardShareScope', description: 'Who a dashboard card is shared with: a person, a department, a role or the whole domain.' })\n\n@Entity('ai_dashboard_cards')\n@Index('ix_ai_dashboard_card_0', (card: DashboardCard) => [card.domain, card.owner])\n@ObjectType({ description: 'A dashboard card - a definition made with the assistant, run as the viewer when drawn.' })\nexport class DashboardCard {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Card id.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain the card is in.' })\n domain?: Domain\n\n @RelationId((card: DashboardCard) => card.domain)\n domainId?: string\n\n @Column()\n @Field({ description: 'The card name.' })\n name: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'What the card shows, in a line.' })\n description?: string\n\n @ManyToOne(type => User)\n @Field(type => User, { nullable: true, description: 'The one who made the card - the only one who changes it.' })\n owner?: User\n\n @RelationId((card: DashboardCard) => card.owner)\n ownerId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'The current version - one more each time the definition or name changes.' })\n version: number\n\n @Column({ ...LONG_TEXT, nullable: false })\n definitionJson: string\n\n @Field(type => GraphQLJSON, { description: 'The current definition - what is read, how its rows are shaped and drawn.' })\n get definition(): unknown {\n return parsedJson(this.definitionJson)\n }\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The card this one was copied from.' })\n copiedFromId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who created the row.' })\n creator?: User\n\n @RelationId((card: DashboardCard) => card.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed the row last.' })\n updater?: User\n\n @RelationId((card: DashboardCard) => card.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When the card was made.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When the card was changed last.' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When the card was deleted.' })\n deletedAt?: Date\n}\n\n@Entity('ai_dashboard_card_versions')\n@Index('ix_ai_dashboard_card_version_0', (one: DashboardCardVersion) => [one.card, one.version], { unique: true, where: '\"deleted_at\" IS NULL' })\n/* A proposal saved once - pressing it again finds this row and answers the same card (decision 9). */\n@Index('ix_ai_dashboard_card_version_1', (one: DashboardCardVersion) => [one.domain, one.proposalSessionId, one.proposalKey], { unique: true, where: '\"deleted_at\" IS NULL AND \"proposal_session_id\" IS NOT NULL' })\n@ObjectType({ description: 'One version of a dashboard card - its name and definition as saved then.' })\nexport class DashboardCardVersion {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Version row id.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain.' })\n domain?: Domain\n\n @RelationId((one: DashboardCardVersion) => one.domain)\n domainId?: string\n\n @ManyToOne(type => DashboardCard, { onDelete: 'CASCADE' })\n card?: DashboardCard\n\n @RelationId((one: DashboardCardVersion) => one.card)\n @Field({ description: 'The card.' })\n cardId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'The version number.' })\n version: number\n\n @Column()\n @Field({ description: 'The card name in this version.' })\n name: string\n\n @Column({ ...LONG_TEXT, nullable: false })\n definitionJson: string\n\n @Field(type => GraphQLJSON, { description: 'The definition in this version.' })\n get definition(): unknown {\n return parsedJson(this.definitionJson)\n }\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The conversation whose proposal made this version.' })\n proposalSessionId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The proposal that made this version.' })\n proposalKey?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who saved this version.' })\n creator?: User\n\n @RelationId((one: DashboardCardVersion) => one.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed the row last.' })\n updater?: User\n\n @RelationId((one: DashboardCardVersion) => one.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When this version was saved.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When the row was changed last.' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When the row was deleted.' })\n deletedAt?: Date\n}\n\n@Entity('ai_dashboard_card_shares')\n@Index('ix_ai_dashboard_card_share_0', (one: DashboardCardShare) => [one.card, one.scope, one.targetId], { unique: true, where: '\"deleted_at\" IS NULL' })\n@Index('ix_ai_dashboard_card_share_1', (one: DashboardCardShare) => [one.domain, one.scope, one.targetId])\n@ObjectType({ description: 'Who one dashboard card is shared with - a person, a department or the domain.' })\nexport class DashboardCardShare {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Share id.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain.' })\n domain?: Domain\n\n @RelationId((one: DashboardCardShare) => one.domain)\n domainId?: string\n\n @ManyToOne(type => DashboardCard, { onDelete: 'CASCADE' })\n card?: DashboardCard\n\n @RelationId((one: DashboardCardShare) => one.card)\n @Field({ description: 'The card shared.' })\n cardId?: string\n\n @Column()\n @Field(type => DashboardCardShareScope, { description: 'A person, a department, a role or the domain.' })\n scope: DashboardCardShareScope\n\n @Column()\n @Field({ description: 'The user, department, role or domain id the scope names.' })\n targetId: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The name of the person, department or domain when it was shared - shown to the owner.' })\n targetName?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who shared it.' })\n creator?: User\n\n @RelationId((one: DashboardCardShare) => one.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed the row last.' })\n updater?: User\n\n @RelationId((one: DashboardCardShare) => one.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When it was shared.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When the row was changed last.' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When the share was withdrawn.' })\n deletedAt?: Date\n}\n\n@Entity('ai_dashboard_card_places')\n@Index('ix_ai_dashboard_card_place_0', (one: DashboardCardPlace) => [one.domain, one.user, one.card], { unique: true, where: '\"deleted_at\" IS NULL' })\n@ObjectType({ description: 'Where one person placed a card on their dashboard - its order and size.' })\nexport class DashboardCardPlace {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Place id.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain.' })\n domain?: Domain\n\n @RelationId((one: DashboardCardPlace) => one.domain)\n domainId?: string\n\n @ManyToOne(type => User)\n user?: User\n\n @RelationId((one: DashboardCardPlace) => one.user)\n userId?: string\n\n @ManyToOne(type => DashboardCard, { onDelete: 'CASCADE' })\n card?: DashboardCard\n\n @RelationId((one: DashboardCardPlace) => one.card)\n @Field({ description: 'The card placed.' })\n cardId?: string\n\n @Column('int')\n @Field(type => Int, { description: 'Its place in the grid, from the top left.' })\n order: number\n\n @Column('int')\n @Field(type => Int, { description: 'Columns it spans, 1 to 4.' })\n width: number\n\n @Column('int')\n @Field(type => Int, { description: 'Rows it spans, 1 to 2.' })\n height: number\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who created the row.' })\n creator?: User\n\n @RelationId((one: DashboardCardPlace) => one.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed the row last.' })\n updater?: User\n\n @RelationId((one: DashboardCardPlace) => one.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When it was placed.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When it was moved or sized last.' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When it was taken off the dashboard.' })\n deletedAt?: Date\n}\n"]}