boondmanager-mcp-server 2.15.2 → 2.17.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.
- package/LICENSE +1 -1
- package/NOTICE +16 -2
- package/README.md +60 -15
- package/dist/config/access-policy.d.ts.map +1 -1
- package/dist/config/access-policy.js +6 -18
- package/dist/config/access-policy.js.map +1 -1
- package/dist/config/dictionary-overrides.d.ts.map +1 -1
- package/dist/config/dictionary-overrides.js +2 -12
- package/dist/config/dictionary-overrides.js.map +1 -1
- package/dist/config/env.d.ts +63 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +116 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/profiles.d.ts +22 -8
- package/dist/config/profiles.d.ts.map +1 -1
- package/dist/config/profiles.js +48 -4
- package/dist/config/profiles.js.map +1 -1
- package/dist/constants.d.ts +13 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +25 -1
- package/dist/constants.js.map +1 -1
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +6 -1
- package/dist/icons.js.map +1 -1
- package/dist/index.js +33 -15
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +6 -6
- package/dist/instructions.js.map +1 -1
- package/dist/prompts/index.d.ts +19 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +495 -25
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/periods.d.ts +45 -0
- package/dist/prompts/periods.d.ts.map +1 -0
- package/dist/prompts/periods.js +154 -0
- package/dist/prompts/periods.js.map +1 -0
- package/dist/resources/index.d.ts +14 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +285 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/templates.d.ts +1 -1
- package/dist/resources/templates.d.ts.map +1 -1
- package/dist/resources/templates.js +2 -0
- package/dist/resources/templates.js.map +1 -1
- package/dist/schema-dialect.js.map +1 -1
- package/dist/schemas/filter-aliases.d.ts +1 -1
- package/dist/schemas/filter-aliases.d.ts.map +1 -1
- package/dist/schemas/filter-aliases.js +101 -2
- package/dist/schemas/filter-aliases.js.map +1 -1
- package/dist/schemas/index.d.ts +987 -161
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +853 -323
- package/dist/schemas/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -3
- package/dist/server.js.map +1 -1
- package/dist/services/boond-client.d.ts +29 -213
- package/dist/services/boond-client.d.ts.map +1 -1
- package/dist/services/boond-client.js +29 -1168
- package/dist/services/boond-client.js.map +1 -1
- package/dist/services/dictionary.d.ts +27 -3
- package/dist/services/dictionary.d.ts.map +1 -1
- package/dist/services/dictionary.js +60 -23
- package/dist/services/dictionary.js.map +1 -1
- package/dist/services/document-text.d.ts +32 -0
- package/dist/services/document-text.d.ts.map +1 -0
- package/dist/services/document-text.js +120 -0
- package/dist/services/document-text.js.map +1 -0
- package/dist/services/format/detail.d.ts +16 -0
- package/dist/services/format/detail.d.ts.map +1 -0
- package/dist/services/format/detail.js +36 -0
- package/dist/services/format/detail.js.map +1 -0
- package/dist/services/format/html.d.ts +19 -0
- package/dist/services/format/html.d.ts.map +1 -0
- package/dist/services/format/html.js +87 -0
- package/dist/services/format/html.js.map +1 -0
- package/dist/services/format/list.d.ts +3 -0
- package/dist/services/format/list.d.ts.map +1 -0
- package/dist/services/format/list.js +44 -0
- package/dist/services/format/list.js.map +1 -0
- package/dist/services/format/summary.d.ts +16 -0
- package/dist/services/format/summary.d.ts.map +1 -0
- package/dist/services/format/summary.js +172 -0
- package/dist/services/format/summary.js.map +1 -0
- package/dist/services/format/tab.d.ts +9 -0
- package/dist/services/format/tab.d.ts.map +1 -0
- package/dist/services/format/tab.js +32 -0
- package/dist/services/format/tab.js.map +1 -0
- package/dist/services/http/auth.d.ts +44 -0
- package/dist/services/http/auth.d.ts.map +1 -0
- package/dist/services/http/auth.js +146 -0
- package/dist/services/http/auth.js.map +1 -0
- package/dist/services/http/download.d.ts +60 -0
- package/dist/services/http/download.d.ts.map +1 -0
- package/dist/services/http/download.js +160 -0
- package/dist/services/http/download.js.map +1 -0
- package/dist/services/http/errors.d.ts +45 -0
- package/dist/services/http/errors.d.ts.map +1 -0
- package/dist/services/http/errors.js +188 -0
- package/dist/services/http/errors.js.map +1 -0
- package/dist/services/http/rate-limit.d.ts +40 -0
- package/dist/services/http/rate-limit.d.ts.map +1 -0
- package/dist/services/http/rate-limit.js +92 -0
- package/dist/services/http/rate-limit.js.map +1 -0
- package/dist/services/http/retry.d.ts +46 -0
- package/dist/services/http/retry.d.ts.map +1 -0
- package/dist/services/http/retry.js +101 -0
- package/dist/services/http/retry.js.map +1 -0
- package/dist/services/http/transport.d.ts +73 -0
- package/dist/services/http/transport.d.ts.map +1 -0
- package/dist/services/http/transport.js +272 -0
- package/dist/services/http/transport.js.map +1 -0
- package/dist/services/logger.d.ts +53 -2
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +82 -21
- package/dist/services/logger.js.map +1 -1
- package/dist/services/oauth.d.ts +12 -0
- package/dist/services/oauth.d.ts.map +1 -1
- package/dist/services/oauth.js +21 -8
- package/dist/services/oauth.js.map +1 -1
- package/dist/services/rate-limiter.d.ts +9 -2
- package/dist/services/rate-limiter.d.ts.map +1 -1
- package/dist/services/rate-limiter.js +18 -6
- package/dist/services/rate-limiter.js.map +1 -1
- package/dist/services/request-context.d.ts +47 -0
- package/dist/services/request-context.d.ts.map +1 -0
- package/dist/services/request-context.js +112 -0
- package/dist/services/request-context.js.map +1 -0
- package/dist/services/search.d.ts +26 -0
- package/dist/services/search.d.ts.map +1 -0
- package/dist/services/search.js +98 -0
- package/dist/services/search.js.map +1 -0
- package/dist/services/update-checker.d.ts.map +1 -1
- package/dist/services/update-checker.js +15 -8
- package/dist/services/update-checker.js.map +1 -1
- package/dist/tools/absences.d.ts +9 -0
- package/dist/tools/absences.d.ts.map +1 -1
- package/dist/tools/absences.js +65 -20
- package/dist/tools/absences.js.map +1 -1
- package/dist/tools/actions.d.ts.map +1 -1
- package/dist/tools/actions.js +11 -27
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/advantages.d.ts +2 -0
- package/dist/tools/advantages.d.ts.map +1 -1
- package/dist/tools/advantages.js +66 -13
- package/dist/tools/advantages.js.map +1 -1
- package/dist/tools/alerts.d.ts +18 -0
- package/dist/tools/alerts.d.ts.map +1 -0
- package/dist/tools/alerts.js +82 -0
- package/dist/tools/alerts.js.map +1 -0
- package/dist/tools/application.d.ts +2 -1
- package/dist/tools/application.d.ts.map +1 -1
- package/dist/tools/application.js +9 -3
- package/dist/tools/application.js.map +1 -1
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +3 -7
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/contracts.d.ts +22 -0
- package/dist/tools/contracts.d.ts.map +1 -1
- package/dist/tools/contracts.js +185 -52
- package/dist/tools/contracts.js.map +1 -1
- package/dist/tools/crud-factory.d.ts +33 -2
- package/dist/tools/crud-factory.d.ts.map +1 -1
- package/dist/tools/crud-factory.js +42 -15
- package/dist/tools/crud-factory.js.map +1 -1
- package/dist/tools/deliveries.d.ts +3 -0
- package/dist/tools/deliveries.d.ts.map +1 -1
- package/dist/tools/deliveries.js +50 -94
- package/dist/tools/deliveries.js.map +1 -1
- package/dist/tools/description-builders.d.ts +0 -1
- package/dist/tools/description-builders.d.ts.map +1 -1
- package/dist/tools/description-builders.js +46 -3
- package/dist/tools/description-builders.js.map +1 -1
- package/dist/tools/documents.d.ts.map +1 -1
- package/dist/tools/documents.js +73 -21
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/expenses.d.ts.map +1 -1
- package/dist/tools/expenses.js +2 -11
- package/dist/tools/expenses.js.map +1 -1
- package/dist/tools/find.d.ts +61 -0
- package/dist/tools/find.d.ts.map +1 -0
- package/dist/tools/find.js +221 -0
- package/dist/tools/find.js.map +1 -0
- package/dist/tools/flags.d.ts +5 -0
- package/dist/tools/flags.d.ts.map +1 -1
- package/dist/tools/flags.js +116 -1
- package/dist/tools/flags.js.map +1 -1
- package/dist/tools/forms.d.ts +5 -0
- package/dist/tools/forms.d.ts.map +1 -0
- package/dist/tools/forms.js +64 -0
- package/dist/tools/forms.js.map +1 -0
- package/dist/tools/groupments.d.ts +5 -0
- package/dist/tools/groupments.d.ts.map +1 -0
- package/dist/tools/groupments.js +68 -0
- package/dist/tools/groupments.js.map +1 -0
- package/dist/tools/inactivities.d.ts +5 -0
- package/dist/tools/inactivities.d.ts.map +1 -0
- package/dist/tools/inactivities.js +59 -0
- package/dist/tools/inactivities.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/invoices.d.ts.map +1 -1
- package/dist/tools/invoices.js +27 -2
- package/dist/tools/invoices.js.map +1 -1
- package/dist/tools/linked-entity-filters.d.ts +48 -0
- package/dist/tools/linked-entity-filters.d.ts.map +1 -0
- package/dist/tools/linked-entity-filters.js +64 -0
- package/dist/tools/linked-entity-filters.js.map +1 -0
- package/dist/tools/notifications.d.ts.map +1 -1
- package/dist/tools/notifications.js +0 -5
- package/dist/tools/notifications.js.map +1 -1
- package/dist/tools/orders.d.ts.map +1 -1
- package/dist/tools/orders.js +33 -4
- package/dist/tools/orders.js.map +1 -1
- package/dist/tools/parameter-disclosure.js.map +1 -1
- package/dist/tools/payments.d.ts +3 -0
- package/dist/tools/payments.d.ts.map +1 -1
- package/dist/tools/payments.js +43 -109
- package/dist/tools/payments.js.map +1 -1
- package/dist/tools/positionings.d.ts.map +1 -1
- package/dist/tools/positionings.js +9 -39
- package/dist/tools/positionings.js.map +1 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +5 -12
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/provider-invoices.d.ts +2 -0
- package/dist/tools/provider-invoices.d.ts.map +1 -1
- package/dist/tools/provider-invoices.js +30 -111
- package/dist/tools/provider-invoices.js.map +1 -1
- package/dist/tools/purchases.d.ts +2 -0
- package/dist/tools/purchases.d.ts.map +1 -1
- package/dist/tools/purchases.js +50 -104
- package/dist/tools/purchases.js.map +1 -1
- package/dist/tools/registration-decorators.d.ts +28 -0
- package/dist/tools/registration-decorators.d.ts.map +1 -1
- package/dist/tools/registration-decorators.js +107 -0
- package/dist/tools/registration-decorators.js.map +1 -1
- package/dist/tools/resources.d.ts.map +1 -1
- package/dist/tools/resources.js +27 -5
- package/dist/tools/resources.js.map +1 -1
- package/dist/tools/rights.d.ts +101 -0
- package/dist/tools/rights.d.ts.map +1 -0
- package/dist/tools/rights.js +75 -0
- package/dist/tools/rights.js.map +1 -0
- package/dist/tools/tab-tools.js +3 -3
- package/dist/tools/tab-tools.js.map +1 -1
- package/dist/tools/timesheets.d.ts +29 -0
- package/dist/tools/timesheets.d.ts.map +1 -1
- package/dist/tools/timesheets.js +196 -126
- package/dist/tools/timesheets.js.map +1 -1
- package/dist/tools/todolists.d.ts +2 -0
- package/dist/tools/todolists.d.ts.map +1 -1
- package/dist/tools/todolists.js +64 -1
- package/dist/tools/todolists.js.map +1 -1
- package/dist/tools/validations.d.ts +9 -0
- package/dist/tools/validations.d.ts.map +1 -1
- package/dist/tools/validations.js +86 -9
- package/dist/tools/validations.js.map +1 -1
- package/dist/tools/workflows.js +1 -1
- package/dist/tools/workflows.js.map +1 -1
- package/dist/transports/http.d.ts +116 -0
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +422 -92
- package/dist/transports/http.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/manifest.json +7 -7
- package/package.json +14 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boond-client.js","sourceRoot":"","sources":["../../src/services/boond-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"boond-client.js","sourceRoot":"","sources":["../../src/services/boond-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,EAAoB,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvH,OAAO,EAEL,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,+BAA+B,EAE/B,qBAAqB,EAErB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { currentAuthIdentity } from "./oauth.js";
|
|
1
2
|
import type { JsonApiResponse } from "../types.js";
|
|
2
3
|
/**
|
|
3
4
|
* Cache du dictionnaire BoondManager.
|
|
@@ -16,6 +17,17 @@ import type { JsonApiResponse } from "../types.js";
|
|
|
16
17
|
* Concurrent fetches sont dédupliqués via une promesse partagée pour éviter
|
|
17
18
|
* de marteler l'API quand plusieurs ressources sont lues en parallèle au
|
|
18
19
|
* démarrage d'une session MCP.
|
|
20
|
+
*
|
|
21
|
+
* **Le cache est partitionné par identité d'authentification et par langue**
|
|
22
|
+
* (issue #226). Le dictionnaire n'est pas une table de référence globale : il
|
|
23
|
+
* porte les états, agences, pôles et types *personnalisés* d'un tenant
|
|
24
|
+
* BoondManager. En transport HTTP OAuth chaque requête arrive avec le token
|
|
25
|
+
* d'un utilisateur — potentiellement d'un autre tenant — et le transport ne
|
|
26
|
+
* vérifie que la *présence* du Bearer. Un cache unique par processus servait
|
|
27
|
+
* donc le dictionnaire du premier appelant à tous les suivants, sans appel
|
|
28
|
+
* Boond : une fuite inter-tenants. La clé est `sha256(token) + langue` ; en
|
|
29
|
+
* stdio (credentials env, une seule identité par processus) elle se réduit à
|
|
30
|
+
* `env + langue`, et le comportement mono-utilisateur est inchangé.
|
|
19
31
|
*/
|
|
20
32
|
export type DictionaryLanguage = "fr" | "en" | "es";
|
|
21
33
|
interface CacheEntry {
|
|
@@ -23,14 +35,25 @@ interface CacheEntry {
|
|
|
23
35
|
fetchedAt: number;
|
|
24
36
|
language: DictionaryLanguage;
|
|
25
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Upper bound on cached (identity, language) pairs. Each entry is a full
|
|
40
|
+
* dictionary payload (hundreds of KB), so the map is bounded; least recently
|
|
41
|
+
* used entries are evicted first. 50 is plenty for a gateway serving a
|
|
42
|
+
* handful of tenants and keeps the worst case around a few tens of MB.
|
|
43
|
+
*/
|
|
44
|
+
export declare const MAX_DICTIONARY_CACHE_ENTRIES = 50;
|
|
45
|
+
/** Identity half of the cache key — see `currentAuthIdentity` in `oauth.ts`. */
|
|
46
|
+
export { currentAuthIdentity };
|
|
26
47
|
export interface GetDictionaryOptions {
|
|
27
48
|
language?: DictionaryLanguage;
|
|
28
49
|
/** Bypass the cache and re-fetch. */
|
|
29
50
|
force?: boolean;
|
|
30
51
|
}
|
|
31
52
|
/**
|
|
32
|
-
* Returns the full BoondManager dictionary payload, fetching once per TTL
|
|
33
|
-
* Concurrent calls
|
|
53
|
+
* Returns the full BoondManager dictionary payload, fetching once per TTL
|
|
54
|
+
* per (auth identity, language). Concurrent calls for the same key share
|
|
55
|
+
* the same in-flight request; calls for different keys never do — an `en`
|
|
56
|
+
* request must not be answered with the `fr` payload still loading.
|
|
34
57
|
*/
|
|
35
58
|
export declare function getDictionary(opts?: GetDictionaryOptions): Promise<CacheEntry>;
|
|
36
59
|
/**
|
|
@@ -46,7 +69,8 @@ export declare function getDictionary(opts?: GetDictionaryOptions): Promise<Cach
|
|
|
46
69
|
* Returns `undefined` if any segment is missing.
|
|
47
70
|
*/
|
|
48
71
|
export declare function resolveDictionaryPath(payload: JsonApiResponse, path: string): unknown;
|
|
72
|
+
/** Number of cached entries. Exposed for tests. */
|
|
73
|
+
export declare function dictionaryCacheSizeForTests(): number;
|
|
49
74
|
/** Reset the cache. Exposed for tests. */
|
|
50
75
|
export declare function resetDictionaryCacheForTests(): void;
|
|
51
|
-
export {};
|
|
52
76
|
//# sourceMappingURL=dictionary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/services/dictionary.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/services/dictionary.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,UAAU,UAAU;IAClB,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAID;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAM/C,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAoB/B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkCxF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAcrF;AAED,mDAAmD;AACnD,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,0CAA0C;AAC1C,wBAAgB,4BAA4B,IAAI,IAAI,CAGnD"}
|
|
@@ -1,39 +1,72 @@
|
|
|
1
1
|
import { apiRequest } from "./boond-client.js";
|
|
2
|
+
import { withoutRequestSignal } from "./request-context.js";
|
|
3
|
+
import { readPositiveInt } from "../config/env.js";
|
|
4
|
+
import { currentAuthIdentity } from "./oauth.js";
|
|
2
5
|
const DEFAULT_TTL_MS = 60 * 60 * 1000; // 1 hour
|
|
6
|
+
/**
|
|
7
|
+
* Upper bound on cached (identity, language) pairs. Each entry is a full
|
|
8
|
+
* dictionary payload (hundreds of KB), so the map is bounded; least recently
|
|
9
|
+
* used entries are evicted first. 50 is plenty for a gateway serving a
|
|
10
|
+
* handful of tenants and keeps the worst case around a few tens of MB.
|
|
11
|
+
*/
|
|
12
|
+
export const MAX_DICTIONARY_CACHE_ENTRIES = 50;
|
|
3
13
|
function resolveTtlMs() {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
14
|
+
return readPositiveInt("BOOND_DICTIONARY_TTL_MS", DEFAULT_TTL_MS);
|
|
15
|
+
}
|
|
16
|
+
/** Identity half of the cache key — see `currentAuthIdentity` in `oauth.ts`. */
|
|
17
|
+
export { currentAuthIdentity };
|
|
18
|
+
function cacheKey(language) {
|
|
19
|
+
return `${currentAuthIdentity()}|${language}`;
|
|
20
|
+
}
|
|
21
|
+
/** Insertion-ordered map used as an LRU: a hit re-inserts, an insert past the cap evicts the oldest. */
|
|
22
|
+
const cache = new Map();
|
|
23
|
+
const inFlight = new Map();
|
|
24
|
+
function touch(key, entry) {
|
|
25
|
+
cache.delete(key);
|
|
26
|
+
cache.set(key, entry);
|
|
27
|
+
while (cache.size > MAX_DICTIONARY_CACHE_ENTRIES) {
|
|
28
|
+
const oldest = cache.keys().next().value;
|
|
29
|
+
if (oldest === undefined)
|
|
30
|
+
break;
|
|
31
|
+
cache.delete(oldest);
|
|
32
|
+
}
|
|
9
33
|
}
|
|
10
|
-
let cache = null;
|
|
11
|
-
let inFlight = null;
|
|
12
34
|
/**
|
|
13
|
-
* Returns the full BoondManager dictionary payload, fetching once per TTL
|
|
14
|
-
* Concurrent calls
|
|
35
|
+
* Returns the full BoondManager dictionary payload, fetching once per TTL
|
|
36
|
+
* per (auth identity, language). Concurrent calls for the same key share
|
|
37
|
+
* the same in-flight request; calls for different keys never do — an `en`
|
|
38
|
+
* request must not be answered with the `fr` payload still loading.
|
|
15
39
|
*/
|
|
16
40
|
export async function getDictionary(opts = {}) {
|
|
17
41
|
const language = opts.language ?? "fr";
|
|
42
|
+
const key = cacheKey(language);
|
|
18
43
|
const now = Date.now();
|
|
19
|
-
if (!opts.force
|
|
20
|
-
|
|
44
|
+
if (!opts.force) {
|
|
45
|
+
const hit = cache.get(key);
|
|
46
|
+
if (hit !== undefined && now - hit.fetchedAt < resolveTtlMs()) {
|
|
47
|
+
touch(key, hit);
|
|
48
|
+
return hit;
|
|
49
|
+
}
|
|
21
50
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
51
|
+
const pending = inFlight.get(key);
|
|
52
|
+
if (pending)
|
|
53
|
+
return pending;
|
|
54
|
+
const request = (async () => {
|
|
25
55
|
try {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
56
|
+
// Shared between every caller awaiting this key (#226): the load runs
|
|
57
|
+
// outside the current request's cancellation scope, or one client
|
|
58
|
+
// cancelling would reject the dictionary for all the others (#231).
|
|
59
|
+
const payload = await withoutRequestSignal(() => apiRequest("/application/dictionary", "GET", undefined, { language }));
|
|
60
|
+
const entry = { payload, fetchedAt: Date.now(), language };
|
|
61
|
+
touch(key, entry);
|
|
62
|
+
return entry;
|
|
31
63
|
}
|
|
32
64
|
finally {
|
|
33
|
-
inFlight
|
|
65
|
+
inFlight.delete(key);
|
|
34
66
|
}
|
|
35
67
|
})();
|
|
36
|
-
|
|
68
|
+
inFlight.set(key, request);
|
|
69
|
+
return request;
|
|
37
70
|
}
|
|
38
71
|
/**
|
|
39
72
|
* Resolves a dotted path inside the dictionary `data` object.
|
|
@@ -65,9 +98,13 @@ export function resolveDictionaryPath(payload, path) {
|
|
|
65
98
|
}
|
|
66
99
|
return node;
|
|
67
100
|
}
|
|
101
|
+
/** Number of cached entries. Exposed for tests. */
|
|
102
|
+
export function dictionaryCacheSizeForTests() {
|
|
103
|
+
return cache.size;
|
|
104
|
+
}
|
|
68
105
|
/** Reset the cache. Exposed for tests. */
|
|
69
106
|
export function resetDictionaryCacheForTests() {
|
|
70
|
-
cache
|
|
71
|
-
inFlight
|
|
107
|
+
cache.clear();
|
|
108
|
+
inFlight.clear();
|
|
72
109
|
}
|
|
73
110
|
//# sourceMappingURL=dictionary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../src/services/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../src/services/dictionary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text extraction for the two document formats a CV or a receipt comes in
|
|
3
|
+
* (issue #263). A 5 MiB PDF costs ~6.6 MB of base64 in the model's context for
|
|
4
|
+
* a content that fits in a few KB of text; extracting server-side is what
|
|
5
|
+
* makes reading resumes in batches affordable.
|
|
6
|
+
*
|
|
7
|
+
* - PDF: `unpdf` (a serverless build of pdf.js, no native binary, ~2 MB).
|
|
8
|
+
* - DOCX: the file is a zip whose `word/document.xml` holds the text; the zip
|
|
9
|
+
* is read here with `node:zlib` only (STORED and DEFLATE entries) — no
|
|
10
|
+
* dependency for a 60-line format.
|
|
11
|
+
*/
|
|
12
|
+
export interface ExtractedText {
|
|
13
|
+
text: string;
|
|
14
|
+
/** Page count for PDFs; absent for DOCX. */
|
|
15
|
+
pages?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare const IMAGE_MIMES: Set<string>;
|
|
18
|
+
export declare function isImageMime(mime: string): boolean;
|
|
19
|
+
export declare function isPdfMime(mime: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Is this a DOCX? BoondManager serves `.docx` resumes as `application/msword`
|
|
22
|
+
* (observed live on 2026-09-26, issue #311) — the legacy Word mime — so the
|
|
23
|
+
* mime alone misses them. Accept the real mime, a `.docx` extension on any
|
|
24
|
+
* generic mime, or the zip signature (`PK\x03\x04`) on a Word / octet-stream
|
|
25
|
+
* mime: an OLE `.doc` never starts with it, a `.docx` always does.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isDocxMime(mime: string, filename?: string, data?: Buffer): boolean;
|
|
28
|
+
export declare function extractPdfText(data: Buffer): Promise<ExtractedText>;
|
|
29
|
+
export declare function extractDocxText(data: Buffer): ExtractedText;
|
|
30
|
+
/** The bytes of one entry of a zip archive, or undefined when the name is absent. */
|
|
31
|
+
export declare function readZipEntry(zip: Buffer, name: string): Buffer | undefined;
|
|
32
|
+
//# sourceMappingURL=document-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-text.d.ts","sourceRoot":"","sources":["../../src/services/document-text.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,aAAkE,CAAC;AAG3F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AACD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AACD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAOlF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKzE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAa3D;AAgCD,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAqC1E"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { inflateRawSync } from "node:zlib";
|
|
2
|
+
import { extractText } from "unpdf";
|
|
3
|
+
import { decodeHtmlEntities } from "./format/html.js";
|
|
4
|
+
export const IMAGE_MIMES = new Set(["image/png", "image/jpeg", "image/gif", "image/webp"]);
|
|
5
|
+
const DOCX_MIME = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
6
|
+
export function isImageMime(mime) {
|
|
7
|
+
return IMAGE_MIMES.has(mime.toLowerCase());
|
|
8
|
+
}
|
|
9
|
+
export function isPdfMime(mime) {
|
|
10
|
+
return mime.toLowerCase() === "application/pdf";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Is this a DOCX? BoondManager serves `.docx` resumes as `application/msword`
|
|
14
|
+
* (observed live on 2026-09-26, issue #311) — the legacy Word mime — so the
|
|
15
|
+
* mime alone misses them. Accept the real mime, a `.docx` extension on any
|
|
16
|
+
* generic mime, or the zip signature (`PK\x03\x04`) on a Word / octet-stream
|
|
17
|
+
* mime: an OLE `.doc` never starts with it, a `.docx` always does.
|
|
18
|
+
*/
|
|
19
|
+
export function isDocxMime(mime, filename, data) {
|
|
20
|
+
const lower = mime.toLowerCase();
|
|
21
|
+
if (lower === DOCX_MIME)
|
|
22
|
+
return true;
|
|
23
|
+
const generic = lower === "application/octet-stream" || lower === "application/msword";
|
|
24
|
+
if (!generic)
|
|
25
|
+
return false;
|
|
26
|
+
if (/\.docx$/i.test(filename ?? ""))
|
|
27
|
+
return true;
|
|
28
|
+
return data !== undefined && data.length >= 4 && data.readUInt32LE(0) === 0x04034b50;
|
|
29
|
+
}
|
|
30
|
+
export async function extractPdfText(data) {
|
|
31
|
+
const result = await extractText(new Uint8Array(data.buffer, data.byteOffset, data.byteLength), { mergePages: true });
|
|
32
|
+
const text = normaliseWhitespace(result.text);
|
|
33
|
+
if (text.length === 0)
|
|
34
|
+
throw new Error("PDF sans texte extractible (scan ou document chiffré)");
|
|
35
|
+
return { text, pages: result.totalPages };
|
|
36
|
+
}
|
|
37
|
+
export function extractDocxText(data) {
|
|
38
|
+
const xml = readZipEntry(data, "word/document.xml");
|
|
39
|
+
if (xml === undefined)
|
|
40
|
+
throw new Error("DOCX sans word/document.xml");
|
|
41
|
+
const text = stripTags(xml
|
|
42
|
+
.toString("utf8")
|
|
43
|
+
.replace(/<w:tab\/>/g, "\t")
|
|
44
|
+
.replace(/<w:br\/>|<w:cr\/>/g, "\n")
|
|
45
|
+
.replace(/<\/w:p>/g, "\n"));
|
|
46
|
+
const normalised = normaliseWhitespace(decodeHtmlEntities(text));
|
|
47
|
+
if (normalised.length === 0)
|
|
48
|
+
throw new Error("DOCX sans texte");
|
|
49
|
+
return { text: normalised };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Drop every XML tag. Applied until a fixed point: a single pass leaves a tag
|
|
53
|
+
* behind when its removal creates a new one (`<<w:t>w:t>`), which is the
|
|
54
|
+
* incomplete-sanitisation pattern CodeQL flags. The output is model-facing
|
|
55
|
+
* plain text, never rendered as HTML, but the loop costs nothing.
|
|
56
|
+
*/
|
|
57
|
+
function stripTags(text) {
|
|
58
|
+
let previous;
|
|
59
|
+
let current = text;
|
|
60
|
+
do {
|
|
61
|
+
previous = current;
|
|
62
|
+
current = current.replace(/<[^>]*>/g, "");
|
|
63
|
+
} while (current !== previous);
|
|
64
|
+
return current;
|
|
65
|
+
}
|
|
66
|
+
function normaliseWhitespace(text) {
|
|
67
|
+
return text
|
|
68
|
+
.replace(/\r\n?/g, "\n")
|
|
69
|
+
.replace(/[ \t]+\n/g, "\n")
|
|
70
|
+
.replace(/\n{3,}/g, "\n\n")
|
|
71
|
+
.trim();
|
|
72
|
+
}
|
|
73
|
+
// ---- Minimal zip reader (central directory → local header → entry data) ----
|
|
74
|
+
const EOCD_SIGNATURE = 0x06054b50;
|
|
75
|
+
const CENTRAL_SIGNATURE = 0x02014b50;
|
|
76
|
+
const LOCAL_SIGNATURE = 0x04034b50;
|
|
77
|
+
/** The bytes of one entry of a zip archive, or undefined when the name is absent. */
|
|
78
|
+
export function readZipEntry(zip, name) {
|
|
79
|
+
// The end-of-central-directory record is at the very end (minus an optional
|
|
80
|
+
// comment of up to 64 KiB): scan backwards for its signature.
|
|
81
|
+
let eocd = -1;
|
|
82
|
+
for (let i = zip.length - 22; i >= Math.max(0, zip.length - 22 - 65535); i--) {
|
|
83
|
+
if (zip.readUInt32LE(i) === EOCD_SIGNATURE) {
|
|
84
|
+
eocd = i;
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (eocd < 0)
|
|
89
|
+
throw new Error("archive zip invalide (pas de répertoire central)");
|
|
90
|
+
const entryCount = zip.readUInt16LE(eocd + 10);
|
|
91
|
+
let offset = zip.readUInt32LE(eocd + 16);
|
|
92
|
+
for (let i = 0; i < entryCount; i++) {
|
|
93
|
+
if (offset + 46 > zip.length || zip.readUInt32LE(offset) !== CENTRAL_SIGNATURE) {
|
|
94
|
+
throw new Error("archive zip invalide (entrée du répertoire central)");
|
|
95
|
+
}
|
|
96
|
+
const method = zip.readUInt16LE(offset + 10);
|
|
97
|
+
const compressedSize = zip.readUInt32LE(offset + 20);
|
|
98
|
+
const nameLength = zip.readUInt16LE(offset + 28);
|
|
99
|
+
const extraLength = zip.readUInt16LE(offset + 30);
|
|
100
|
+
const commentLength = zip.readUInt16LE(offset + 32);
|
|
101
|
+
const localOffset = zip.readUInt32LE(offset + 42);
|
|
102
|
+
const entryName = zip.subarray(offset + 46, offset + 46 + nameLength).toString("utf8");
|
|
103
|
+
offset += 46 + nameLength + extraLength + commentLength;
|
|
104
|
+
if (entryName !== name)
|
|
105
|
+
continue;
|
|
106
|
+
if (zip.readUInt32LE(localOffset) !== LOCAL_SIGNATURE)
|
|
107
|
+
throw new Error("archive zip invalide (en-tête local)");
|
|
108
|
+
const localNameLength = zip.readUInt16LE(localOffset + 26);
|
|
109
|
+
const localExtraLength = zip.readUInt16LE(localOffset + 28);
|
|
110
|
+
const start = localOffset + 30 + localNameLength + localExtraLength;
|
|
111
|
+
const raw = zip.subarray(start, start + compressedSize);
|
|
112
|
+
if (method === 0)
|
|
113
|
+
return Buffer.from(raw);
|
|
114
|
+
if (method === 8)
|
|
115
|
+
return inflateRawSync(raw);
|
|
116
|
+
throw new Error(`méthode de compression zip non gérée (${method})`);
|
|
117
|
+
}
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=document-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-text.js","sourceRoot":"","sources":["../../src/services/document-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JsonApiResource, JsonApiResponse } from "../../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* The canonical shape of a single entity as this server hands it to the model:
|
|
4
|
+
* the JSON:API resource minus the envelope noise (`links`, `meta`).
|
|
5
|
+
*
|
|
6
|
+
* Extracted from `formatDetailResponse` so the entity resource templates
|
|
7
|
+
* (`boond://candidate/{id}`) aggregate the *same* projection instead of
|
|
8
|
+
* defining a second, drifting idea of what an entity looks like. They cannot
|
|
9
|
+
* reuse `formatDetailResponse` itself: it renders one entity and truncates
|
|
10
|
+
* mid-string at `CHARACTER_LIMIT`, which on pretty-printed JSON yields an
|
|
11
|
+
* unparseable body — acceptable for a tool's text content, not for a resource
|
|
12
|
+
* whose whole point is to be read as JSON.
|
|
13
|
+
*/
|
|
14
|
+
export declare function projectEntity(entity: JsonApiResource): Pick<JsonApiResource, "id" | "type" | "attributes" | "relationships">;
|
|
15
|
+
export declare function formatDetailResponse(response: JsonApiResponse): string;
|
|
16
|
+
//# sourceMappingURL=detail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail.d.ts","sourceRoot":"","sources":["../../../src/services/format/detail.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,GACtB,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,eAAe,CAAC,CAOvE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAWtE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering of a single entity: the canonical projection (`projectEntity`) and
|
|
3
|
+
* its pretty-printed, `CHARACTER_LIMIT`-bounded text form.
|
|
4
|
+
*/
|
|
5
|
+
import { CHARACTER_LIMIT } from "../../constants.js";
|
|
6
|
+
/**
|
|
7
|
+
* The canonical shape of a single entity as this server hands it to the model:
|
|
8
|
+
* the JSON:API resource minus the envelope noise (`links`, `meta`).
|
|
9
|
+
*
|
|
10
|
+
* Extracted from `formatDetailResponse` so the entity resource templates
|
|
11
|
+
* (`boond://candidate/{id}`) aggregate the *same* projection instead of
|
|
12
|
+
* defining a second, drifting idea of what an entity looks like. They cannot
|
|
13
|
+
* reuse `formatDetailResponse` itself: it renders one entity and truncates
|
|
14
|
+
* mid-string at `CHARACTER_LIMIT`, which on pretty-printed JSON yields an
|
|
15
|
+
* unparseable body — acceptable for a tool's text content, not for a resource
|
|
16
|
+
* whose whole point is to be read as JSON.
|
|
17
|
+
*/
|
|
18
|
+
export function projectEntity(entity) {
|
|
19
|
+
return {
|
|
20
|
+
id: entity.id,
|
|
21
|
+
type: entity.type,
|
|
22
|
+
attributes: entity.attributes,
|
|
23
|
+
...(entity.relationships !== undefined ? { relationships: entity.relationships } : {}),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function formatDetailResponse(response) {
|
|
27
|
+
const entity = Array.isArray(response.data) ? response.data[0] : response.data;
|
|
28
|
+
if (!entity)
|
|
29
|
+
return "Entité non trouvée.";
|
|
30
|
+
const result = JSON.stringify(projectEntity(entity), null, 2);
|
|
31
|
+
if (result.length > CHARACTER_LIMIT) {
|
|
32
|
+
return result.substring(0, CHARACTER_LIMIT) + "\n\n[Résultat tronqué...]";
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=detail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail.js","sourceRoot":"","sources":["../../../src/services/format/detail.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAuB;IAEvB,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAyB;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/E,IAAI,CAAC,MAAM;QAAE,OAAO,qBAAqB,CAAC;IAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9D,IAAI,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,2BAA2B,CAAC;IAC5E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering of BoondManager's HTML note fields as a short plain-text excerpt.
|
|
3
|
+
* Each invariant here has a regression test (`format/html.test.ts`).
|
|
4
|
+
*/
|
|
5
|
+
/** Max length (in code points) of the `text` excerpt used to identify an action. */
|
|
6
|
+
export declare const MAX_TEXT_EXCERPT = 80;
|
|
7
|
+
/** Decodes numeric and common named entities so the excerpt reads as text, not as markup. */
|
|
8
|
+
export declare function decodeHtmlEntities(input: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Renders BoondManager's HTML note fields (`/actions`.text is a `<div>…</div>`)
|
|
11
|
+
* as a short single-line excerpt. Only strings are excerpted — `text: null` and
|
|
12
|
+
* nested objects are skipped by the caller rather than printed as `null` /
|
|
13
|
+
* `[object Object]`.
|
|
14
|
+
*
|
|
15
|
+
* Truncation runs on code points (`Array.from`), never on UTF-16 code units, so
|
|
16
|
+
* an emoji sitting on the boundary can't be cut into an unpaired surrogate.
|
|
17
|
+
*/
|
|
18
|
+
export declare function textExcerpt(raw: string): string | undefined;
|
|
19
|
+
//# sourceMappingURL=html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../src/services/format/html.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAiDnC,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAaxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO3D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering of BoondManager's HTML note fields as a short plain-text excerpt.
|
|
3
|
+
* Each invariant here has a regression test (`format/html.test.ts`).
|
|
4
|
+
*/
|
|
5
|
+
/** Max length (in code points) of the `text` excerpt used to identify an action. */
|
|
6
|
+
export const MAX_TEXT_EXCERPT = 80;
|
|
7
|
+
/**
|
|
8
|
+
* HTML comments, then element tags. The tag pattern requires a tag name right
|
|
9
|
+
* after the `<` (or `</`), so free text such as
|
|
10
|
+
* `Relancer si < 3 jours > sinon cloturer` survives intact — a naive
|
|
11
|
+
* `/<[^>]*>/` swallowed everything between the two operators. Quoted attribute
|
|
12
|
+
* values are matched explicitly so a `>` inside one (`<a href="a>b">`) doesn't
|
|
13
|
+
* end the tag early and leak `b">` into the excerpt. The alternatives are
|
|
14
|
+
* mutually exclusive on their first character, so there is no backtracking
|
|
15
|
+
* blow-up on unterminated input.
|
|
16
|
+
*/
|
|
17
|
+
const HTML_COMMENT_RE = /<!--[\s\S]*?-->/g;
|
|
18
|
+
const HTML_TAG_RE = /<\/?[a-zA-Z][a-zA-Z0-9:._-]*(?:\s+(?:"[^"]*"|'[^']*'|[^"'<>])*)?\/?>/g;
|
|
19
|
+
/** Entities actually seen in BoondManager notes (WYSIWYG output + French text). */
|
|
20
|
+
const NAMED_ENTITIES = {
|
|
21
|
+
amp: "&",
|
|
22
|
+
lt: "<",
|
|
23
|
+
gt: ">",
|
|
24
|
+
quot: '"',
|
|
25
|
+
apos: "'",
|
|
26
|
+
nbsp: " ",
|
|
27
|
+
hellip: "…",
|
|
28
|
+
agrave: "à",
|
|
29
|
+
acirc: "â",
|
|
30
|
+
ccedil: "ç",
|
|
31
|
+
eacute: "é",
|
|
32
|
+
egrave: "è",
|
|
33
|
+
ecirc: "ê",
|
|
34
|
+
euml: "ë",
|
|
35
|
+
icirc: "î",
|
|
36
|
+
iuml: "ï",
|
|
37
|
+
ocirc: "ô",
|
|
38
|
+
ugrave: "ù",
|
|
39
|
+
ucirc: "û",
|
|
40
|
+
uuml: "ü",
|
|
41
|
+
laquo: "«",
|
|
42
|
+
raquo: "»",
|
|
43
|
+
rsquo: "’",
|
|
44
|
+
lsquo: "‘",
|
|
45
|
+
ldquo: "“",
|
|
46
|
+
rdquo: "”",
|
|
47
|
+
deg: "°",
|
|
48
|
+
euro: "€",
|
|
49
|
+
ndash: "–",
|
|
50
|
+
mdash: "—",
|
|
51
|
+
};
|
|
52
|
+
/** Decodes numeric and common named entities so the excerpt reads as text, not as markup. */
|
|
53
|
+
export function decodeHtmlEntities(input) {
|
|
54
|
+
return input.replace(/&(#[0-9]+|#[xX][0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/g, (match, body) => {
|
|
55
|
+
if (body.startsWith("#")) {
|
|
56
|
+
const hex = body[1] === "x" || body[1] === "X";
|
|
57
|
+
const code = Number.parseInt(hex ? body.slice(2) : body.slice(1), hex ? 16 : 10);
|
|
58
|
+
// Surrogate code points are rejected on purpose: decoding `�`
|
|
59
|
+
// would inject the very unpaired surrogate the excerpt guards against.
|
|
60
|
+
if (!Number.isInteger(code) || code <= 0 || code > 0x10ffff)
|
|
61
|
+
return match;
|
|
62
|
+
if (code >= 0xd800 && code <= 0xdfff)
|
|
63
|
+
return match;
|
|
64
|
+
return String.fromCodePoint(code);
|
|
65
|
+
}
|
|
66
|
+
return NAMED_ENTITIES[body.toLowerCase()] ?? match;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Renders BoondManager's HTML note fields (`/actions`.text is a `<div>…</div>`)
|
|
71
|
+
* as a short single-line excerpt. Only strings are excerpted — `text: null` and
|
|
72
|
+
* nested objects are skipped by the caller rather than printed as `null` /
|
|
73
|
+
* `[object Object]`.
|
|
74
|
+
*
|
|
75
|
+
* Truncation runs on code points (`Array.from`), never on UTF-16 code units, so
|
|
76
|
+
* an emoji sitting on the boundary can't be cut into an unpaired surrogate.
|
|
77
|
+
*/
|
|
78
|
+
export function textExcerpt(raw) {
|
|
79
|
+
const stripped = decodeHtmlEntities(raw.replace(HTML_COMMENT_RE, " ").replace(HTML_TAG_RE, " "))
|
|
80
|
+
.replace(/\s+/g, " ")
|
|
81
|
+
.trim();
|
|
82
|
+
if (stripped === "")
|
|
83
|
+
return undefined;
|
|
84
|
+
const chars = Array.from(stripped);
|
|
85
|
+
return chars.length > MAX_TEXT_EXCERPT ? `${chars.slice(0, MAX_TEXT_EXCERPT).join("")}…` : stripped;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/services/format/html.ts"],"names":[],"mappings":"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"}
|