@objectstack/plugin-approvals 12.5.0 → 13.0.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @objectstack/plugin-approvals@12.5.0 build /home/runner/work/framework/framework/packages/plugins/plugin-approvals
2
+ > @objectstack/plugin-approvals@13.0.0 build /home/runner/work/framework/framework/packages/plugins/plugin-approvals
3
3
  > tsup --config ../../../tsup.config.ts
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -10,13 +10,13 @@
10
10
  CLI Cleaning output folder
11
11
  ESM Build start
12
12
  CJS Build start
13
- ESM dist/index.mjs 120.29 KB
14
- ESM dist/index.mjs.map 215.92 KB
15
- ESM ⚡️ Build success in 177ms
16
- CJS dist/index.js 121.96 KB
17
- CJS dist/index.js.map 217.12 KB
18
- CJS ⚡️ Build success in 218ms
13
+ ESM dist/index.mjs 120.30 KB
14
+ ESM dist/index.mjs.map 215.93 KB
15
+ ESM ⚡️ Build success in 318ms
16
+ CJS dist/index.js 121.97 KB
17
+ CJS dist/index.js.map 217.13 KB
18
+ CJS ⚡️ Build success in 321ms
19
19
  DTS Build start
20
- DTS ⚡️ Build success in 25544ms
21
- DTS dist/index.d.mts 379.07 KB
22
- DTS dist/index.d.ts 379.07 KB
20
+ DTS ⚡️ Build success in 17165ms
21
+ DTS dist/index.d.mts 381.76 KB
22
+ DTS dist/index.d.ts 381.76 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @objectstack/plugin-approvals
2
2
 
3
+ ## 13.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [6d83431]
8
+ - Updated dependencies [01917c2]
9
+ - Updated dependencies [b271691]
10
+ - Updated dependencies [a5a1e41]
11
+ - Updated dependencies [466adf6]
12
+ - Updated dependencies [5be00c3]
13
+ - Updated dependencies [466adf6]
14
+ - Updated dependencies [2bee609]
15
+ - Updated dependencies [9fa84f9]
16
+ - Updated dependencies [fc7e7f7]
17
+ - @objectstack/spec@13.0.0
18
+ - @objectstack/core@13.0.0
19
+ - @objectstack/formula@13.0.0
20
+ - @objectstack/platform-objects@13.0.0
21
+ - @objectstack/metadata-core@13.0.0
22
+
23
+ ## 12.6.0
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies [6cebf22]
28
+ - Updated dependencies [21420d9]
29
+ - @objectstack/spec@12.6.0
30
+ - @objectstack/core@12.6.0
31
+ - @objectstack/formula@12.6.0
32
+ - @objectstack/metadata-core@12.6.0
33
+ - @objectstack/platform-objects@12.6.0
34
+
3
35
  ## 12.5.0
4
36
 
5
37
  ### Patch Changes
@@ -343,8 +375,8 @@
343
375
  ADR-0057 — ERP authorization core. Adds permission-grant access DEPTH
344
376
  (`own`/`own_and_reports`/`unit`/`unit_and_below`/`org`), renames `sys_department`
345
377
  → `sys_business_unit` (no aliases — see BREAKING above), introduces the platform-owned
346
- `sys_user_role` assignment, and seeds stack-declared `roles`/`sharingRules` into
347
- `sys_role`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are
378
+ `sys_user_position` assignment, and seeds stack-declared `roles`/`sharingRules` into
379
+ `sys_position`/`sys_sharing_rule` at boot (closes #2077). Hierarchy-relative scopes are
348
380
  delegated to a pluggable `IHierarchyScopeResolver` (open edition fails closed to
349
381
  owner-only; `defineStack` errors without `requires: ['hierarchy-security']`). Also
350
382
  fixes a latent over-grant where `engine.find({ filter })` was ignored (driver reads
@@ -753,8 +785,8 @@
753
785
  `i18n.loadTranslations` (the i18n service is optional — load is best-effort).
754
786
  - `plugin-webhooks` ← `sys_webhook`, `sys_webhook_delivery`
755
787
  - `plugin-approvals` ← `sys_approval_request`, `sys_approval_action`
756
- - `plugin-security` ← `sys_role`, `sys_permission_set`,
757
- `sys_user_permission_set`, `sys_role_permission_set`
788
+ - `plugin-security` ← `sys_position`, `sys_permission_set`,
789
+ `sys_user_permission_set`, `sys_position_permission_set`
758
790
  - `plugin-sharing` ← `sys_record_share`, `sys_sharing_rule`, `sys_share_link`
759
791
  - `@objectstack/platform-objects` translation bundles are regenerated to drop
760
792
  those objects' keys (its extract config already excluded them); all other
package/dist/index.d.mts CHANGED
@@ -320,7 +320,12 @@ declare const SysApprovalRequest: Omit<{
320
320
  access?: {
321
321
  default: "public" | "private";
322
322
  } | undefined;
323
- requiredPermissions?: string[] | undefined;
323
+ requiredPermissions?: string[] | {
324
+ read?: string[] | undefined;
325
+ create?: string[] | undefined;
326
+ update?: string[] | undefined;
327
+ delete?: string[] | undefined;
328
+ } | undefined;
324
329
  softDelete?: {
325
330
  enabled: boolean;
326
331
  field: string;
@@ -634,6 +639,21 @@ declare const SysApprovalRequest: Omit<{
634
639
  pageSize?: number | undefined;
635
640
  debounceMs?: number | undefined;
636
641
  } | undefined;
642
+ userFilters?: {
643
+ element: "toggle" | "dropdown";
644
+ fields?: {
645
+ field: string;
646
+ label?: string | undefined;
647
+ type?: "boolean" | "text" | "select" | "multi-select" | "date-range" | undefined;
648
+ options?: {
649
+ value: string | number | boolean;
650
+ label: string;
651
+ color?: string | undefined;
652
+ }[] | undefined;
653
+ showCount?: boolean | undefined;
654
+ defaultValues?: (string | number | boolean)[] | undefined;
655
+ }[] | undefined;
656
+ } | undefined;
637
657
  }> | undefined;
638
658
  searchableFields?: string[] | undefined;
639
659
  search?: {
@@ -651,9 +671,10 @@ declare const SysApprovalRequest: Omit<{
651
671
  trash: boolean;
652
672
  mru: boolean;
653
673
  clone: boolean;
654
- apiMethods?: ("search" | "create" | "import" | "delete" | "get" | "update" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
674
+ apiMethods?: ("search" | "create" | "import" | "delete" | "update" | "get" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
655
675
  } | undefined;
656
- sharingModel?: "full" | "private" | "read" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
676
+ sharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
677
+ externalSharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
657
678
  publicSharing?: {
658
679
  enabled: boolean;
659
680
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -702,6 +723,7 @@ declare const SysApprovalRequest: Omit<{
702
723
  defaultFromRow?: boolean | undefined;
703
724
  }[] | undefined;
704
725
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
726
+ order?: number | undefined;
705
727
  confirmText?: string | undefined;
706
728
  successMessage?: string | undefined;
707
729
  errorMessage?: string | undefined;
@@ -4491,7 +4513,12 @@ declare const SysApprovalAction: Omit<{
4491
4513
  access?: {
4492
4514
  default: "public" | "private";
4493
4515
  } | undefined;
4494
- requiredPermissions?: string[] | undefined;
4516
+ requiredPermissions?: string[] | {
4517
+ read?: string[] | undefined;
4518
+ create?: string[] | undefined;
4519
+ update?: string[] | undefined;
4520
+ delete?: string[] | undefined;
4521
+ } | undefined;
4495
4522
  softDelete?: {
4496
4523
  enabled: boolean;
4497
4524
  field: string;
@@ -4805,6 +4832,21 @@ declare const SysApprovalAction: Omit<{
4805
4832
  pageSize?: number | undefined;
4806
4833
  debounceMs?: number | undefined;
4807
4834
  } | undefined;
4835
+ userFilters?: {
4836
+ element: "toggle" | "dropdown";
4837
+ fields?: {
4838
+ field: string;
4839
+ label?: string | undefined;
4840
+ type?: "boolean" | "text" | "select" | "multi-select" | "date-range" | undefined;
4841
+ options?: {
4842
+ value: string | number | boolean;
4843
+ label: string;
4844
+ color?: string | undefined;
4845
+ }[] | undefined;
4846
+ showCount?: boolean | undefined;
4847
+ defaultValues?: (string | number | boolean)[] | undefined;
4848
+ }[] | undefined;
4849
+ } | undefined;
4808
4850
  }> | undefined;
4809
4851
  searchableFields?: string[] | undefined;
4810
4852
  search?: {
@@ -4822,9 +4864,10 @@ declare const SysApprovalAction: Omit<{
4822
4864
  trash: boolean;
4823
4865
  mru: boolean;
4824
4866
  clone: boolean;
4825
- apiMethods?: ("search" | "create" | "import" | "delete" | "get" | "update" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
4867
+ apiMethods?: ("search" | "create" | "import" | "delete" | "update" | "get" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
4826
4868
  } | undefined;
4827
- sharingModel?: "full" | "private" | "read" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
4869
+ sharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
4870
+ externalSharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
4828
4871
  publicSharing?: {
4829
4872
  enabled: boolean;
4830
4873
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -4873,6 +4916,7 @@ declare const SysApprovalAction: Omit<{
4873
4916
  defaultFromRow?: boolean | undefined;
4874
4917
  }[] | undefined;
4875
4918
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
4919
+ order?: number | undefined;
4876
4920
  confirmText?: string | undefined;
4877
4921
  successMessage?: string | undefined;
4878
4922
  errorMessage?: string | undefined;
@@ -6996,7 +7040,12 @@ declare const SysApprovalApprover: Omit<{
6996
7040
  access?: {
6997
7041
  default: "public" | "private";
6998
7042
  } | undefined;
6999
- requiredPermissions?: string[] | undefined;
7043
+ requiredPermissions?: string[] | {
7044
+ read?: string[] | undefined;
7045
+ create?: string[] | undefined;
7046
+ update?: string[] | undefined;
7047
+ delete?: string[] | undefined;
7048
+ } | undefined;
7000
7049
  softDelete?: {
7001
7050
  enabled: boolean;
7002
7051
  field: string;
@@ -7310,6 +7359,21 @@ declare const SysApprovalApprover: Omit<{
7310
7359
  pageSize?: number | undefined;
7311
7360
  debounceMs?: number | undefined;
7312
7361
  } | undefined;
7362
+ userFilters?: {
7363
+ element: "toggle" | "dropdown";
7364
+ fields?: {
7365
+ field: string;
7366
+ label?: string | undefined;
7367
+ type?: "boolean" | "text" | "select" | "multi-select" | "date-range" | undefined;
7368
+ options?: {
7369
+ value: string | number | boolean;
7370
+ label: string;
7371
+ color?: string | undefined;
7372
+ }[] | undefined;
7373
+ showCount?: boolean | undefined;
7374
+ defaultValues?: (string | number | boolean)[] | undefined;
7375
+ }[] | undefined;
7376
+ } | undefined;
7313
7377
  }> | undefined;
7314
7378
  searchableFields?: string[] | undefined;
7315
7379
  search?: {
@@ -7327,9 +7391,10 @@ declare const SysApprovalApprover: Omit<{
7327
7391
  trash: boolean;
7328
7392
  mru: boolean;
7329
7393
  clone: boolean;
7330
- apiMethods?: ("search" | "create" | "import" | "delete" | "get" | "update" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
7394
+ apiMethods?: ("search" | "create" | "import" | "delete" | "update" | "get" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
7331
7395
  } | undefined;
7332
- sharingModel?: "full" | "private" | "read" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
7396
+ sharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
7397
+ externalSharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
7333
7398
  publicSharing?: {
7334
7399
  enabled: boolean;
7335
7400
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -7378,6 +7443,7 @@ declare const SysApprovalApprover: Omit<{
7378
7443
  defaultFromRow?: boolean | undefined;
7379
7444
  }[] | undefined;
7380
7445
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
7446
+ order?: number | undefined;
7381
7447
  confirmText?: string | undefined;
7382
7448
  successMessage?: string | undefined;
7383
7449
  errorMessage?: string | undefined;
package/dist/index.d.ts CHANGED
@@ -320,7 +320,12 @@ declare const SysApprovalRequest: Omit<{
320
320
  access?: {
321
321
  default: "public" | "private";
322
322
  } | undefined;
323
- requiredPermissions?: string[] | undefined;
323
+ requiredPermissions?: string[] | {
324
+ read?: string[] | undefined;
325
+ create?: string[] | undefined;
326
+ update?: string[] | undefined;
327
+ delete?: string[] | undefined;
328
+ } | undefined;
324
329
  softDelete?: {
325
330
  enabled: boolean;
326
331
  field: string;
@@ -634,6 +639,21 @@ declare const SysApprovalRequest: Omit<{
634
639
  pageSize?: number | undefined;
635
640
  debounceMs?: number | undefined;
636
641
  } | undefined;
642
+ userFilters?: {
643
+ element: "toggle" | "dropdown";
644
+ fields?: {
645
+ field: string;
646
+ label?: string | undefined;
647
+ type?: "boolean" | "text" | "select" | "multi-select" | "date-range" | undefined;
648
+ options?: {
649
+ value: string | number | boolean;
650
+ label: string;
651
+ color?: string | undefined;
652
+ }[] | undefined;
653
+ showCount?: boolean | undefined;
654
+ defaultValues?: (string | number | boolean)[] | undefined;
655
+ }[] | undefined;
656
+ } | undefined;
637
657
  }> | undefined;
638
658
  searchableFields?: string[] | undefined;
639
659
  search?: {
@@ -651,9 +671,10 @@ declare const SysApprovalRequest: Omit<{
651
671
  trash: boolean;
652
672
  mru: boolean;
653
673
  clone: boolean;
654
- apiMethods?: ("search" | "create" | "import" | "delete" | "get" | "update" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
674
+ apiMethods?: ("search" | "create" | "import" | "delete" | "update" | "get" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
655
675
  } | undefined;
656
- sharingModel?: "full" | "private" | "read" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
676
+ sharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
677
+ externalSharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
657
678
  publicSharing?: {
658
679
  enabled: boolean;
659
680
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -702,6 +723,7 @@ declare const SysApprovalRequest: Omit<{
702
723
  defaultFromRow?: boolean | undefined;
703
724
  }[] | undefined;
704
725
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
726
+ order?: number | undefined;
705
727
  confirmText?: string | undefined;
706
728
  successMessage?: string | undefined;
707
729
  errorMessage?: string | undefined;
@@ -4491,7 +4513,12 @@ declare const SysApprovalAction: Omit<{
4491
4513
  access?: {
4492
4514
  default: "public" | "private";
4493
4515
  } | undefined;
4494
- requiredPermissions?: string[] | undefined;
4516
+ requiredPermissions?: string[] | {
4517
+ read?: string[] | undefined;
4518
+ create?: string[] | undefined;
4519
+ update?: string[] | undefined;
4520
+ delete?: string[] | undefined;
4521
+ } | undefined;
4495
4522
  softDelete?: {
4496
4523
  enabled: boolean;
4497
4524
  field: string;
@@ -4805,6 +4832,21 @@ declare const SysApprovalAction: Omit<{
4805
4832
  pageSize?: number | undefined;
4806
4833
  debounceMs?: number | undefined;
4807
4834
  } | undefined;
4835
+ userFilters?: {
4836
+ element: "toggle" | "dropdown";
4837
+ fields?: {
4838
+ field: string;
4839
+ label?: string | undefined;
4840
+ type?: "boolean" | "text" | "select" | "multi-select" | "date-range" | undefined;
4841
+ options?: {
4842
+ value: string | number | boolean;
4843
+ label: string;
4844
+ color?: string | undefined;
4845
+ }[] | undefined;
4846
+ showCount?: boolean | undefined;
4847
+ defaultValues?: (string | number | boolean)[] | undefined;
4848
+ }[] | undefined;
4849
+ } | undefined;
4808
4850
  }> | undefined;
4809
4851
  searchableFields?: string[] | undefined;
4810
4852
  search?: {
@@ -4822,9 +4864,10 @@ declare const SysApprovalAction: Omit<{
4822
4864
  trash: boolean;
4823
4865
  mru: boolean;
4824
4866
  clone: boolean;
4825
- apiMethods?: ("search" | "create" | "import" | "delete" | "get" | "update" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
4867
+ apiMethods?: ("search" | "create" | "import" | "delete" | "update" | "get" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
4826
4868
  } | undefined;
4827
- sharingModel?: "full" | "private" | "read" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
4869
+ sharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
4870
+ externalSharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
4828
4871
  publicSharing?: {
4829
4872
  enabled: boolean;
4830
4873
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -4873,6 +4916,7 @@ declare const SysApprovalAction: Omit<{
4873
4916
  defaultFromRow?: boolean | undefined;
4874
4917
  }[] | undefined;
4875
4918
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
4919
+ order?: number | undefined;
4876
4920
  confirmText?: string | undefined;
4877
4921
  successMessage?: string | undefined;
4878
4922
  errorMessage?: string | undefined;
@@ -6996,7 +7040,12 @@ declare const SysApprovalApprover: Omit<{
6996
7040
  access?: {
6997
7041
  default: "public" | "private";
6998
7042
  } | undefined;
6999
- requiredPermissions?: string[] | undefined;
7043
+ requiredPermissions?: string[] | {
7044
+ read?: string[] | undefined;
7045
+ create?: string[] | undefined;
7046
+ update?: string[] | undefined;
7047
+ delete?: string[] | undefined;
7048
+ } | undefined;
7000
7049
  softDelete?: {
7001
7050
  enabled: boolean;
7002
7051
  field: string;
@@ -7310,6 +7359,21 @@ declare const SysApprovalApprover: Omit<{
7310
7359
  pageSize?: number | undefined;
7311
7360
  debounceMs?: number | undefined;
7312
7361
  } | undefined;
7362
+ userFilters?: {
7363
+ element: "toggle" | "dropdown";
7364
+ fields?: {
7365
+ field: string;
7366
+ label?: string | undefined;
7367
+ type?: "boolean" | "text" | "select" | "multi-select" | "date-range" | undefined;
7368
+ options?: {
7369
+ value: string | number | boolean;
7370
+ label: string;
7371
+ color?: string | undefined;
7372
+ }[] | undefined;
7373
+ showCount?: boolean | undefined;
7374
+ defaultValues?: (string | number | boolean)[] | undefined;
7375
+ }[] | undefined;
7376
+ } | undefined;
7313
7377
  }> | undefined;
7314
7378
  searchableFields?: string[] | undefined;
7315
7379
  search?: {
@@ -7327,9 +7391,10 @@ declare const SysApprovalApprover: Omit<{
7327
7391
  trash: boolean;
7328
7392
  mru: boolean;
7329
7393
  clone: boolean;
7330
- apiMethods?: ("search" | "create" | "import" | "delete" | "get" | "update" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
7394
+ apiMethods?: ("search" | "create" | "import" | "delete" | "update" | "get" | "upsert" | "list" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
7331
7395
  } | undefined;
7332
- sharingModel?: "full" | "private" | "read" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
7396
+ sharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
7397
+ externalSharingModel?: "private" | "public_read" | "public_read_write" | "controlled_by_parent" | undefined;
7333
7398
  publicSharing?: {
7334
7399
  enabled: boolean;
7335
7400
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -7378,6 +7443,7 @@ declare const SysApprovalApprover: Omit<{
7378
7443
  defaultFromRow?: boolean | undefined;
7379
7444
  }[] | undefined;
7380
7445
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
7446
+ order?: number | undefined;
7381
7447
  confirmText?: string | undefined;
7382
7448
  successMessage?: string | undefined;
7383
7449
  errorMessage?: string | undefined;
package/dist/index.js CHANGED
@@ -1029,7 +1029,7 @@ var ESCALATION_JOB_NAME = "approvals-sla-escalation";
1029
1029
  var ESCALATION_SCAN_INTERVAL_MS = 5 * 60 * 1e3;
1030
1030
  var SLA_ACTOR_ID = "system:sla";
1031
1031
  var ACTION_TOKEN_TTL_MS = 72 * 60 * 60 * 1e3;
1032
- var SYSTEM_CTX = { isSystem: true, roles: [], permissions: [] };
1032
+ var SYSTEM_CTX = { isSystem: true, positions: [], permissions: [] };
1033
1033
  function uid(prefix) {
1034
1034
  const g = globalThis;
1035
1035
  if (g.crypto?.randomUUID) return `${prefix}_${g.crypto.randomUUID()}`;
@@ -2937,7 +2937,7 @@ function unbindAllHooks(engine) {
2937
2937
 
2938
2938
  // src/approval-node.ts
2939
2939
  var import_automation2 = require("@objectstack/spec/automation");
2940
- var SYSTEM_CTX2 = { isSystem: true, roles: [], permissions: [] };
2940
+ var SYSTEM_CTX2 = { isSystem: true, positions: [], permissions: [] };
2941
2941
  function registerApprovalNode(automation, service, logger) {
2942
2942
  automation.registerNodeExecutor({
2943
2943
  type: import_automation2.APPROVAL_NODE_TYPE,