@generazioneai/genquery 0.9.0 → 0.12.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,60 @@
1
+ /**
2
+ * EntityPolicy builder — DENY-based, derived from a Prisma DMMF datamodel + resource
3
+ * manifests. Centralizes the boilerplate every backend duplicated in
4
+ * `src/authz/genquery-policy.ts`.
5
+ *
6
+ * Model: PERMISSIVE by default — every scalar/enum is filterable/sortable/selectable
7
+ * and every relation is includable/filterableRelations, MINUS the secret fields and
8
+ * an optional per-model `deny`. maxPerPage is taken from the matching manifest's
9
+ * `autoquery.pagination.max`, else `defaultMaxPerPage`. Keyed by DMMF model name
10
+ * (PascalCase) so it maps 1:1 onto the Schema. Pass the result as `schema.policy`
11
+ * (or to {@link applyPolicy}).
12
+ */
13
+ import type { EntityPolicy } from "./schema";
14
+ /**
15
+ * Canonical credential/secret field names — NEVER filterable/sortable/selectable on
16
+ * ANY model. Single source of truth: a backend gets the full set automatically and
17
+ * can only ADD via `extraSecretFields` (no per-service drift / forgotten fields).
18
+ * NB: `hash` is intentionally NOT here (e.g. Media dedup queries by hash; the value
19
+ * is still kept out of responses by entity serialization / findOne select-stripping).
20
+ */
21
+ export declare const DEFAULT_SECRET_FIELDS: ReadonlySet<string>;
22
+ /** Minimal structural shape of a DMMF field (Prisma.dmmf.datamodel.models[].fields). */
23
+ type DMField = {
24
+ name: string;
25
+ kind: string;
26
+ };
27
+ /** Minimal structural shape of a DMMF model. */
28
+ type DMModel = {
29
+ name: string;
30
+ fields: readonly DMField[];
31
+ };
32
+ /** Structural manifest shape consumed here (a `ResourceManifest` satisfies it). */
33
+ export interface PolicyManifestLike {
34
+ prismaModel?: string;
35
+ autoquery?: {
36
+ pagination?: {
37
+ max?: number;
38
+ };
39
+ };
40
+ }
41
+ export interface BuildGenQueryPolicyOptions {
42
+ /** Prisma DMMF datamodel — `{ models: [...] }` or a bare models array. */
43
+ datamodel: {
44
+ models: readonly DMModel[];
45
+ } | readonly DMModel[];
46
+ /** Resource manifests (structural) → per-model maxPerPage from autoquery.pagination.max. */
47
+ manifests?: readonly PolicyManifestLike[];
48
+ /** Per-model extra deny beyond secrets: fields/relations not queryable. */
49
+ deny?: Record<string, {
50
+ fields?: readonly string[];
51
+ relations?: readonly string[];
52
+ }>;
53
+ /** Extra secret field names added to {@link DEFAULT_SECRET_FIELDS}. */
54
+ extraSecretFields?: Iterable<string>;
55
+ /** Fallback maxPerPage when a manifest declares none. Default 200. */
56
+ defaultMaxPerPage?: number;
57
+ }
58
+ export declare function buildGenQueryPolicy(opts: BuildGenQueryPolicyOptions): Record<string, EntityPolicy>;
59
+ export {};
60
+ //# sourceMappingURL=entity-policy-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-policy-builder.d.ts","sourceRoot":"","sources":["../src/entity-policy-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAWpD,CAAC;AAEH,wFAAwF;AACxF,KAAK,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9C,gDAAgD;AAChD,KAAK,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,CAAC;AAE5D,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,0BAA0B;IACzC,0EAA0E;IAC1E,SAAS,EAAE;QAAE,MAAM,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,GAAG,SAAS,OAAO,EAAE,CAAC;IAC/D,4FAA4F;IAC5F,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1C,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrF,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,0BAA0B,GAC/B,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAwC9B"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_SECRET_FIELDS = void 0;
4
+ exports.buildGenQueryPolicy = buildGenQueryPolicy;
5
+ /**
6
+ * Canonical credential/secret field names — NEVER filterable/sortable/selectable on
7
+ * ANY model. Single source of truth: a backend gets the full set automatically and
8
+ * can only ADD via `extraSecretFields` (no per-service drift / forgotten fields).
9
+ * NB: `hash` is intentionally NOT here (e.g. Media dedup queries by hash; the value
10
+ * is still kept out of responses by entity serialization / findOne select-stripping).
11
+ */
12
+ exports.DEFAULT_SECRET_FIELDS = new Set([
13
+ "password",
14
+ "totpSecret",
15
+ "mfaSecret",
16
+ "clientSecret",
17
+ "secret",
18
+ "tokenHash",
19
+ "refreshTokenHash",
20
+ "apiKeyHash",
21
+ "webauthnCredId",
22
+ "webauthnPubKey",
23
+ ]);
24
+ const pascal = (s) => (s ? s.charAt(0).toUpperCase() + s.slice(1) : s);
25
+ function buildGenQueryPolicy(opts) {
26
+ const src = opts.datamodel;
27
+ const models = (Array.isArray(src) ? src : src?.models) ?? [];
28
+ const secrets = new Set(exports.DEFAULT_SECRET_FIELDS);
29
+ for (const f of opts.extraSecretFields ?? [])
30
+ secrets.add(f);
31
+ const deny = opts.deny ?? {};
32
+ const fallbackMax = opts.defaultMaxPerPage ?? 200;
33
+ const maxByModel = {};
34
+ for (const m of opts.manifests ?? []) {
35
+ const max = m.autoquery?.pagination?.max;
36
+ const key = pascal(m.prismaModel ?? "");
37
+ if (key && typeof max === "number")
38
+ maxByModel[key] = max;
39
+ }
40
+ const policy = {};
41
+ for (const model of models) {
42
+ const d = deny[model.name] ?? {};
43
+ const denyFields = new Set([...secrets, ...(d.fields ?? [])]);
44
+ const denyRelations = new Set(d.relations ?? []);
45
+ const scalars = model.fields
46
+ .filter((f) => (f.kind === "scalar" || f.kind === "enum") && !denyFields.has(f.name))
47
+ .map((f) => f.name);
48
+ const relations = model.fields
49
+ .filter((f) => f.kind === "object" && !denyRelations.has(f.name))
50
+ .map((f) => f.name);
51
+ policy[model.name] = {
52
+ filterable: scalars,
53
+ sortable: scalars,
54
+ selectable: scalars,
55
+ includable: relations,
56
+ filterableRelations: relations,
57
+ maxPerPage: maxByModel[model.name] ?? fallbackMax,
58
+ };
59
+ }
60
+ return policy;
61
+ }
62
+ //# sourceMappingURL=entity-policy-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-policy-builder.js","sourceRoot":"","sources":["../src/entity-policy-builder.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,14 @@ export interface FederatedModelShape {
34
34
  relations: readonly string[];
35
35
  /** Scalar/enum field names (FK candidates live here). */
36
36
  scalars: readonly string[];
37
+ /**
38
+ * Cross-service "soft-FK" includes declared CO-LOCATED with the model (resource
39
+ * manifest), key → target model. Resolves semantic aliases whose key name does NOT
40
+ * match the model (es. `customer` → 'Juridical') — cases the `<key>Id`+`UpperFirst(key)`
41
+ * convention can't infer. Harvested into the index from the manifests; takes precedence
42
+ * over the global {@link AliasMap} but yields to a call-level `override`. fk default `<key>Id`.
43
+ */
44
+ links?: Readonly<Record<string, FederationAlias>>;
37
45
  }
38
46
  export interface FederatedServiceShape {
39
47
  /** Owning service name — e.g. 'skillID'. */
@@ -85,20 +93,43 @@ export declare class FederationPlanError extends Error {
85
93
  * JuridicalIndividual → juridicalIndividuals · City → cities · Address → addresses
86
94
  */
87
95
  export declare function pluralizeCamel(model: string): string;
96
+ /** Target del federated include per un alias semantico (key ≠ nome model). */
97
+ export type FederationAlias = string | {
98
+ model: string;
99
+ fk?: string;
100
+ };
101
+ /**
102
+ * Alias map GLOBALE key → model target. Dichiarata UNA volta (gateway), risolve
103
+ * automaticamente le chiavi semantiche il cui nome non combacia col model:
104
+ * { customer: 'Juridical', submitter: 'JuridicalIndividual' } (fk default '<key>Id')
105
+ * { owner: { model: 'JuridicalIndividual', fk: 'ownerJiId' } }
106
+ */
107
+ export type AliasMap = Record<string, FederationAlias>;
108
+ /**
109
+ * Elemento di `alwaysInclude`: una chiave (string) oppure una chiave con shape
110
+ * annidata da inoltrare al target — es. `{ key: 'juridicalIndividual',
111
+ * include: { individual: true } }` per ripristinare un nested che i vecchi
112
+ * populate settavano sempre.
113
+ */
114
+ export type AlwaysIncludeItem = string | {
115
+ key: string;
116
+ include?: Record<string, unknown>;
117
+ select?: Record<string, unknown>;
118
+ };
88
119
  /**
89
120
  * Split a client include tree into the locally-resolvable part and the remote
90
121
  * (federated) plans, using convention-driven discovery over the index.
91
122
  *
92
- * - A key matching a real local relation stays local (engine resolves it).
93
- * - A key with a matching local scalar `<key>Id` and a model `UpperFirst(key)`
94
- * known to the index becomes a remote plan. Owner resolution: the cmd's own
95
- * service wins if it owns the model (soft-FK within one service), otherwise
96
- * the single foreign owner; multiple foreign owners require an override.
97
- * - Anything else stays local untouched: the local engine emits its own
98
- * precise validation error (federation must not swallow it).
123
+ * Risoluzione per chiave (in ordine): relazione locale reale override esplicito
124
+ * link del manifest (`local.links`, co-locato col model) aliasMap globale
125
+ * convenzione (`<key>Id` scalare + model `UpperFirst(key)`).
126
+ * Owner del model target: il servizio del cmd se lo possiede (soft-FK same-service),
127
+ * altrimenti l'unico owner esterno; più owner serve override/alias. Chiavi non
128
+ * federabili restano nel localInclude il motore locale emette il suo errore
129
+ * standard (la federazione NON lo inghiotte).
99
130
  *
100
- * `alwaysInclude` lists federated keys to resolve even when the client did not
101
- * ask for them (back-compat with gateways that always enrich).
131
+ * `alwaysInclude` = chiavi federate da risolvere anche se il client non le chiede
132
+ * (retro-compat con i gateway che arricchivano sempre); supporta shape annidata.
102
133
  */
103
134
  export declare function planFederatedIncludes(opts: {
104
135
  index: FederationIndex;
@@ -107,8 +138,10 @@ export declare function planFederatedIncludes(opts: {
107
138
  /** Local DMMF PascalCase model returned by the cmd. */
108
139
  model: string;
109
140
  include?: Record<string, unknown>;
110
- alwaysInclude?: readonly string[];
111
- /** Per-key explicit targets for ambiguous/unconventional cases. */
141
+ alwaysInclude?: readonly AlwaysIncludeItem[];
142
+ /** Alias semantici globali (key model target). */
143
+ aliasMap?: AliasMap;
144
+ /** Per-key explicit targets for ambiguous/unconventional cases (vince su aliasMap). */
112
145
  overrides?: Record<string, {
113
146
  service: string;
114
147
  model?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
@@ -87,19 +87,19 @@ function pluralizeCamel(model) {
87
87
  * Split a client include tree into the locally-resolvable part and the remote
88
88
  * (federated) plans, using convention-driven discovery over the index.
89
89
  *
90
- * - A key matching a real local relation stays local (engine resolves it).
91
- * - A key with a matching local scalar `<key>Id` and a model `UpperFirst(key)`
92
- * known to the index becomes a remote plan. Owner resolution: the cmd's own
93
- * service wins if it owns the model (soft-FK within one service), otherwise
94
- * the single foreign owner; multiple foreign owners require an override.
95
- * - Anything else stays local untouched: the local engine emits its own
96
- * precise validation error (federation must not swallow it).
90
+ * Risoluzione per chiave (in ordine): relazione locale reale override esplicito
91
+ * link del manifest (`local.links`, co-locato col model) aliasMap globale
92
+ * convenzione (`<key>Id` scalare + model `UpperFirst(key)`).
93
+ * Owner del model target: il servizio del cmd se lo possiede (soft-FK same-service),
94
+ * altrimenti l'unico owner esterno; più owner serve override/alias. Chiavi non
95
+ * federabili restano nel localInclude il motore locale emette il suo errore
96
+ * standard (la federazione NON lo inghiotte).
97
97
  *
98
- * `alwaysInclude` lists federated keys to resolve even when the client did not
99
- * ask for them (back-compat with gateways that always enrich).
98
+ * `alwaysInclude` = chiavi federate da risolvere anche se il client non le chiede
99
+ * (retro-compat con i gateway che arricchivano sempre); supporta shape annidata.
100
100
  */
101
101
  function planFederatedIncludes(opts) {
102
- const { index, service, model, include, alwaysInclude, overrides } = opts;
102
+ const { index, service, model, include, alwaysInclude, aliasMap, overrides } = opts;
103
103
  const local = index.modelOf(service, model);
104
104
  if (!local) {
105
105
  throw new FederationPlanError(`Federation: model '${model}' is not in the datamodel of service '${service}' — check the federation configuration`, model);
@@ -107,7 +107,13 @@ function planFederatedIncludes(opts) {
107
107
  const localInclude = {};
108
108
  const remote = [];
109
109
  const planned = new Set();
110
- const planKey = (key, value, demanded) => {
110
+ const norm = (a) => a == null ? undefined : typeof a === "string" ? { model: a } : a;
111
+ const aliasOf = (key) => norm(aliasMap?.[key]);
112
+ // Manifest-declared link (co-located with the model) — più specifico dell'aliasMap globale.
113
+ const linkOf = (key) => norm(local.links?.[key]);
114
+ // explicitNested: shape annidata forzata (da alwaysInclude object) che ha
115
+ // precedenza sul nested ricavato dal value del client.
116
+ const planKey = (key, value, demanded, explicitNested) => {
111
117
  if (planned.has(key))
112
118
  return;
113
119
  planned.add(key);
@@ -116,10 +122,12 @@ function planFederatedIncludes(opts) {
116
122
  localInclude[key] = value;
117
123
  return;
118
124
  }
119
- // 2) Convention: scalar FK `<key>Id` (overridable) + known model.
125
+ // 2) Override esplicito > link del manifest (per-model) > aliasMap globale > convenzione.
120
126
  const override = overrides?.[key];
121
- const fk = override?.fk ?? `${key}Id`;
122
- const targetModel = override?.model ?? upperFirst(key);
127
+ const link = linkOf(key);
128
+ const alias = aliasOf(key);
129
+ const fk = override?.fk ?? link?.fk ?? alias?.fk ?? `${key}Id`;
130
+ const targetModel = override?.model ?? link?.model ?? alias?.model ?? upperFirst(key);
123
131
  if (local.scalars.includes(fk)) {
124
132
  let targetService = override?.service;
125
133
  if (!targetService) {
@@ -132,17 +140,21 @@ function planFederatedIncludes(opts) {
132
140
  }
133
141
  else if (owners.length > 1) {
134
142
  throw new FederationPlanError(`Federation: include '${key}' on ${service}.${model} is ambiguous — model '${targetModel}' is owned by ` +
135
- `[${owners.map((o) => o.service).join(", ")}]. Add an override for '${key}'.`, key);
143
+ `[${owners.map((o) => o.service).join(", ")}]. Add an override/alias for '${key}'.`, key);
136
144
  }
137
145
  }
138
146
  if (targetService) {
139
- const nestedSrc = value && typeof value === "object" ? value : undefined;
140
- const nested = nestedSrc && (nestedSrc.include || nestedSrc.select)
141
- ? {
142
- include: nestedSrc.include,
143
- select: nestedSrc.select,
144
- }
145
- : undefined;
147
+ let nested = explicitNested;
148
+ if (!nested) {
149
+ const src = value && typeof value === "object" ? value : undefined;
150
+ nested =
151
+ src && (src.include || src.select)
152
+ ? {
153
+ include: src.include,
154
+ select: src.select,
155
+ }
156
+ : undefined;
157
+ }
146
158
  remote.push({ key, fk, targetService, targetModel, nested });
147
159
  return;
148
160
  }
@@ -151,17 +163,25 @@ function planFederatedIncludes(opts) {
151
163
  // keys fall through to the local engine for its standard validation error.
152
164
  if (demanded) {
153
165
  throw new FederationPlanError(`Federation: alwaysInclude '${key}' on ${service}.${model} matches no local relation, ` +
154
- `no scalar FK '${fk}', or no known model '${targetModel}'`, key);
166
+ `no scalar FK '${fk}', no alias, or no known model '${targetModel}'`, key);
155
167
  }
156
168
  localInclude[key] = value;
157
169
  };
158
170
  for (const [key, value] of Object.entries(include ?? {})) {
159
- if (value === false || value == null)
160
- continue; // include disattivato dal client
171
+ // include disattivato dal client: marcalo come gestito così alwaysInclude NON
172
+ // lo resuscita (rispetta la volontà esplicita del client di escluderlo).
173
+ if (value === false || value == null) {
174
+ planned.add(key);
175
+ continue;
176
+ }
161
177
  planKey(key, value, false);
162
178
  }
163
- for (const key of alwaysInclude ?? [])
164
- planKey(key, true, true);
179
+ for (const item of alwaysInclude ?? []) {
180
+ if (typeof item === "string")
181
+ planKey(item, true, true);
182
+ else
183
+ planKey(item.key, true, true, { include: item.include, select: item.select });
184
+ }
165
185
  return {
166
186
  localInclude: Object.keys(localInclude).length ? localInclude : undefined,
167
187
  remote,
@@ -187,9 +207,14 @@ function collectForeignIds(rows, fk) {
187
207
  */
188
208
  function mergeFederatedRows(rows, plan, targetRows) {
189
209
  const byId = new Map();
190
- for (const t of targetRows)
191
- if (t?.id != null)
192
- byId.set(String(t.id), t);
210
+ // keep-first: un owner che ritorna id duplicati (chunk sovrapposti/bug) è deterministico.
211
+ for (const t of targetRows) {
212
+ if (t?.id == null)
213
+ continue;
214
+ const k = String(t.id);
215
+ if (!byId.has(k))
216
+ byId.set(k, t);
217
+ }
193
218
  for (const row of rows) {
194
219
  if (!row || typeof row !== "object")
195
220
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"federation.js","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,8 +3,9 @@ export * from "./parsed";
3
3
  export * from "./schema";
4
4
  export * from "./errors";
5
5
  export { parseQuery } from "./parser";
6
+ export { buildGenQueryPolicy, DEFAULT_SECRET_FIELDS, type BuildGenQueryPolicyOptions, type PolicyManifestLike, } from "./entity-policy-builder";
6
7
  export { GenQueryEngine, type GenQueryEngineOptions } from "./engine";
7
8
  export type { Adapter } from "./adapters/base";
8
9
  export { parseDateTime } from "./datetime";
9
- export { toFederatedShape, buildFederationIndex, planFederatedIncludes, collectForeignIds, mergeFederatedRows, pluralizeCamel, FederationPlanError, type FederatedModelShape, type FederatedServiceShape, type FederationIndex, type FederatedIncludePlan, type FederationPlan, } from "./federation";
10
+ export { toFederatedShape, buildFederationIndex, planFederatedIncludes, collectForeignIds, mergeFederatedRows, pluralizeCamel, FederationPlanError, type FederatedModelShape, type FederatedServiceShape, type FederationIndex, type FederatedIncludePlan, type FederationPlan, type FederationAlias, type AliasMap, type AlwaysIncludeItem, } from "./federation";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -14,13 +14,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.FederationPlanError = exports.pluralizeCamel = exports.mergeFederatedRows = exports.collectForeignIds = exports.planFederatedIncludes = exports.buildFederationIndex = exports.toFederatedShape = exports.parseDateTime = exports.GenQueryEngine = exports.parseQuery = void 0;
17
+ exports.FederationPlanError = exports.pluralizeCamel = exports.mergeFederatedRows = exports.collectForeignIds = exports.planFederatedIncludes = exports.buildFederationIndex = exports.toFederatedShape = exports.parseDateTime = exports.GenQueryEngine = exports.DEFAULT_SECRET_FIELDS = exports.buildGenQueryPolicy = exports.parseQuery = void 0;
18
18
  __exportStar(require("./types"), exports);
19
19
  __exportStar(require("./parsed"), exports);
20
20
  __exportStar(require("./schema"), exports);
21
21
  __exportStar(require("./errors"), exports);
22
22
  var parser_1 = require("./parser");
23
23
  Object.defineProperty(exports, "parseQuery", { enumerable: true, get: function () { return parser_1.parseQuery; } });
24
+ var entity_policy_builder_1 = require("./entity-policy-builder");
25
+ Object.defineProperty(exports, "buildGenQueryPolicy", { enumerable: true, get: function () { return entity_policy_builder_1.buildGenQueryPolicy; } });
26
+ Object.defineProperty(exports, "DEFAULT_SECRET_FIELDS", { enumerable: true, get: function () { return entity_policy_builder_1.DEFAULT_SECRET_FIELDS; } });
24
27
  var engine_1 = require("./engine");
25
28
  Object.defineProperty(exports, "GenQueryEngine", { enumerable: true, get: function () { return engine_1.GenQueryEngine; } });
26
29
  var datetime_1 = require("./datetime");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AACnB,mCAAsE;AAA7D,wGAAA,cAAc,OAAA;AAEvB,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AACtB,2CAasB;AAZpB,8GAAA,gBAAgB,OAAA;AAChB,kHAAA,oBAAoB,OAAA;AACpB,mHAAA,qBAAqB,OAAA;AACrB,+GAAA,iBAAiB,OAAA;AACjB,gHAAA,kBAAkB,OAAA;AAClB,4GAAA,cAAc,OAAA;AACd,iHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AACnB,iEAKiC;AAJ/B,4HAAA,mBAAmB,OAAA;AACnB,8HAAA,qBAAqB,OAAA;AAIvB,mCAAsE;AAA7D,wGAAA,cAAc,OAAA;AAEvB,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AACtB,2CAgBsB;AAfpB,8GAAA,gBAAgB,OAAA;AAChB,kHAAA,oBAAoB,OAAA;AACpB,mHAAA,qBAAqB,OAAA;AACrB,+GAAA,iBAAiB,OAAA;AACjB,gHAAA,kBAAkB,OAAA;AAClB,4GAAA,cAAc,OAAA;AACd,iHAAA,mBAAmB,OAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entity-policy-builder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-policy-builder.test.d.ts","sourceRoot":"","sources":["../../src/tests/entity-policy-builder.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = __importDefault(require("node:test"));
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const entity_policy_builder_1 = require("../entity-policy-builder");
9
+ const datamodel = {
10
+ models: [
11
+ {
12
+ name: "User",
13
+ fields: [
14
+ { name: "id", kind: "scalar" },
15
+ { name: "username", kind: "scalar" },
16
+ { name: "password", kind: "scalar" },
17
+ { name: "tokenHash", kind: "scalar" },
18
+ { name: "individual", kind: "object" },
19
+ ],
20
+ },
21
+ {
22
+ name: "Media",
23
+ fields: [
24
+ { name: "id", kind: "scalar" },
25
+ { name: "hash", kind: "scalar" },
26
+ ],
27
+ },
28
+ ],
29
+ };
30
+ (0, node_test_1.default)("buildGenQueryPolicy esclude i SECRET_FIELDS da filter/sort/select", () => {
31
+ const policy = (0, entity_policy_builder_1.buildGenQueryPolicy)({ datamodel });
32
+ const u = policy.User;
33
+ strict_1.default.deepEqual(u.filterable, ["id", "username"]); // password/tokenHash esclusi
34
+ strict_1.default.deepEqual(u.selectable, ["id", "username"]);
35
+ strict_1.default.deepEqual(u.sortable, ["id", "username"]);
36
+ strict_1.default.deepEqual(u.includable, ["individual"]);
37
+ strict_1.default.ok(!u.selectable.includes("password"));
38
+ strict_1.default.ok(!u.selectable.includes("tokenHash"));
39
+ });
40
+ (0, node_test_1.default)("hash NON è segreto di default (resta queryable)", () => {
41
+ strict_1.default.ok(!entity_policy_builder_1.DEFAULT_SECRET_FIELDS.has("hash"));
42
+ const policy = (0, entity_policy_builder_1.buildGenQueryPolicy)({ datamodel });
43
+ strict_1.default.deepEqual(policy.Media.filterable, ["id", "hash"]);
44
+ });
45
+ (0, node_test_1.default)("maxPerPage dal manifest, fallback al default", () => {
46
+ const policy = (0, entity_policy_builder_1.buildGenQueryPolicy)({
47
+ datamodel,
48
+ manifests: [{ prismaModel: "user", autoquery: { pagination: { max: 50 } } }],
49
+ defaultMaxPerPage: 200,
50
+ });
51
+ strict_1.default.equal(policy.User.maxPerPage, 50); // dal manifest (user → User)
52
+ strict_1.default.equal(policy.Media.maxPerPage, 200); // fallback
53
+ });
54
+ (0, node_test_1.default)("deny per-modello + extraSecretFields", () => {
55
+ const policy = (0, entity_policy_builder_1.buildGenQueryPolicy)({
56
+ datamodel,
57
+ deny: { User: { fields: ["username"], relations: ["individual"] } },
58
+ extraSecretFields: ["id"],
59
+ });
60
+ strict_1.default.deepEqual(policy.User.filterable, []); // id(extra-secret)+username(deny) tolti
61
+ strict_1.default.deepEqual(policy.User.includable, []); // individual in deny.relations
62
+ });
63
+ (0, node_test_1.default)("accetta datamodel come array nudo di models", () => {
64
+ const policy = (0, entity_policy_builder_1.buildGenQueryPolicy)({ datamodel: datamodel.models });
65
+ strict_1.default.ok(policy.User);
66
+ strict_1.default.deepEqual(policy.Media.filterable, ["id", "hash"]);
67
+ });
68
+ //# sourceMappingURL=entity-policy-builder.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-policy-builder.test.js","sourceRoot":"","sources":["../../src/tests/entity-policy-builder.test.ts"],"names":[],"mappings":"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"}
@@ -169,4 +169,117 @@ const index = (0, federation_1.buildFederationIndex)([hr, id, atlas]);
169
169
  node_assert_1.strict.equal((0, federation_1.pluralizeCamel)("Address"), "addresses");
170
170
  node_assert_1.strict.equal((0, federation_1.pluralizeCamel)("Structure"), "structures");
171
171
  });
172
+ // ── aliasMap / alwaysInclude annidato / include:false / keep-first ──────────
173
+ (0, node_test_1.test)("aliasMap risolve chiavi semantiche (key ≠ model) senza override", () => {
174
+ const certet = (0, federation_1.toFederatedShape)("skillCertet", {
175
+ models: [{ name: "EmployeePlanning", fields: [
176
+ { name: "id", kind: "scalar" },
177
+ { name: "customerId", kind: "scalar" },
178
+ { name: "submitterId", kind: "scalar" },
179
+ ] }],
180
+ });
181
+ const idx = (0, federation_1.buildFederationIndex)([certet, id]);
182
+ const plan = (0, federation_1.planFederatedIncludes)({
183
+ index: idx, service: "skillCertet", model: "EmployeePlanning",
184
+ include: { customer: true, submitter: true },
185
+ aliasMap: { customer: "Juridical", submitter: "JuridicalIndividual" },
186
+ });
187
+ const byKey = Object.fromEntries(plan.remote.map((r) => [r.key, r]));
188
+ node_assert_1.strict.equal(byKey.customer.targetModel, "Juridical");
189
+ node_assert_1.strict.equal(byKey.customer.fk, "customerId");
190
+ node_assert_1.strict.equal(byKey.submitter.targetModel, "JuridicalIndividual");
191
+ node_assert_1.strict.equal(byKey.submitter.fk, "submitterId");
192
+ });
193
+ (0, node_test_1.test)("aliasMap con fk esplicito + override vince su aliasMap", () => {
194
+ const svc = (0, federation_1.toFederatedShape)("skillX", { models: [{ name: "Doc", fields: [
195
+ { name: "id", kind: "scalar" }, { name: "ownerJiId", kind: "scalar" },
196
+ ] }] });
197
+ const idx = (0, federation_1.buildFederationIndex)([svc, id]);
198
+ const plan = (0, federation_1.planFederatedIncludes)({
199
+ index: idx, service: "skillX", model: "Doc",
200
+ include: { owner: true },
201
+ aliasMap: { owner: { model: "JuridicalIndividual", fk: "ownerJiId" } },
202
+ });
203
+ node_assert_1.strict.equal(plan.remote[0].fk, "ownerJiId");
204
+ node_assert_1.strict.equal(plan.remote[0].targetModel, "JuridicalIndividual");
205
+ });
206
+ (0, node_test_1.test)("manifest links risolve chiavi semantiche senza aliasMap globale", () => {
207
+ // links co-locati col model (harvestati dal resource manifest) — niente aliasMap.
208
+ const certet = {
209
+ service: "skillCertet",
210
+ models: [{
211
+ name: "EmployeePlanning",
212
+ relations: [],
213
+ scalars: ["id", "customerId", "submitterId"],
214
+ links: { customer: "Juridical", submitter: { model: "JuridicalIndividual" } },
215
+ }],
216
+ };
217
+ const idx = (0, federation_1.buildFederationIndex)([certet, id]);
218
+ // aliasMap globale in CONFLITTO col link → il link (co-locato) deve vincere.
219
+ const plan = (0, federation_1.planFederatedIncludes)({
220
+ index: idx, service: "skillCertet", model: "EmployeePlanning",
221
+ include: { customer: true, submitter: true },
222
+ aliasMap: { customer: "City" },
223
+ });
224
+ const byKey = Object.fromEntries(plan.remote.map((r) => [r.key, r]));
225
+ node_assert_1.strict.equal(byKey.customer.targetModel, "Juridical"); // link batte aliasMap (City)
226
+ node_assert_1.strict.equal(byKey.customer.fk, "customerId");
227
+ node_assert_1.strict.equal(byKey.submitter.targetModel, "JuridicalIndividual");
228
+ node_assert_1.strict.equal(byKey.submitter.fk, "submitterId");
229
+ });
230
+ (0, node_test_1.test)("override vince sul link del manifest, il link vince sull'aliasMap globale", () => {
231
+ const svc = {
232
+ service: "skillCertet",
233
+ models: [{
234
+ name: "Doc",
235
+ relations: [],
236
+ scalars: ["id", "customerId", "ownerJiId"],
237
+ links: { customer: "Juridical" },
238
+ }],
239
+ };
240
+ const idx = (0, federation_1.buildFederationIndex)([svc, id]);
241
+ // link (Juridical) batte aliasMap (City); override batte tutto.
242
+ const plan = (0, federation_1.planFederatedIncludes)({
243
+ index: idx, service: "skillCertet", model: "Doc",
244
+ include: { customer: true, owner: true },
245
+ aliasMap: { customer: "City", owner: { model: "JuridicalIndividual", fk: "ownerJiId" } },
246
+ overrides: { customer: { service: "skillID", model: "JuridicalIndividual", fk: "ownerJiId" } },
247
+ });
248
+ const byKey = Object.fromEntries(plan.remote.map((r) => [r.key, r]));
249
+ node_assert_1.strict.equal(byKey.customer.targetModel, "JuridicalIndividual"); // override
250
+ node_assert_1.strict.equal(byKey.customer.fk, "ownerJiId");
251
+ node_assert_1.strict.equal(byKey.owner.targetModel, "JuridicalIndividual"); // aliasMap (nessun link 'owner')
252
+ });
253
+ (0, node_test_1.test)("alwaysInclude annidato inoltra include al target (ripristina nested individual)", () => {
254
+ const hr = (0, federation_1.toFederatedShape)("skillHr", { models: [{ name: "Tempbadge", fields: [
255
+ { name: "id", kind: "scalar" }, { name: "juridicalIndividualId", kind: "scalar" },
256
+ ] }] });
257
+ const idx = (0, federation_1.buildFederationIndex)([hr, id]);
258
+ const plan = (0, federation_1.planFederatedIncludes)({
259
+ index: idx, service: "skillHr", model: "Tempbadge",
260
+ alwaysInclude: [{ key: "juridicalIndividual", include: { individual: true } }],
261
+ });
262
+ node_assert_1.strict.equal(plan.remote.length, 1);
263
+ node_assert_1.strict.deepEqual(plan.remote[0].nested, { include: { individual: true }, select: undefined });
264
+ });
265
+ (0, node_test_1.test)("include:false NON viene resuscitato da alwaysInclude", () => {
266
+ const hr = (0, federation_1.toFederatedShape)("skillHr", { models: [{ name: "Tempbadge", fields: [
267
+ { name: "id", kind: "scalar" }, { name: "juridicalIndividualId", kind: "scalar" },
268
+ ] }] });
269
+ const idx = (0, federation_1.buildFederationIndex)([hr, id]);
270
+ const plan = (0, federation_1.planFederatedIncludes)({
271
+ index: idx, service: "skillHr", model: "Tempbadge",
272
+ include: { juridicalIndividual: false },
273
+ alwaysInclude: ["juridicalIndividual"],
274
+ });
275
+ node_assert_1.strict.equal(plan.remote.length, 0);
276
+ node_assert_1.strict.equal(plan.localInclude, undefined);
277
+ });
278
+ (0, node_test_1.test)("mergeFederatedRows keep-first su id duplicati del target", () => {
279
+ const rows = [{ id: "a", jiId: "x" }];
280
+ (0, federation_1.mergeFederatedRows)(rows, { key: "ji", fk: "jiId" }, [
281
+ { id: "x", v: 1 }, { id: "x", v: 2 },
282
+ ]);
283
+ node_assert_1.strict.equal(rows[0].ji.v, 1);
284
+ });
172
285
  //# sourceMappingURL=federation.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"federation.test.js","sourceRoot":"","sources":["../../src/tests/federation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.test.js","sourceRoot":"","sources":["../../src/tests/federation.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.9.0",
6
+ "version": "0.12.0",
7
7
  "description": "ORM-agnostic JSON query language with pluggable adapters (TypeORM, Prisma)",
8
8
  "license": "BSD-3-Clause",
9
9
  "repository": {