@balena/pinejs 23.2.5-build-translations-avoid-clone-2d9729ec3ce27403d3e0d3707ffcbaf074c29835-1 → 23.2.5

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,7 +1,8 @@
1
1
  - commits:
2
- - subject: PoC test
3
- hash: 2d9729ec3ce27403d3e0d3707ffcbaf074c29835
4
- body: ""
2
+ - subject: Avoid deep cloning relationships when creating constrained models
3
+ hash: b3a7649dde0956aadfbc7248d36245fcf7d7eaf1
4
+ body: |
5
+ This reduces the memory usage for each constrained model
5
6
  footer:
6
7
  Change-type: patch
7
8
  change-type: patch
@@ -9,7 +10,7 @@
9
10
  nested: []
10
11
  version: 23.2.5
11
12
  title: ""
12
- date: 2025-11-03T15:40:20.679Z
13
+ date: 2025-11-03T12:57:19.813Z
13
14
  - commits:
14
15
  - subject: "odata-response: avoid iterating the field names when there are no
15
16
  webresource fields"
package/CHANGELOG.md CHANGED
@@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
7
7
  # v23.2.5
8
8
  ## (2025-11-03)
9
9
 
10
- * PoC test [Pagan Gazzard]
10
+ * Avoid deep cloning relationships when creating constrained models [Pagan Gazzard]
11
11
 
12
12
  # v23.2.4
13
13
  ## (2025-10-30)
@@ -4,6 +4,3 @@ export type RequiredField<T, F extends keyof T> = Overwrite<T, Required<Pick<T,
4
4
  export type OptionalField<T, F extends keyof T> = Overwrite<T, Partial<Pick<T, F>>>;
5
5
  export type Resolvable<R> = R | PromiseLike<R>;
6
6
  export type Tail<T extends any[]> = T extends [any, ...infer U] ? U : never;
7
- export type ShallowWritableOnly<T> = {
8
- [P in keyof T]: Readonly<T[P]>;
9
- };
@@ -461,14 +461,15 @@ const getAlias = (name) => {
461
461
  }
462
462
  return `permissions${permissionsJSON}`;
463
463
  };
464
- const rewriteRelationship = memoizeWeak((value, name, abstractSqlModel, permissionsLookup, vocabulary, odata2AbstractSQL) => {
464
+ const rewriteRelationship = (value, name, abstractSqlModel, permissionsLookup, vocabulary, odata2AbstractSQL) => {
465
465
  let escapedName = sqlNameToODataName(name);
466
466
  if (abstractSqlModel.tables[name]) {
467
467
  escapedName = sqlNameToODataName(abstractSqlModel.tables[name].name);
468
468
  }
469
469
  const rewrite = (object) => {
470
- if ('$' in object && Array.isArray(object.$)) {
471
- const mapping = object.$;
470
+ let ret = object;
471
+ if ('$' in ret && Array.isArray(ret.$)) {
472
+ const mapping = ret.$;
472
473
  if (mapping.length === 2 &&
473
474
  Array.isArray(mapping[1]) &&
474
475
  mapping[1].length === 2 &&
@@ -513,7 +514,10 @@ const rewriteRelationship = memoizeWeak((value, name, abstractSqlModel, permissi
513
514
  throw new ODataParser.SyntaxError(e);
514
515
  }
515
516
  if (foundCanAccessLink) {
516
- mapping[1][0] = `${possibleTargetResourceName}$bypass`;
517
+ ret = { ...ret };
518
+ const modifiedMapping = _.cloneDeep(mapping);
519
+ modifiedMapping[1][0] = `${possibleTargetResourceName}$bypass`;
520
+ ret.$ = modifiedMapping;
517
521
  }
518
522
  }
519
523
  catch (e) {
@@ -527,32 +531,46 @@ const rewriteRelationship = memoizeWeak((value, name, abstractSqlModel, permissi
527
531
  }
528
532
  }
529
533
  }
530
- if (Array.isArray(object) || typeof object === 'object') {
531
- _.forEach(object, (v) => {
534
+ if (typeof object === 'object') {
535
+ for (const key of Object.keys(object)) {
536
+ if (key === '$') {
537
+ continue;
538
+ }
539
+ const v = object[key];
532
540
  if (typeof v !== 'string') {
533
- rewrite(v);
541
+ const changedEntry = rewrite(v);
542
+ if (changedEntry != null) {
543
+ ret = { ...ret };
544
+ ret[key] = changedEntry;
545
+ }
534
546
  }
535
- });
547
+ }
548
+ }
549
+ if (ret !== object) {
550
+ return ret;
536
551
  }
537
552
  };
538
- rewrite(value);
539
- });
553
+ return rewrite(value);
554
+ };
540
555
  const rewriteRelationships = (abstractSqlModel, relationships, permissionsLookup, vocabulary) => {
541
556
  const originalAbstractSQLModel = sbvrUtils.getAbstractSqlModel({
542
557
  vocabulary,
543
558
  });
544
559
  const odata2AbstractSQL = memoizedGetOData2AbstractSQL(originalAbstractSQLModel);
545
- const newRelationships = _.cloneDeep(relationships);
546
- _.forOwn(newRelationships, (value, name) => {
547
- rewriteRelationship(value, name, abstractSqlModel, permissionsLookup, vocabulary, odata2AbstractSQL);
548
- });
560
+ const newRelationships = { ...relationships };
561
+ for (const name of Object.keys(newRelationships)) {
562
+ const changedEntry = rewriteRelationship(newRelationships[name], name, abstractSqlModel, permissionsLookup, vocabulary, odata2AbstractSQL);
563
+ if (changedEntry != null) {
564
+ newRelationships[name] = changedEntry;
565
+ }
566
+ }
549
567
  return newRelationships;
550
568
  };
551
569
  const getBoundConstrainedMemoizer = memoizeWeak((abstractSqlModel) => memoizeWeak((permissionsLookup, finalVocabulary) => {
552
570
  const constrainedAbstractSqlModel = {
553
571
  ...abstractSqlModel,
554
572
  synonyms: _.cloneDeep(abstractSqlModel.synonyms),
555
- relationships: _.cloneDeep(abstractSqlModel.relationships),
573
+ relationships: {},
556
574
  tables: {},
557
575
  };
558
576
  const baseTables = abstractSqlModel.tables;
@@ -575,7 +593,7 @@ const getBoundConstrainedMemoizer = memoizeWeak((abstractSqlModel) => memoizeWea
575
593
  return synonyms[permissionSynonym];
576
594
  },
577
595
  });
578
- const origRelationships = Object.keys(constrainedAbstractSqlModel.relationships);
596
+ const origRelationships = Object.keys(abstractSqlModel.relationships);
579
597
  const alreadyConstrainedTables = new Map();
580
598
  for (const resourceName of Object.keys(baseTables)) {
581
599
  constrainedAbstractSqlModel.tables[resourceName] = {
@@ -640,7 +658,7 @@ const getBoundConstrainedMemoizer = memoizeWeak((abstractSqlModel) => memoizeWea
640
658
  return permissionsTable;
641
659
  },
642
660
  });
643
- constrainedAbstractSqlModel.relationships = rewriteRelationships(constrainedAbstractSqlModel, constrainedAbstractSqlModel.relationships, permissionsLookup, finalVocabulary);
661
+ constrainedAbstractSqlModel.relationships = rewriteRelationships(constrainedAbstractSqlModel, abstractSqlModel.relationships, permissionsLookup, finalVocabulary);
644
662
  constrainedAbstractSqlModel.relationships = new Proxy(constrainedAbstractSqlModel.relationships, {
645
663
  get(relationships, permissionResourceName, receiver) {
646
664
  if (typeof permissionResourceName === 'symbol') {
@@ -654,8 +672,7 @@ const getBoundConstrainedMemoizer = memoizeWeak((abstractSqlModel) => memoizeWea
654
672
  return;
655
673
  }
656
674
  for (const relationship of origRelationships) {
657
- relationships[`${relationship}$${alias}`] =
658
- relationships[relationship];
675
+ relationships[`${relationship}$${alias}`] = relationships[relationship] = _.cloneDeep(relationships[relationship]);
659
676
  namespaceRelationships(relationships[relationship], alias);
660
677
  }
661
678
  return relationships[permissionResourceName];
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/sbvr-api/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/sbvr-api/permissions.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
1
  import type { AbstractSqlModel, Definition, SelectQueryNode, NumberTypeNodes, BooleanTypeNodes, UnknownTypeNodes, NullNode } from '@balena/abstract-sql-compiler';
2
- import type { Dictionary, ShallowWritableOnly } from './common-types.js';
2
+ import type { Dictionary } from './common-types.js';
3
3
  export type AliasValidNodeType = SelectQueryNode | NumberTypeNodes | BooleanTypeNodes | UnknownTypeNodes | NullNode;
4
- export declare const translateAbstractSqlModel: (fromAbstractSqlModel: Omit<AbstractSqlModel, "tables"> & {
5
- tables: {
6
- [resourceName: string]: ShallowWritableOnly<AbstractSqlModel["tables"][string]>;
7
- };
8
- }, toAbstractSqlModel: AbstractSqlModel, fromVersion: string, toVersion: string, translationDefinitions?: Dictionary<(Definition & {
4
+ export declare const translateAbstractSqlModel: (fromAbstractSqlModel: AbstractSqlModel, toAbstractSqlModel: AbstractSqlModel, fromVersion: string, toVersion: string, translationDefinitions?: Dictionary<(Definition & {
9
5
  $toResource?: string;
10
6
  }) | Dictionary<string | AliasValidNodeType>>) => Dictionary<string>;
@@ -1,5 +1,4 @@
1
1
  import _ from 'lodash';
2
- import deepFreeze from 'deep-freeze';
3
2
  const aliasFields = (translationAbstractSqlModel, fromResourceName, toResource, aliases) => {
4
3
  const fromFields = translationAbstractSqlModel.tables[fromResourceName].fields;
5
4
  const fromFieldNames = fromFields.map(({ fieldName }) => fieldName);
@@ -54,7 +53,7 @@ const namespaceRelationships = (relationships, alias) => {
54
53
  continue;
55
54
  }
56
55
  const changedEntry = namespaceRelationships(relationship, alias);
57
- if (changedEntry) {
56
+ if (changedEntry != null) {
58
57
  ret = { ...ret };
59
58
  ret[key] = changedEntry;
60
59
  }
@@ -112,8 +111,7 @@ export const translateAbstractSqlModel = (fromAbstractSqlModel, toAbstractSqlMod
112
111
  if (!key.includes('$')) {
113
112
  key = `${key}${toVersionSuffix}`;
114
113
  }
115
- deepFreeze(table);
116
- fromAbstractSqlModel.tables[key] = { ...table };
114
+ fromAbstractSqlModel.tables[key] = _.cloneDeep(table);
117
115
  }
118
116
  for (const key of fromResourceKeys) {
119
117
  if (key.includes('$')) {
@@ -1 +1 @@
1
- {"version":3,"file":"translations.js","sourceRoot":"","sources":["../../src/sbvr-api/translations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translations.js","sourceRoot":"","sources":["../../src/sbvr-api/translations.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/pinejs",
3
- "version": "23.2.5-build-translations-avoid-clone-2d9729ec3ce27403d3e0d3707ffcbaf074c29835-1",
3
+ "version": "23.2.5",
4
4
  "main": "out/server-glue/module.js",
5
5
  "type": "module",
6
6
  "repository": "git@github.com:balena-io/pinejs.git",
@@ -149,6 +149,6 @@
149
149
  "recursive": true
150
150
  },
151
151
  "versionist": {
152
- "publishedAt": "2025-11-03T15:40:21.709Z"
152
+ "publishedAt": "2025-11-03T12:57:20.833Z"
153
153
  }
154
154
  }
@@ -11,11 +11,3 @@ export type OptionalField<T, F extends keyof T> = Overwrite<
11
11
  >;
12
12
  export type Resolvable<R> = R | PromiseLike<R>;
13
13
  export type Tail<T extends any[]> = T extends [any, ...infer U] ? U : never;
14
-
15
- /**
16
- * Ideally this would be a deep readonly but that causes typescript to complain about excessively deep instantiation so a single level is the compromise,
17
- * meaning that it's actually 1st and 3rd+ level writable
18
- */
19
- export type ShallowWritableOnly<T> = {
20
- [P in keyof T]: Readonly<T[P]>;
21
- };
@@ -7,7 +7,6 @@ import type {
7
7
  Relationship,
8
8
  RelationshipInternalNode,
9
9
  RelationshipLeafNode,
10
- RelationshipMapping,
11
10
  SelectNode,
12
11
  SelectQueryNode,
13
12
  } from '@balena/abstract-sql-compiler';
@@ -20,11 +19,7 @@ import type {
20
19
  } from '@balena/odata-parser';
21
20
  import type { Tx } from '../database-layer/db.js';
22
21
  import type { ApiKey, User } from '../sbvr-api/sbvr-utils.js';
23
- import type {
24
- AnyObject,
25
- Dictionary,
26
- ShallowWritableOnly,
27
- } from './common-types.js';
22
+ import type { AnyObject, Dictionary } from './common-types.js';
28
23
 
29
24
  import {
30
25
  isBindReference,
@@ -773,175 +768,183 @@ const getAlias = (name: string) => {
773
768
  return `permissions${permissionsJSON}`;
774
769
  };
775
770
 
776
- const rewriteRelationship = memoizeWeak(
777
- (
778
- value: Relationship,
779
- name: string,
780
- abstractSqlModel: AbstractSqlModel,
781
- permissionsLookup: PermissionLookup,
782
- vocabulary: string,
783
- odata2AbstractSQL: OData2AbstractSQL,
784
- ) => {
785
- let escapedName = sqlNameToODataName(name);
786
- if (abstractSqlModel.tables[name]) {
787
- escapedName = sqlNameToODataName(abstractSqlModel.tables[name].name);
788
- }
771
+ const rewriteRelationship = (
772
+ value: Relationship,
773
+ name: string,
774
+ abstractSqlModel: AbstractSqlModel,
775
+ permissionsLookup: PermissionLookup,
776
+ vocabulary: string,
777
+ odata2AbstractSQL: OData2AbstractSQL,
778
+ ) => {
779
+ let escapedName = sqlNameToODataName(name);
780
+ if (abstractSqlModel.tables[name]) {
781
+ escapedName = sqlNameToODataName(abstractSqlModel.tables[name].name);
782
+ }
789
783
 
790
- const rewrite = (object: Relationship | RelationshipMapping) => {
791
- if ('$' in object && Array.isArray(object.$)) {
792
- // object is in the form of
793
- // { "$": ["actor", ["actor", "id"]] } or { "$": ["device type"] }
794
- // we are only interested in the first case, since this is a relationship
795
- // to a different resource
796
- const mapping = object.$;
797
- if (
798
- mapping.length === 2 &&
799
- Array.isArray(mapping[1]) &&
800
- mapping[1].length === 2 &&
801
- typeof mapping[1][0] === 'string'
802
- ) {
803
- // now have ensured that mapping looks like ["actor", ["actor", "id"]]
804
- // this relations ship means that:
805
- // mapping[0] is the local field
806
- // mapping[1] is the reference to the other resource, that joins this resource
807
- // mapping[1][0] is the name of the other resource (actor in the example)
808
- // mapping[1][1] is the name of the field on the other resource
809
- //
810
- // this therefore defines that the local field `actor` needs
811
- // to match the `id` of the `actor` resources for the join
812
-
813
- const possibleTargetResourceName = mapping[1][0];
814
-
815
- // Skip this if we already shortcut this connection
816
- if (possibleTargetResourceName.endsWith('$bypass')) {
817
- return;
818
- }
784
+ const rewrite = (object: Relationship) => {
785
+ let ret = object;
786
+ if ('$' in ret && Array.isArray(ret.$)) {
787
+ // object is in the form of
788
+ // { "$": ["actor", ["actor", "id"]] } or { "$": ["device type"] }
789
+ // we are only interested in the first case, since this is a relationship
790
+ // to a different resource
791
+ const mapping = ret.$;
792
+ if (
793
+ mapping.length === 2 &&
794
+ Array.isArray(mapping[1]) &&
795
+ mapping[1].length === 2 &&
796
+ typeof mapping[1][0] === 'string'
797
+ ) {
798
+ // now have ensured that mapping looks like ["actor", ["actor", "id"]]
799
+ // this relations ship means that:
800
+ // mapping[0] is the local field
801
+ // mapping[1] is the reference to the other resource, that joins this resource
802
+ // mapping[1][0] is the name of the other resource (actor in the example)
803
+ // mapping[1][1] is the name of the field on the other resource
804
+ //
805
+ // this therefore defines that the local field `actor` needs
806
+ // to match the `id` of the `actor` resources for the join
807
+
808
+ const possibleTargetResourceName = mapping[1][0];
809
+
810
+ // Skip this if we already shortcut this connection
811
+ if (possibleTargetResourceName.endsWith('$bypass')) {
812
+ return;
813
+ }
819
814
 
820
- const targetResourceEscaped = sqlNameToODataName(
821
- abstractSqlModel.tables[possibleTargetResourceName]?.name ??
822
- possibleTargetResourceName,
815
+ const targetResourceEscaped = sqlNameToODataName(
816
+ abstractSqlModel.tables[possibleTargetResourceName]?.name ??
817
+ possibleTargetResourceName,
818
+ );
819
+
820
+ // This is either a translated or bypassed resource we don't
821
+ // mess with these
822
+ if (targetResourceEscaped.includes('$')) {
823
+ return;
824
+ }
825
+
826
+ let foundCanAccessLink = false;
827
+
828
+ try {
829
+ const odata = memoizedParseOdata(`/${targetResourceEscaped}`);
830
+
831
+ const collapsedPermissionFilters = buildODataPermission(
832
+ permissionsLookup,
833
+ methodPermissions.GET,
834
+ vocabulary,
835
+ targetResourceEscaped,
836
+ odata,
823
837
  );
824
838
 
825
- // This is either a translated or bypassed resource we don't
826
- // mess with these
827
- if (targetResourceEscaped.includes('$')) {
839
+ if (collapsedPermissionFilters == null) {
840
+ // If we have full access already then there's no need to
841
+ // check for/rewrite based on `canAccess`
828
842
  return;
829
843
  }
830
844
 
831
- let foundCanAccessLink = false;
845
+ _.set(
846
+ odata,
847
+ ['tree', 'options', '$filter'],
848
+ collapsedPermissionFilters,
849
+ );
832
850
 
833
- try {
834
- const odata = memoizedParseOdata(`/${targetResourceEscaped}`);
835
-
836
- const collapsedPermissionFilters = buildODataPermission(
837
- permissionsLookup,
838
- methodPermissions.GET,
839
- vocabulary,
840
- targetResourceEscaped,
841
- odata,
842
- );
851
+ const canAccessFunction: ResourceFunction = function (
852
+ property: AnyObject,
853
+ ) {
854
+ // remove method property so that we won't loop back here again at this point
855
+ delete property.method;
843
856
 
844
- if (collapsedPermissionFilters == null) {
845
- // If we have full access already then there's no need to
846
- // check for/rewrite based on `canAccess`
847
- return;
857
+ if (!this.defaultResource) {
858
+ throw new Error(`No resource selected in AST.`);
848
859
  }
849
860
 
850
- _.set(
851
- odata,
852
- ['tree', 'options', '$filter'],
853
- collapsedPermissionFilters,
861
+ const targetResourceAST = this.NavigateResources(
862
+ this.defaultResource,
863
+ property.name,
854
864
  );
855
865
 
856
- const canAccessFunction: ResourceFunction = function (
857
- property: AnyObject,
858
- ) {
859
- // remove method property so that we won't loop back here again at this point
860
- delete property.method;
861
-
862
- if (!this.defaultResource) {
863
- throw new Error(`No resource selected in AST.`);
864
- }
865
-
866
- const targetResourceAST = this.NavigateResources(
867
- this.defaultResource,
868
- property.name,
869
- );
870
-
871
- const targetResourceName = sqlNameToODataName(
872
- targetResourceAST.resource.name,
873
- );
874
- const currentResourceName = sqlNameToODataName(
875
- this.defaultResource.name,
876
- );
866
+ const targetResourceName = sqlNameToODataName(
867
+ targetResourceAST.resource.name,
868
+ );
869
+ const currentResourceName = sqlNameToODataName(
870
+ this.defaultResource.name,
871
+ );
877
872
 
878
- if (
879
- currentResourceName === targetResourceEscaped &&
880
- targetResourceName === escapedName
881
- ) {
882
- foundCanAccessLink = true;
883
- }
884
- // return a true expression to not select the relationship, which might be virtual
885
- return ['Boolean', true];
886
- };
887
-
888
- try {
889
- // We need execute the abstract SQL compiler to traverse
890
- // through the permissions for that resource, using a
891
- // special canAccess callback.
892
- odata2AbstractSQL.match(
893
- odata.tree,
894
- 'GET',
895
- [],
896
- odata.binds.length,
897
- {
898
- canAccess: canAccessFunction,
899
- },
900
- );
901
- } catch (e: any) {
902
- throw new ODataParser.SyntaxError(e);
903
- }
904
- if (foundCanAccessLink) {
905
- // store the resource name as it was with a $bypass
906
- // suffix in this relationship, this means that the
907
- // query generator will use the plain resource instead
908
- // of the filtered resource.
909
- mapping[1][0] = `${possibleTargetResourceName}$bypass`;
910
- }
911
- } catch (e) {
912
- if (e === constrainedPermissionError) {
913
- // ignore
914
- return;
873
+ if (
874
+ currentResourceName === targetResourceEscaped &&
875
+ targetResourceName === escapedName
876
+ ) {
877
+ foundCanAccessLink = true;
915
878
  }
879
+ // return a true expression to not select the relationship, which might be virtual
880
+ return ['Boolean', true];
881
+ };
916
882
 
917
- // TODO: We should investigate in detail why this error
918
- // occurse. It might be able to get rid of this.
919
- if (e instanceof ODataParser.SyntaxError) {
920
- // ignore
921
- return;
922
- }
883
+ try {
884
+ // We need execute the abstract SQL compiler to traverse
885
+ // through the permissions for that resource, using a
886
+ // special canAccess callback.
887
+ odata2AbstractSQL.match(odata.tree, 'GET', [], odata.binds.length, {
888
+ canAccess: canAccessFunction,
889
+ });
890
+ } catch (e: any) {
891
+ throw new ODataParser.SyntaxError(e);
892
+ }
893
+ if (foundCanAccessLink) {
894
+ // store the resource name as it was with a $bypass
895
+ // suffix in this relationship, this means that the
896
+ // query generator will use the plain resource instead
897
+ // of the filtered resource.
898
+ ret = { ...ret };
899
+ const modifiedMapping = _.cloneDeep(mapping);
900
+ modifiedMapping[1]![0] = `${possibleTargetResourceName}$bypass`;
901
+ ret.$ = modifiedMapping;
902
+ }
903
+ } catch (e) {
904
+ if (e === constrainedPermissionError) {
905
+ // ignore
906
+ return;
907
+ }
923
908
 
924
- throw e;
909
+ // TODO: We should investigate in detail why this error
910
+ // occurse. It might be able to get rid of this.
911
+ if (e instanceof ODataParser.SyntaxError) {
912
+ // ignore
913
+ return;
925
914
  }
915
+
916
+ throw e;
926
917
  }
927
918
  }
919
+ }
928
920
 
929
- if (Array.isArray(object) || typeof object === 'object') {
930
- _.forEach(object, (v) => {
931
- // we want to recurse into the relationship path, but
932
- // in case we hit a plain string, we don't need to bother
933
- // checking it. This can happen since plain terms also have
934
- // relationships to sbvr-types.
935
- if (typeof v !== 'string') {
936
- rewrite(v as Relationship | RelationshipMapping);
921
+ if (typeof object === 'object') {
922
+ for (const key of Object.keys(object)) {
923
+ if (key === '$') {
924
+ continue;
925
+ }
926
+ const v = (object as RelationshipInternalNode)[key];
927
+ // we want to recurse into the relationship path, but
928
+ // in case we hit a plain string, we don't need to bother
929
+ // checking it. This can happen since plain terms also have
930
+ // relationships to sbvr-types.
931
+ if (typeof v !== 'string') {
932
+ const changedEntry = rewrite(v);
933
+ if (changedEntry != null) {
934
+ ret = { ...ret };
935
+ (ret as RelationshipInternalNode)[key] = changedEntry;
937
936
  }
938
- });
937
+ }
939
938
  }
940
- };
939
+ }
941
940
 
942
- rewrite(value);
943
- },
944
- );
941
+ if (ret !== object) {
942
+ return ret;
943
+ }
944
+ };
945
+
946
+ return rewrite(value);
947
+ };
945
948
 
946
949
  const rewriteRelationships = (
947
950
  abstractSqlModel: AbstractSqlModel,
@@ -959,21 +962,31 @@ const rewriteRelationships = (
959
962
  originalAbstractSQLModel,
960
963
  );
961
964
 
962
- const newRelationships = _.cloneDeep(relationships);
963
- _.forOwn(newRelationships, (value, name) => {
964
- rewriteRelationship(
965
- value,
965
+ const newRelationships = { ...relationships };
966
+ for (const name of Object.keys(newRelationships)) {
967
+ const changedEntry = rewriteRelationship(
968
+ newRelationships[name],
966
969
  name,
967
970
  abstractSqlModel,
968
971
  permissionsLookup,
969
972
  vocabulary,
970
973
  odata2AbstractSQL,
971
974
  );
972
- });
975
+ if (changedEntry != null) {
976
+ newRelationships[name] = changedEntry as RelationshipInternalNode;
977
+ }
978
+ }
973
979
 
974
980
  return newRelationships;
975
981
  };
976
982
 
983
+ /**
984
+ * Ideally this would be a deep readonly but that causes typescript to complain about excessively deep instantiation so a single level is the compromise,
985
+ * meaning that it's actually 1st and 3rd+ level writable
986
+ */
987
+ type ShallowWritableOnly<T> = {
988
+ [P in keyof T]: Readonly<T[P]>;
989
+ };
977
990
  const getBoundConstrainedMemoizer = memoizeWeak(
978
991
  (abstractSqlModel: AbstractSqlModel) =>
979
992
  memoizeWeak(
@@ -982,16 +995,18 @@ const getBoundConstrainedMemoizer = memoizeWeak(
982
995
  /** This is the final translated vocabulary that permissions get written against as that's what we will have to resolve permissions against */
983
996
  finalVocabulary: string,
984
997
  ): AbstractSqlModel => {
985
- const constrainedAbstractSqlModel: Omit<AbstractSqlModel, 'tables'> & {
998
+ const constrainedAbstractSqlModel: Omit<
999
+ AbstractSqlModel,
1000
+ 'tables' | 'relationships'
1001
+ > & {
986
1002
  tables: {
987
- [resourceName: string]: ShallowWritableOnly<
988
- AbstractSqlModel['tables'][string]
989
- >;
1003
+ [resourceName: string]: ShallowWritableOnly<AbstractSqlTable>;
990
1004
  };
1005
+ relationships: ShallowWritableOnly<AbstractSqlModel['relationships']>;
991
1006
  } = {
992
1007
  ...abstractSqlModel,
993
1008
  synonyms: _.cloneDeep(abstractSqlModel.synonyms),
994
- relationships: _.cloneDeep(abstractSqlModel.relationships),
1009
+ relationships: {},
995
1010
  tables: {},
996
1011
  };
997
1012
  const baseTables = abstractSqlModel.tables;
@@ -1021,9 +1036,7 @@ const getBoundConstrainedMemoizer = memoizeWeak(
1021
1036
  },
1022
1037
  );
1023
1038
 
1024
- const origRelationships = Object.keys(
1025
- constrainedAbstractSqlModel.relationships,
1026
- );
1039
+ const origRelationships = Object.keys(abstractSqlModel.relationships);
1027
1040
 
1028
1041
  const alreadyConstrainedTables = new Map<
1029
1042
  ShallowWritableOnly<AbstractSqlTable>,
@@ -1162,7 +1175,7 @@ const getBoundConstrainedMemoizer = memoizeWeak(
1162
1175
  // expands and filters to unconstraint resources
1163
1176
  constrainedAbstractSqlModel.relationships = rewriteRelationships(
1164
1177
  constrainedAbstractSqlModel as AbstractSqlModel,
1165
- constrainedAbstractSqlModel.relationships,
1178
+ abstractSqlModel.relationships,
1166
1179
  permissionsLookup,
1167
1180
  finalVocabulary,
1168
1181
  );
@@ -1186,8 +1199,10 @@ const getBoundConstrainedMemoizer = memoizeWeak(
1186
1199
  return;
1187
1200
  }
1188
1201
  for (const relationship of origRelationships) {
1189
- relationships[`${relationship}$${alias}`] =
1190
- relationships[relationship];
1202
+ // TODO: Avoid this cloneDeep when not necessary
1203
+ relationships[`${relationship}$${alias}`] = relationships[
1204
+ relationship
1205
+ ] = _.cloneDeep(relationships[relationship]);
1191
1206
  namespaceRelationships(relationships[relationship], alias);
1192
1207
  }
1193
1208
  return relationships[permissionResourceName];
@@ -15,8 +15,7 @@ import type {
15
15
  FieldNode,
16
16
  ResourceNode,
17
17
  } from '@balena/abstract-sql-compiler';
18
- import type { Dictionary, ShallowWritableOnly } from './common-types.js';
19
- import deepFreeze from 'deep-freeze';
18
+ import type { Dictionary } from './common-types.js';
20
19
 
21
20
  export type AliasValidNodeType =
22
21
  | SelectQueryNode
@@ -25,13 +24,7 @@ export type AliasValidNodeType =
25
24
  | UnknownTypeNodes
26
25
  | NullNode;
27
26
  const aliasFields = (
28
- translationAbstractSqlModel: Omit<AbstractSqlModel, 'tables'> & {
29
- tables: {
30
- [resourceName: string]: ShallowWritableOnly<
31
- AbstractSqlModel['tables'][string]
32
- >;
33
- };
34
- },
27
+ translationAbstractSqlModel: AbstractSqlModel,
35
28
  fromResourceName: string,
36
29
  toResource: string,
37
30
  aliases: Dictionary<string | AliasValidNodeType>,
@@ -81,13 +74,7 @@ const aliasFields = (
81
74
  };
82
75
 
83
76
  const aliasResource = (
84
- translationAbstractSqlModel: Omit<AbstractSqlModel, 'tables'> & {
85
- tables: {
86
- [resourceName: string]: ShallowWritableOnly<
87
- AbstractSqlModel['tables'][string]
88
- >;
89
- };
90
- },
77
+ translationAbstractSqlModel: AbstractSqlModel,
91
78
  fromResourceName: string,
92
79
  toResource: string,
93
80
  aliases: Dictionary<string | AliasValidNodeType>,
@@ -125,7 +112,7 @@ const namespaceRelationships = (
125
112
  }
126
113
 
127
114
  const changedEntry = namespaceRelationships(relationship, alias);
128
- if (changedEntry) {
115
+ if (changedEntry != null) {
129
116
  ret = { ...ret };
130
117
  (ret as RelationshipInternalNode)[key] = changedEntry;
131
118
  }
@@ -150,13 +137,7 @@ const namespaceRelationships = (
150
137
  };
151
138
 
152
139
  export const translateAbstractSqlModel = (
153
- fromAbstractSqlModel: Omit<AbstractSqlModel, 'tables'> & {
154
- tables: {
155
- [resourceName: string]: ShallowWritableOnly<
156
- AbstractSqlModel['tables'][string]
157
- >;
158
- };
159
- },
140
+ fromAbstractSqlModel: AbstractSqlModel,
160
141
  toAbstractSqlModel: AbstractSqlModel,
161
142
  fromVersion: string,
162
143
  toVersion: string,
@@ -229,9 +210,7 @@ export const translateAbstractSqlModel = (
229
210
  if (!key.includes('$')) {
230
211
  key = `${key}${toVersionSuffix}`;
231
212
  }
232
- // TODO: This deep freeze is for testing and probably shouldn't be needed later, or it might even already be frozen
233
- deepFreeze(table);
234
- fromAbstractSqlModel.tables[key] = { ...table };
213
+ fromAbstractSqlModel.tables[key] = _.cloneDeep(table);
235
214
  }
236
215
 
237
216
  for (const key of fromResourceKeys) {