@openhi/constructs 0.0.105 → 0.0.107

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/lib/chunk-36UPY7YQ.mjs +529 -0
  2. package/lib/chunk-36UPY7YQ.mjs.map +1 -0
  3. package/lib/chunk-AGF3RAAZ.mjs +20 -0
  4. package/lib/chunk-AGF3RAAZ.mjs.map +1 -0
  5. package/lib/{chunk-BXEG7IOZ.mjs → chunk-AO3E22CS.mjs} +2 -2
  6. package/lib/{chunk-WNUH2WDZ.mjs → chunk-CHPEQRXU.mjs} +2 -2
  7. package/lib/chunk-JUNL76HF.mjs +428 -0
  8. package/lib/chunk-JUNL76HF.mjs.map +1 -0
  9. package/lib/chunk-L6UAP4KP.mjs +27 -0
  10. package/lib/chunk-L6UAP4KP.mjs.map +1 -0
  11. package/lib/{chunk-3QS3WKRC.mjs → chunk-LZOMFHX3.mjs} +9 -2
  12. package/lib/chunk-SYBADQXI.mjs +607 -0
  13. package/lib/chunk-SYBADQXI.mjs.map +1 -0
  14. package/lib/chunk-VXX4I3EF.mjs +19 -0
  15. package/lib/chunk-VXX4I3EF.mjs.map +1 -0
  16. package/lib/{chunk-36YCDLLA.mjs → chunk-VYDIGFIX.mjs} +75 -481
  17. package/lib/chunk-VYDIGFIX.mjs.map +1 -0
  18. package/lib/chunk-YU2HRNUP.mjs +33 -0
  19. package/lib/chunk-YU2HRNUP.mjs.map +1 -0
  20. package/lib/chunk-YZZDUJHI.mjs +37 -0
  21. package/lib/chunk-YZZDUJHI.mjs.map +1 -0
  22. package/lib/cors-options-lambda.handler.mjs +1 -1
  23. package/lib/data-store-postgres-replication.handler.mjs +1 -1
  24. package/lib/events-BfrkMoBD.d.mts +44 -0
  25. package/lib/events-BfrkMoBD.d.ts +44 -0
  26. package/lib/events-DPodvl07.d.mts +207 -0
  27. package/lib/events-DPodvl07.d.ts +207 -0
  28. package/lib/firehose-archive-transform.handler.mjs +1 -1
  29. package/lib/index.d.mts +417 -9
  30. package/lib/index.d.ts +663 -10
  31. package/lib/index.js +2398 -111
  32. package/lib/index.js.map +1 -1
  33. package/lib/index.mjs +779 -104
  34. package/lib/index.mjs.map +1 -1
  35. package/lib/openhi-context-CaBH8SFo.d.mts +39 -0
  36. package/lib/openhi-context-CaBH8SFo.d.ts +39 -0
  37. package/lib/platform-deploy-bridge.handler.d.mts +14 -0
  38. package/lib/platform-deploy-bridge.handler.d.ts +14 -0
  39. package/lib/platform-deploy-bridge.handler.js +762 -0
  40. package/lib/platform-deploy-bridge.handler.js.map +1 -0
  41. package/lib/platform-deploy-bridge.handler.mjs +134 -0
  42. package/lib/platform-deploy-bridge.handler.mjs.map +1 -0
  43. package/lib/post-authentication.handler.mjs +1 -1
  44. package/lib/post-confirmation.handler.mjs +1 -1
  45. package/lib/pre-token-generation.handler.js +76 -31
  46. package/lib/pre-token-generation.handler.js.map +1 -1
  47. package/lib/pre-token-generation.handler.mjs +5 -3
  48. package/lib/pre-token-generation.handler.mjs.map +1 -1
  49. package/lib/provision-default-workspace.handler.js +86 -41
  50. package/lib/provision-default-workspace.handler.js.map +1 -1
  51. package/lib/provision-default-workspace.handler.mjs +6 -4
  52. package/lib/provision-default-workspace.handler.mjs.map +1 -1
  53. package/lib/rest-api-lambda.handler.js +114 -59
  54. package/lib/rest-api-lambda.handler.js.map +1 -1
  55. package/lib/rest-api-lambda.handler.mjs +40 -61
  56. package/lib/rest-api-lambda.handler.mjs.map +1 -1
  57. package/lib/seed-demo-data.handler.d.mts +107 -0
  58. package/lib/seed-demo-data.handler.d.ts +107 -0
  59. package/lib/seed-demo-data.handler.js +2037 -0
  60. package/lib/seed-demo-data.handler.js.map +1 -0
  61. package/lib/seed-demo-data.handler.mjs +23 -0
  62. package/lib/seed-demo-data.handler.mjs.map +1 -0
  63. package/lib/seed-system-data.handler.d.mts +64 -0
  64. package/lib/seed-system-data.handler.d.ts +64 -0
  65. package/lib/seed-system-data.handler.js +1631 -0
  66. package/lib/seed-system-data.handler.js.map +1 -0
  67. package/lib/seed-system-data.handler.mjs +135 -0
  68. package/lib/seed-system-data.handler.mjs.map +1 -0
  69. package/package.json +4 -2
  70. package/lib/chunk-36YCDLLA.mjs.map +0 -1
  71. /package/lib/{chunk-BXEG7IOZ.mjs.map → chunk-AO3E22CS.mjs.map} +0 -0
  72. /package/lib/{chunk-WNUH2WDZ.mjs.map → chunk-CHPEQRXU.mjs.map} +0 -0
  73. /package/lib/{chunk-3QS3WKRC.mjs.map → chunk-LZOMFHX3.mjs.map} +0 -0
@@ -24,7 +24,7 @@ __export(provision_default_workspace_handler_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(provision_default_workspace_handler_exports);
26
26
  var import_node_crypto = require("crypto");
27
- var import_types8 = require("@openhi/types");
27
+ var import_types9 = require("@openhi/types");
28
28
 
29
29
  // src/data/dynamo/dynamo-control-service.ts
30
30
  var import_electrodb8 = require("electrodb");
@@ -43,6 +43,9 @@ var dynamoClient = new import_client_dynamodb.DynamoDBClient({
43
43
  // src/data/dynamo/entities/control/configuration-entity.ts
44
44
  var import_electrodb = require("electrodb");
45
45
 
46
+ // src/data/dynamo/entities/control/control-entity-common.ts
47
+ var import_types = require("@openhi/types");
48
+
46
49
  // src/data/dynamo/shard.ts
47
50
  var SHARD_COUNT = 4;
48
51
  function computeShard(id) {
@@ -65,6 +68,29 @@ var gsi1ShardAttribute = {
65
68
  return String(computeShard(item.id));
66
69
  }
67
70
  };
71
+ var gsi1skAttribute = {
72
+ type: "string",
73
+ watch: ["resource", "lastUpdated", "id"],
74
+ set: (_val, item) => {
75
+ const id = typeof item?.id === "string" ? item.id : "";
76
+ const lastUpdated = typeof item?.lastUpdated === "string" ? item.lastUpdated : "";
77
+ const fallback = `${lastUpdated}#${id}`;
78
+ if (typeof item?.resource !== "string" || item.resource.length === 0) {
79
+ return fallback;
80
+ }
81
+ let parsed;
82
+ try {
83
+ parsed = JSON.parse(item.resource);
84
+ } catch {
85
+ return fallback;
86
+ }
87
+ if (!parsed || typeof parsed !== "object") return fallback;
88
+ const resourceType = parsed.resourceType;
89
+ if (typeof resourceType !== "string") return fallback;
90
+ const label = (0, import_types.extractLabel)(parsed);
91
+ return label !== void 0 ? `${label}#${id}` : fallback;
92
+ }
93
+ };
68
94
 
69
95
  // src/data/dynamo/entities/control/configuration-entity.ts
70
96
  var ConfigurationEntity = new import_electrodb.Entity({
@@ -170,8 +196,9 @@ var ConfigurationEntity = new import_electrodb.Entity({
170
196
  * (workspaceId = "-") or "list configs scoped to this workspace". Does not support
171
197
  * hierarchical resolution in one query; use base table GetItem in fallback order
172
198
  * (user → workspace → tenant → baseline) for that.
173
- * SK is `<ISO-8601 lastUpdated>#<id>` (control-plane unlabeled per DR-004).
174
- * `casing: "none"` on the SK preserves ISO-8601 `T`/`Z`.
199
+ * SK is `<key>#<id>` Configuration's `key` is a required entity attribute (the
200
+ * config category: endpoints, branding, display, …) and the natural sort/lookup
201
+ * dimension. `casing: "none"` preserves the literal key value.
175
202
  */
176
203
  gsi1: {
177
204
  index: "GSI1",
@@ -183,8 +210,8 @@ var ConfigurationEntity = new import_electrodb.Entity({
183
210
  sk: {
184
211
  field: "GSI1SK",
185
212
  casing: "none",
186
- composite: ["lastUpdated", "id"],
187
- template: "${lastUpdated}#${id}"
213
+ composite: ["key", "id"],
214
+ template: "${key}#${id}"
188
215
  }
189
216
  }
190
217
  }
@@ -238,6 +265,8 @@ var MembershipEntity = new import_electrodb2.Entity({
238
265
  required: true
239
266
  },
240
267
  gsi1Shard: gsi1ShardAttribute,
268
+ /** Derived GSI1 sort key — name-based when extractable; else `<lastUpdated>#<id>`. */
269
+ gsi1sk: gsi1skAttribute,
241
270
  deleted: {
242
271
  type: "boolean",
243
272
  required: false
@@ -268,8 +297,9 @@ var MembershipEntity = new import_electrodb2.Entity({
268
297
  /**
269
298
  * GSI1 — Unified Sharded List per ADR-011: list all Memberships for a tenant across the
270
299
  * four shards. Membership is tenant-scoped only, so `WID#-` is a sentinel.
271
- * SK is `<ISO-8601 lastUpdated>#<id>` (control-plane unlabeled per DR-004).
272
- * `casing: "none"` on the SK preserves ISO-8601 `T`/`Z`.
300
+ * SK is derived via `gsi1skAttribute` uses the resource's natural label when
301
+ * extractable, else `<lastUpdated>#<id>` (DR-004). `casing: "none"` preserves the
302
+ * normalized label and ISO-8601 `T`/`Z`.
273
303
  */
274
304
  gsi1: {
275
305
  index: "GSI1",
@@ -281,8 +311,8 @@ var MembershipEntity = new import_electrodb2.Entity({
281
311
  sk: {
282
312
  field: "GSI1SK",
283
313
  casing: "none",
284
- composite: ["lastUpdated", "id"],
285
- template: "${lastUpdated}#${id}"
314
+ composite: ["gsi1sk"],
315
+ template: "${gsi1sk}"
286
316
  }
287
317
  }
288
318
  }
@@ -331,6 +361,8 @@ var RoleEntity = new import_electrodb3.Entity({
331
361
  required: true
332
362
  },
333
363
  gsi1Shard: gsi1ShardAttribute,
364
+ /** Derived GSI1 sort key — name-based when extractable; else `<lastUpdated>#<id>`. */
365
+ gsi1sk: gsi1skAttribute,
334
366
  deleted: {
335
367
  type: "boolean",
336
368
  required: false
@@ -361,8 +393,9 @@ var RoleEntity = new import_electrodb3.Entity({
361
393
  /**
362
394
  * GSI1 — Unified Sharded List per ADR-011: list all Roles across the four shards.
363
395
  * Non-tenant-isolated, so `TID#-#WID#-` sentinels precede `RT#Role#SHARD#<n>`.
364
- * SK is `<ISO-8601 lastUpdated>#<id>` (control-plane unlabeled per DR-004).
365
- * `casing: "none"` on the SK preserves ISO-8601 `T`/`Z`.
396
+ * SK is derived via `gsi1skAttribute` uses the resource's natural label when
397
+ * extractable, else `<lastUpdated>#<id>` (DR-004). `casing: "none"` preserves the
398
+ * normalized label and ISO-8601 `T`/`Z`.
366
399
  */
367
400
  gsi1: {
368
401
  index: "GSI1",
@@ -374,8 +407,8 @@ var RoleEntity = new import_electrodb3.Entity({
374
407
  sk: {
375
408
  field: "GSI1SK",
376
409
  casing: "none",
377
- composite: ["lastUpdated", "id"],
378
- template: "${lastUpdated}#${id}"
410
+ composite: ["gsi1sk"],
411
+ template: "${gsi1sk}"
379
412
  }
380
413
  }
381
414
  }
@@ -429,6 +462,8 @@ var RoleAssignmentEntity = new import_electrodb4.Entity({
429
462
  required: true
430
463
  },
431
464
  gsi1Shard: gsi1ShardAttribute,
465
+ /** Derived GSI1 sort key — name-based when extractable; else `<lastUpdated>#<id>`. */
466
+ gsi1sk: gsi1skAttribute,
432
467
  deleted: {
433
468
  type: "boolean",
434
469
  required: false
@@ -459,8 +494,9 @@ var RoleAssignmentEntity = new import_electrodb4.Entity({
459
494
  /**
460
495
  * GSI1 — Unified Sharded List per ADR-011: list all RoleAssignments for a tenant across the
461
496
  * four shards. Tenant-scoped only, so `WID#-` is a sentinel.
462
- * SK is `<ISO-8601 lastUpdated>#<id>` (control-plane unlabeled per DR-004).
463
- * `casing: "none"` on the SK preserves ISO-8601 `T`/`Z`.
497
+ * SK is derived via `gsi1skAttribute` uses the resource's natural label when
498
+ * extractable, else `<lastUpdated>#<id>` (DR-004). `casing: "none"` preserves the
499
+ * normalized label and ISO-8601 `T`/`Z`.
464
500
  */
465
501
  gsi1: {
466
502
  index: "GSI1",
@@ -472,8 +508,8 @@ var RoleAssignmentEntity = new import_electrodb4.Entity({
472
508
  sk: {
473
509
  field: "GSI1SK",
474
510
  casing: "none",
475
- composite: ["lastUpdated", "id"],
476
- template: "${lastUpdated}#${id}"
511
+ composite: ["gsi1sk"],
512
+ template: "${gsi1sk}"
477
513
  }
478
514
  }
479
515
  }
@@ -527,6 +563,8 @@ var TenantEntity = new import_electrodb5.Entity({
527
563
  required: true
528
564
  },
529
565
  gsi1Shard: gsi1ShardAttribute,
566
+ /** Derived GSI1 sort key — name-based when extractable; else `<lastUpdated>#<id>`. */
567
+ gsi1sk: gsi1skAttribute,
530
568
  deleted: {
531
569
  type: "boolean",
532
570
  required: false
@@ -557,8 +595,9 @@ var TenantEntity = new import_electrodb5.Entity({
557
595
  /**
558
596
  * GSI1 — Unified Sharded List per ADR-011: list all Tenants across the four shards.
559
597
  * Tenant lives at the platform tier (no parent tenant or workspace), so `TID#-#WID#-`
560
- * sentinels precede `RT#Tenant#SHARD#<n>`. SK is `<ISO-8601 lastUpdated>#<id>` (control-plane
561
- * unlabeled per DR-004). `casing: "none"` on the SK preserves ISO-8601 `T`/`Z`.
598
+ * sentinels precede `RT#Tenant#SHARD#<n>`. SK is derived via `gsi1skAttribute` —
599
+ * `<normalizedName>#<id>` when the resource carries a `name`, else `<lastUpdated>#<id>`
600
+ * (DR-004). `casing: "none"` preserves the normalized label and ISO-8601 `T`/`Z`.
562
601
  */
563
602
  gsi1: {
564
603
  index: "GSI1",
@@ -570,8 +609,8 @@ var TenantEntity = new import_electrodb5.Entity({
570
609
  sk: {
571
610
  field: "GSI1SK",
572
611
  casing: "none",
573
- composite: ["lastUpdated", "id"],
574
- template: "${lastUpdated}#${id}"
612
+ composite: ["gsi1sk"],
613
+ template: "${gsi1sk}"
575
614
  }
576
615
  }
577
616
  }
@@ -628,6 +667,8 @@ var UserEntity = new import_electrodb6.Entity({
628
667
  required: true
629
668
  },
630
669
  gsi1Shard: gsi1ShardAttribute,
670
+ /** Derived GSI1 sort key — name-based when extractable; else `<lastUpdated>#<id>`. */
671
+ gsi1sk: gsi1skAttribute,
631
672
  deleted: {
632
673
  type: "boolean",
633
674
  required: false
@@ -658,8 +699,9 @@ var UserEntity = new import_electrodb6.Entity({
658
699
  /**
659
700
  * GSI1 — Unified Sharded List per ADR-011: list all Users across the four shards.
660
701
  * Non-tenant-isolated, so `TID#-#WID#-` sentinels precede `RT#User#SHARD#<n>`.
661
- * SK is `<ISO-8601 lastUpdated>#<id>` (control-plane unlabeled per DR-004).
662
- * `casing: "none"` on the SK preserves ISO-8601 `T`/`Z` characters.
702
+ * SK is derived via `gsi1skAttribute` uses the resource's natural label when
703
+ * extractable (string `name`/`title` via introspection), else `<lastUpdated>#<id>`
704
+ * (DR-004). `casing: "none"` preserves the normalized label and ISO-8601 `T`/`Z`.
663
705
  */
664
706
  gsi1: {
665
707
  index: "GSI1",
@@ -671,8 +713,8 @@ var UserEntity = new import_electrodb6.Entity({
671
713
  sk: {
672
714
  field: "GSI1SK",
673
715
  casing: "none",
674
- composite: ["lastUpdated", "id"],
675
- template: "${lastUpdated}#${id}"
716
+ composite: ["gsi1sk"],
717
+ template: "${gsi1sk}"
676
718
  }
677
719
  },
678
720
  /**
@@ -747,6 +789,8 @@ var WorkspaceEntity = new import_electrodb7.Entity({
747
789
  required: true
748
790
  },
749
791
  gsi1Shard: gsi1ShardAttribute,
792
+ /** Derived GSI1 sort key — name-based when extractable; else `<lastUpdated>#<id>`. */
793
+ gsi1sk: gsi1skAttribute,
750
794
  deleted: {
751
795
  type: "boolean",
752
796
  required: false
@@ -777,8 +821,9 @@ var WorkspaceEntity = new import_electrodb7.Entity({
777
821
  /**
778
822
  * GSI1 — Unified Sharded List per ADR-011: list all Workspaces for a tenant across the
779
823
  * four shards. Workspace is itself the workspace identity, so `WID#-` is a sentinel.
780
- * SK is `<ISO-8601 lastUpdated>#<id>` (control-plane unlabeled per DR-004).
781
- * `casing: "none"` on the SK preserves ISO-8601 `T`/`Z`.
824
+ * SK is derived via `gsi1skAttribute` — `<normalizedName>#<id>` when the resource
825
+ * carries a `name`, else `<lastUpdated>#<id>` (DR-004). `casing: "none"` preserves
826
+ * the normalized label and ISO-8601 `T`/`Z`.
782
827
  */
783
828
  gsi1: {
784
829
  index: "GSI1",
@@ -790,8 +835,8 @@ var WorkspaceEntity = new import_electrodb7.Entity({
790
835
  sk: {
791
836
  field: "GSI1SK",
792
837
  casing: "none",
793
- composite: ["lastUpdated", "id"],
794
- template: "${lastUpdated}#${id}"
838
+ composite: ["gsi1sk"],
839
+ template: "${gsi1sk}"
795
840
  }
796
841
  }
797
842
  }
@@ -826,7 +871,7 @@ function getDynamoControlService(tableName) {
826
871
  }
827
872
 
828
873
  // src/data/operations/control/membership/membership-create-operation.ts
829
- var import_types = require("@openhi/types");
874
+ var import_types2 = require("@openhi/types");
830
875
  async function createMembershipOperation(params) {
831
876
  const { context, body, tableName } = params;
832
877
  const service = getDynamoControlService(tableName);
@@ -835,7 +880,7 @@ async function createMembershipOperation(params) {
835
880
  const lastUpdated = context.date ?? (/* @__PURE__ */ new Date()).toISOString();
836
881
  const vid = `1`;
837
882
  const resource = { resourceType: "Membership", id, ...parsedResource };
838
- const summary = JSON.stringify((0, import_types.extractSummary)(resource));
883
+ const summary = JSON.stringify((0, import_types2.extractSummary)(resource));
839
884
  await service.entities.membership.put({
840
885
  tenantId: context.tenantId,
841
886
  id,
@@ -852,7 +897,7 @@ async function createMembershipOperation(params) {
852
897
  }
853
898
 
854
899
  // src/data/operations/control/roleassignment/roleassignment-create-operation.ts
855
- var import_types2 = require("@openhi/types");
900
+ var import_types3 = require("@openhi/types");
856
901
  async function createRoleAssignmentOperation(params) {
857
902
  const { context, body, tableName } = params;
858
903
  const service = getDynamoControlService(tableName);
@@ -861,7 +906,7 @@ async function createRoleAssignmentOperation(params) {
861
906
  const lastUpdated = context.date ?? (/* @__PURE__ */ new Date()).toISOString();
862
907
  const vid = `1`;
863
908
  const resource = { resourceType: "RoleAssignment", id, ...parsedResource };
864
- const summary = JSON.stringify((0, import_types2.extractSummary)(resource));
909
+ const summary = JSON.stringify((0, import_types3.extractSummary)(resource));
865
910
  await service.entities.roleAssignment.put({
866
911
  tenantId: context.tenantId,
867
912
  id,
@@ -878,7 +923,7 @@ async function createRoleAssignmentOperation(params) {
878
923
  }
879
924
 
880
925
  // src/data/operations/control/tenant/tenant-create-operation.ts
881
- var import_types3 = require("@openhi/types");
926
+ var import_types4 = require("@openhi/types");
882
927
  async function createTenantOperation(params) {
883
928
  const { context, body, tableName } = params;
884
929
  const service = getDynamoControlService(tableName);
@@ -887,7 +932,7 @@ async function createTenantOperation(params) {
887
932
  const vid = lastUpdated.replace(/[-:T.Z]/g, "").slice(0, 12) || Date.now().toString(36);
888
933
  const parsedResource = typeof body.resource === "string" ? JSON.parse(body.resource) : body.resource ?? {};
889
934
  const resource = { resourceType: "Tenant", id, ...parsedResource };
890
- const summary = JSON.stringify((0, import_types3.extractSummary)(resource));
935
+ const summary = JSON.stringify((0, import_types4.extractSummary)(resource));
891
936
  await service.entities.tenant.put({
892
937
  tenantId: id,
893
938
  id,
@@ -900,7 +945,7 @@ async function createTenantOperation(params) {
900
945
  }
901
946
 
902
947
  // src/data/operations/control/user/user-create-operation.ts
903
- var import_types4 = require("@openhi/types");
948
+ var import_types5 = require("@openhi/types");
904
949
 
905
950
  // src/data/operations/control/user/user-find-by-sub-operation.ts
906
951
  async function findUserBySubOperation(params) {
@@ -920,13 +965,13 @@ async function findUserBySubOperation(params) {
920
965
  }
921
966
 
922
967
  // src/data/operations/data-operations-common.ts
923
- var import_types5 = require("@openhi/types");
968
+ var import_types6 = require("@openhi/types");
924
969
 
925
970
  // src/lib/compression.ts
926
971
  var import_node_zlib = require("zlib");
927
972
 
928
973
  // src/data/operations/control/user/user-update-operation.ts
929
- var import_types6 = require("@openhi/types");
974
+ var import_types7 = require("@openhi/types");
930
975
 
931
976
  // src/data/operations/control/user/user-resource-helpers.ts
932
977
  function parseUserResource(resource) {
@@ -938,7 +983,7 @@ function parseUserResource(resource) {
938
983
  }
939
984
 
940
985
  // src/data/operations/control/workspace/workspace-create-operation.ts
941
- var import_types7 = require("@openhi/types");
986
+ var import_types8 = require("@openhi/types");
942
987
  async function createWorkspaceOperation(params) {
943
988
  const { context, body, tableName } = params;
944
989
  const { tenantId } = context;
@@ -948,7 +993,7 @@ async function createWorkspaceOperation(params) {
948
993
  const vid = lastUpdated.replace(/[-:T.Z]/g, "").slice(0, 12) || Date.now().toString(36);
949
994
  const parsedResource = typeof body.resource === "string" ? JSON.parse(body.resource) : body.resource ?? {};
950
995
  const resource = { resourceType: "Workspace", id, ...parsedResource };
951
- const summary = JSON.stringify((0, import_types7.extractSummary)(resource));
996
+ const summary = JSON.stringify((0, import_types8.extractSummary)(resource));
952
997
  await service.entities.workspace.put({
953
998
  tenantId,
954
999
  id,
@@ -973,7 +1018,7 @@ function idFromReference(reference, prefix) {
973
1018
  var CURRENT_SK = "CURRENT";
974
1019
  var VID = "1";
975
1020
  var summaryFor = (resource) => {
976
- return JSON.stringify((0, import_types8.extractSummary)(resource));
1021
+ return JSON.stringify((0, import_types9.extractSummary)(resource));
977
1022
  };
978
1023
  var stableOnboardingId = (kind, cognitoSub) => {
979
1024
  return (0, import_node_crypto.createHash)("sha256").update(kind).update("\0").update(cognitoSub).digest("hex").slice(0, 26).toUpperCase();