@uxland/primary-shell 7.50.1 → 7.50.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.
@@ -1,6 +1,12 @@
1
1
  /**
2
2
  * Diccionari centralitzat d'events del broker.
3
3
  * Events agrupats per plugin/iniciativa per facilitar l'organització i escalabilitat.
4
+ *
5
+ * Els grups que hi ha aquí escrits són els que el shell publica o consumeix. Els
6
+ * contractes entre iniciatives, en què el shell no és part, es declaren a
7
+ * `@primaria/plugins-core` i s'hi escampen a sota: el shell només fa de canal de
8
+ * distribució, perquè és l'únic paquet que instal·len les iniciatives externes.
9
+ * Els que porten resposta no són aquí, sinó a `BROKER_REQUESTS`.
4
10
  */
5
11
  export declare const BROKER_EVENTS: {
6
12
  readonly activityHistory: {
@@ -25,5 +31,14 @@ export declare const BROKER_EVENTS: {
25
31
  readonly administrativeManagement: {
26
32
  readonly tabSelected: "administrative_management_tab_selected";
27
33
  };
34
+ readonly cipds: {
35
+ readonly filterHistoricRequested: "cipds_diagnostic_filter_historic_requested";
36
+ };
37
+ readonly clinicalCourse: {
38
+ readonly draftAppendRequested: "clinical_course_draft_append_requested";
39
+ };
40
+ readonly helpCenter: {
41
+ readonly helpRequested: "help_requested";
42
+ };
28
43
  };
29
44
  export type BrokerEvents = typeof BROKER_EVENTS;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Diccionari centralitzat de requests del broker: els missatges que porten
3
+ * resposta i es criden amb `send` / `registerRequest`.
4
+ *
5
+ * Separat de `BROKER_EVENTS` a propòsit. Un event (`publish`/`subscribe`) i una
6
+ * request (`send`/`registerRequest`) són mecanismes diferents, i barrejar-los
7
+ * en una constant que es diu "events" deixa qui l'autocompleta sense saber quin
8
+ * dels dos ha de cridar.
9
+ *
10
+ * Ara mateix només conté contractes entre iniciatives, declarats a
11
+ * `@primaria/plugins-core`. Si algun dia el shell exposa requests pròpies,
12
+ * s'escriuen aquí al costat, igual que a `BROKER_EVENTS`.
13
+ */
14
+ export declare const BROKER_REQUESTS: {
15
+ readonly cipds: {
16
+ readonly diagnosticsSelectorRequested: "request_diagnostics_selector";
17
+ readonly selectionRequested: "cipds_selection_request";
18
+ };
19
+ };
20
+ export type BrokerRequests = typeof BROKER_REQUESTS;
@@ -1,7 +1,11 @@
1
1
  import { HarmonixBroker } from '@uxland/harmonix';
2
2
  import { BrokerEvents } from './broker-events';
3
+ import { BrokerRequests } from './broker-requests';
3
4
  export interface PrimariaBroker extends HarmonixBroker {
5
+ /** Noms dels events: `publish` / `subscribe`. */
4
6
  events: BrokerEvents;
7
+ /** Noms de les requests: `send` / `registerRequest`. */
8
+ requests: BrokerRequests;
5
9
  /** Internal: removes every registration (shell teardown only). */
6
10
  _clear(): void;
7
11
  }
@@ -1,5 +1,6 @@
1
+ import { LAST_WORKED_DIAGNOSTICS_KEY } from '@primaria/plugins-core';
1
2
  import { PrimariaGlobalStateManager } from '../global-state/global-state';
2
- export declare const LAST_WORKED_DIAGNOSTICS_KEY = "lastWorkedDiagnostics";
3
+ export { LAST_WORKED_DIAGNOSTICS_KEY };
3
4
  export declare abstract class EcapEventManager {
4
5
  /**
5
6
  * Publish an Ecap event.
@@ -17,4 +18,3 @@ declare class EcapEventManagerImpl implements EcapEventManager {
17
18
  private raiseEcapEvent;
18
19
  }
19
20
  export declare const createEcapEventManager: (globalStateManager: PrimariaGlobalStateManager) => EcapEventManagerImpl;
20
- export {};
@@ -21,3 +21,5 @@ export { ExitShell } from './features/exit/request';
21
21
  export type { ExitShellPayload } from './features/exit/request';
22
22
  export type { IUserInfo } from './features/get-user-info/model';
23
23
  export type { IActivityHistoryItem, IHistoryDataImporterContext, IHistoryDataImporterRules, InjectAsyncHistoryItemsPayload, AddHistoryItemPayload, AddHistoryItemsPayload, ActivityHistoryFilterType, IActivityHistoryCustomFilterGroup, IActivityHistoryCustomFilter, } from '@primaria/plugins-core';
24
+ export { REQUEST_DIAGNOSTICS_SELECTOR, CIPDS_SELECTION_REQUEST, CIPDS_DIAGNOSTIC_FILTER_HISTORIC_REQUESTED, LAST_WORKED_DIAGNOSTICS_KEY, CLINICAL_COURSE_DRAFT_APPEND_REQUESTED, HELP_REQUESTED, } from '@primaria/plugins-core';
25
+ export type { Diagnostic, ConfigFilterDiagnosticParams, DiagnosticsUpdater, DiagnosticsSelectorPayload, CipdsSelectionRequestPayload, CipdsSelectionResponse, DiagnosticRelation, DiagnosticWithRelations, DiagnosticFilterHistoricPayload, ClinicalCourseDraftAppendRequestedPayload, HelpRequestedPayload, } from '@primaria/plugins-core';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxland/primary-shell",
3
- "version": "7.50.1",
3
+ "version": "7.50.3",
4
4
  "description": "Primaria Shell",
5
5
  "author": "UXLand <dev@uxland.es>",
6
6
  "homepage": "https://github.com/uxland/harmonix/tree/app#readme",
@@ -47,7 +47,7 @@
47
47
  "tslib": "^2.3.0",
48
48
  "uxl-quill": "^1.0.1",
49
49
  "vite": "^7.0.0",
50
- "@primaria/plugins-core": "1.0.27"
50
+ "@primaria/plugins-core": "1.0.30"
51
51
  },
52
52
  "scripts": {
53
53
  "serve": "vite",
@@ -1,8 +1,17 @@
1
+ import { PLUGIN_BROKER_EVENTS } from "@primaria/plugins-core";
2
+
1
3
  /**
2
4
  * Diccionari centralitzat d'events del broker.
3
5
  * Events agrupats per plugin/iniciativa per facilitar l'organització i escalabilitat.
6
+ *
7
+ * Els grups que hi ha aquí escrits són els que el shell publica o consumeix. Els
8
+ * contractes entre iniciatives, en què el shell no és part, es declaren a
9
+ * `@primaria/plugins-core` i s'hi escampen a sota: el shell només fa de canal de
10
+ * distribució, perquè és l'únic paquet que instal·len les iniciatives externes.
11
+ * Els que porten resposta no són aquí, sinó a `BROKER_REQUESTS`.
4
12
  */
5
13
  export const BROKER_EVENTS = {
14
+ ...PLUGIN_BROKER_EVENTS,
6
15
  activityHistory: {
7
16
  refreshDataRequested: "refresh_history_data_requested",
8
17
  errorLoadingData: "error_loading_activity_history_data",
@@ -0,0 +1,20 @@
1
+ import { PLUGIN_BROKER_REQUESTS } from "@primaria/plugins-core";
2
+
3
+ /**
4
+ * Diccionari centralitzat de requests del broker: els missatges que porten
5
+ * resposta i es criden amb `send` / `registerRequest`.
6
+ *
7
+ * Separat de `BROKER_EVENTS` a propòsit. Un event (`publish`/`subscribe`) i una
8
+ * request (`send`/`registerRequest`) són mecanismes diferents, i barrejar-los
9
+ * en una constant que es diu "events" deixa qui l'autocompleta sense saber quin
10
+ * dels dos ha de cridar.
11
+ *
12
+ * Ara mateix només conté contractes entre iniciatives, declarats a
13
+ * `@primaria/plugins-core`. Si algun dia el shell exposa requests pròpies,
14
+ * s'escriuen aquí al costat, igual que a `BROKER_EVENTS`.
15
+ */
16
+ export const BROKER_REQUESTS = {
17
+ ...PLUGIN_BROKER_REQUESTS,
18
+ } as const;
19
+
20
+ export type BrokerRequests = typeof BROKER_REQUESTS;
@@ -1,5 +1,6 @@
1
1
  import { IEvent, IEventClass, IRequest, IRequestClass } from "@uxland/harmonix";
2
2
  import { BROKER_EVENTS } from "./broker-events";
3
+ import { BROKER_REQUESTS } from "./broker-requests";
3
4
  import type { BrokerDisposableHandler, PrimariaBroker } from "./primaria-broker";
4
5
 
5
6
  /**
@@ -30,6 +31,7 @@ type Handler = (message: any) => unknown;
30
31
 
31
32
  class Broker implements PrimariaBroker {
32
33
  public readonly events = BROKER_EVENTS;
34
+ public readonly requests = BROKER_REQUESTS;
33
35
 
34
36
  /** One handler per request type (request/response). */
35
37
  private readonly requestHandlers = new Map<MessageKey, Handler>();
@@ -1,8 +1,12 @@
1
1
  import { HarmonixBroker } from "@uxland/harmonix";
2
2
  import { type BrokerEvents } from "./broker-events";
3
+ import { type BrokerRequests } from "./broker-requests";
3
4
 
4
5
  export interface PrimariaBroker extends HarmonixBroker {
6
+ /** Noms dels events: `publish` / `subscribe`. */
5
7
  events: BrokerEvents;
8
+ /** Noms de les requests: `send` / `registerRequest`. */
9
+ requests: BrokerRequests;
6
10
  /** Internal: removes every registration (shell teardown only). */
7
11
  _clear(): void;
8
12
  }
@@ -1,7 +1,11 @@
1
+ import { LAST_WORKED_DIAGNOSTICS_KEY } from "@primaria/plugins-core";
1
2
  import type { PrimariaGlobalStateManager } from "../global-state/global-state";
2
3
  import { IEcapEvent } from "./typings";
3
4
 
4
- export const LAST_WORKED_DIAGNOSTICS_KEY = "lastWorkedDiagnostics";
5
+ // La clau la declara `@primaria/plugins-core`: qui l'escriu és clinical-course i
6
+ // qui la llegeix és aquest mànager, així que no pot viure a cap dels dos costats.
7
+ // Es re-exporta perquè els imports que ja hi havia segueixin funcionant.
8
+ export { LAST_WORKED_DIAGNOSTICS_KEY };
5
9
 
6
10
  const EVENTS_WITH_DIAGNOSTICS = [
7
11
  "PROVES_ORDRES_CLINIQUES_CONSULTAR",
@@ -25,10 +25,10 @@ export class ExitShellHandler {
25
25
  if (!confirmed) return;
26
26
  }
27
27
 
28
- // Per si un plugin tarda molt en fer dispose, màxim deixarem 5 segons, per no interrompre el tancar infinitament
28
+ // Per si un plugin tarda molt en fer dispose, màxim deixarem 10 segons, per no interrompre el tancar infinitament
29
29
  await Promise.race([
30
30
  this.unmountViewsAndDisposePlugins(), // S'intenta executar un dispose normal
31
- this.timeout(10000), // Si passen 5s, es segueix amb l'execució
31
+ this.timeout(10000), // Si passen 10s, es segueix amb l'execució
32
32
  ]);
33
33
  await disposeShell();
34
34
  this.emitClose(evt);
package/src/index.ts CHANGED
@@ -63,3 +63,28 @@ export type {
63
63
  IActivityHistoryCustomFilterGroup,
64
64
  IActivityHistoryCustomFilter,
65
65
  } from "@primaria/plugins-core";
66
+ // Contractes de broker entre iniciatives. Es declaren a `@primaria/plugins-core`
67
+ // perquè el shell no hi és part, i es re-exporten aquí perquè és l'únic paquet
68
+ // que instal·len les iniciatives externes. Els noms també són a
69
+ // `api.broker.requests` i `api.broker.events`, agrupats per propietari.
70
+ export {
71
+ REQUEST_DIAGNOSTICS_SELECTOR,
72
+ CIPDS_SELECTION_REQUEST,
73
+ CIPDS_DIAGNOSTIC_FILTER_HISTORIC_REQUESTED,
74
+ LAST_WORKED_DIAGNOSTICS_KEY,
75
+ CLINICAL_COURSE_DRAFT_APPEND_REQUESTED,
76
+ HELP_REQUESTED,
77
+ } from "@primaria/plugins-core";
78
+ export type {
79
+ Diagnostic,
80
+ ConfigFilterDiagnosticParams,
81
+ DiagnosticsUpdater,
82
+ DiagnosticsSelectorPayload,
83
+ CipdsSelectionRequestPayload,
84
+ CipdsSelectionResponse,
85
+ DiagnosticRelation,
86
+ DiagnosticWithRelations,
87
+ DiagnosticFilterHistoricPayload,
88
+ ClinicalCourseDraftAppendRequestedPayload,
89
+ HelpRequestedPayload,
90
+ } from "@primaria/plugins-core";