@naylence/runtime 0.4.8 → 0.4.10

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.
@@ -525,12 +525,12 @@ async function ensureRuntimeFactoriesRegistered(registry = factory.Registry) {
525
525
  }
526
526
 
527
527
  // This file is auto-generated during build - do not edit manually
528
- // Generated from package.json version: 0.4.8
528
+ // Generated from package.json version: 0.4.10
529
529
  /**
530
530
  * The package version, injected at build time.
531
531
  * @internal
532
532
  */
533
- const VERSION = '0.4.8';
533
+ const VERSION = '0.4.10';
534
534
 
535
535
  let initialized = false;
536
536
  const runtimePlugin = {
@@ -14219,9 +14219,8 @@ function requiresCryptoProvider(config) {
14219
14219
  const profile = record.profile;
14220
14220
  if (typeof profile === 'string') {
14221
14221
  const profileLower = profile.toLowerCase();
14222
- // Overlay variants require crypto provider for envelope signing
14223
- if (profileLower.includes('overlay') ||
14224
- profileLower === 'strict-overlay') {
14222
+ // Overlay variants (including strict-overlay) require crypto provider for envelope signing
14223
+ if (profileLower.includes('overlay')) {
14225
14224
  return true;
14226
14225
  }
14227
14226
  }
@@ -22237,7 +22236,7 @@ const KNOWN_RULE_FIELDS = new Set([
22237
22236
  'effect',
22238
22237
  'action',
22239
22238
  'address',
22240
- 'frame_type',
22239
+ 'frame_type', // Reserved for advanced-security
22241
22240
  'origin_type',
22242
22241
  'scope',
22243
22242
  'when', // Reserved for advanced-security
@@ -22760,11 +22759,6 @@ class BasicAuthorizationPolicy {
22760
22759
  const resolvedActionNormalized = this.normalizeActionToken(resolvedAction) ?? resolvedAction;
22761
22760
  const address = extractAddress(envelope);
22762
22761
  const grantedScopes = extractGrantedScopes(context);
22763
- const rawFrameType = envelope.frame
22764
- ?.type;
22765
- const frameTypeNormalized = typeof rawFrameType === 'string' && rawFrameType.trim().length > 0
22766
- ? rawFrameType.trim().toLowerCase()
22767
- : '';
22768
22762
  // Extract and normalize origin type for rule matching
22769
22763
  const rawOriginType = context?.originType;
22770
22764
  const originTypeNormalized = typeof rawOriginType === 'string'
@@ -22782,22 +22776,16 @@ class BasicAuthorizationPolicy {
22782
22776
  step.expression = 'when clause (skipped by basic policy)';
22783
22777
  step.result = false;
22784
22778
  evaluationTrace.push(step);
22779
+ logger$J.debug('rule_skipped_when_clause', { ruleId: rule.id });
22785
22780
  continue;
22786
22781
  }
22787
- // Check frame type match
22788
- if (rule.frameTypes) {
22789
- if (!frameTypeNormalized) {
22790
- step.expression = 'frame_type: missing';
22791
- step.result = false;
22792
- evaluationTrace.push(step);
22793
- continue;
22794
- }
22795
- if (!rule.frameTypes.has(frameTypeNormalized)) {
22796
- step.expression = `frame_type: ${rawFrameType ?? 'unknown'} not in rule set`;
22797
- step.result = false;
22798
- evaluationTrace.push(step);
22799
- continue;
22800
- }
22782
+ // Skip rules with 'frame_type' clause (reserved for advanced-security package)
22783
+ if (rule.hasFrameTypeClause) {
22784
+ step.expression = 'frame_type clause (skipped by basic policy)';
22785
+ step.result = false;
22786
+ evaluationTrace.push(step);
22787
+ logger$J.debug('rule_skipped_frame_type_clause', { ruleId: rule.id });
22788
+ continue;
22801
22789
  }
22802
22790
  // Check origin type match (early gate for efficiency)
22803
22791
  if (rule.originTypes) {
@@ -22912,8 +22900,14 @@ class BasicAuthorizationPolicy {
22912
22900
  const actions = this.compileActions(rule.action, id);
22913
22901
  // Compile address patterns (glob-only, no regex)
22914
22902
  const addressPatterns = this.compileAddress(rule.address, id);
22915
- // Compile frame type gating
22916
- const frameTypes = this.compileFrameTypes(rule.frame_type, id);
22903
+ // Check for frame_type clause (reserved for advanced-security)
22904
+ const hasFrameTypeClause = rule.frame_type !== undefined;
22905
+ if (hasFrameTypeClause && warnOnUnknown) {
22906
+ logger$J.warning('reserved_field_frame_type_will_be_skipped', {
22907
+ ruleId: id,
22908
+ message: `Rule "${id}" uses reserved field "frame_type" which is only supported in advanced-security package. This rule will be skipped during evaluation.`,
22909
+ });
22910
+ }
22917
22911
  // Compile origin type gating
22918
22912
  const originTypes = this.compileOriginTypes(rule.origin_type, id);
22919
22913
  // Compile scope matcher (glob-only, no regex)
@@ -22940,11 +22934,12 @@ class BasicAuthorizationPolicy {
22940
22934
  description: rule.description,
22941
22935
  effect: rule.effect,
22942
22936
  actions,
22943
- frameTypes,
22937
+ frameTypes: undefined, // No longer used; reserved for advanced-security
22944
22938
  originTypes,
22945
22939
  addressPatterns,
22946
22940
  scopeMatcher,
22947
22941
  hasWhenClause: typeof rule.when === 'string' && rule.when.length > 0,
22942
+ hasFrameTypeClause,
22948
22943
  };
22949
22944
  }
22950
22945
  /**
@@ -23034,43 +23029,6 @@ class BasicAuthorizationPolicy {
23034
23029
  }
23035
23030
  return patterns;
23036
23031
  }
23037
- /**
23038
- * Compiles frame_type field into a Set of normalized frame types.
23039
- * Supports single string or array of strings (implicit any-of).
23040
- * Returns undefined if not specified (no frame type gating).
23041
- */
23042
- compileFrameTypes(frameType, ruleId) {
23043
- if (frameType === undefined) {
23044
- return undefined;
23045
- }
23046
- // Handle single frame type
23047
- if (typeof frameType === 'string') {
23048
- const normalized = frameType.trim().toLowerCase();
23049
- if (!normalized) {
23050
- throw new Error(`Invalid frame_type in rule "${ruleId}": value must not be empty`);
23051
- }
23052
- return new Set([normalized]);
23053
- }
23054
- // Handle array of frame types
23055
- if (!Array.isArray(frameType)) {
23056
- throw new Error(`Invalid frame_type in rule "${ruleId}": must be a string or array of strings`);
23057
- }
23058
- if (frameType.length === 0) {
23059
- throw new Error(`Invalid frame_type in rule "${ruleId}": array must not be empty`);
23060
- }
23061
- const frameTypes = new Set();
23062
- for (const ft of frameType) {
23063
- if (typeof ft !== 'string') {
23064
- throw new Error(`Invalid frame_type in rule "${ruleId}": all values must be strings`);
23065
- }
23066
- const normalized = ft.trim().toLowerCase();
23067
- if (!normalized) {
23068
- throw new Error(`Invalid frame_type in rule "${ruleId}": values must not be empty`);
23069
- }
23070
- frameTypes.add(normalized);
23071
- }
23072
- return frameTypes;
23073
- }
23074
23032
  /**
23075
23033
  * Compiles origin_type field into a Set of normalized origin types.
23076
23034
  * Supports single string or array of strings (implicit any-of).
@@ -29724,61 +29682,11 @@ const ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE = 'FAME_JWT_REVERSE_AUTH_AUDIENCE';
29724
29682
  const ENV_VAR_ENFORCE_TOKEN_SUBJECT_NODE_IDENTITY = 'FAME_ENFORCE_TOKEN_SUBJECT_NODE_IDENTITY';
29725
29683
  const ENV_VAR_TRUSTED_CLIENT_SCOPE = 'FAME_TRUSTED_CLIENT_SCOPE';
29726
29684
  const ENV_VAR_AUTHORIZATION_PROFILE = 'FAME_AUTHORIZATION_PROFILE';
29727
- const PROFILE_NAME_STRICT_OVERLAY = 'strict-overlay';
29728
29685
  const PROFILE_NAME_OVERLAY = 'overlay';
29729
29686
  const PROFILE_NAME_OVERLAY_CALLBACK = 'overlay-callback';
29730
29687
  const PROFILE_NAME_GATED = 'gated';
29731
29688
  const PROFILE_NAME_GATED_CALLBACK = 'gated-callback';
29732
29689
  const PROFILE_NAME_OPEN$1 = 'open';
29733
- const STRICT_OVERLAY_PROFILE = {
29734
- type: 'DefaultSecurityManager',
29735
- security_policy: {
29736
- type: 'DefaultSecurityPolicy',
29737
- signing: {
29738
- signing_material: 'x509-chain',
29739
- require_cert_sid_match: true,
29740
- inbound: {
29741
- signature_policy: 'required',
29742
- unsigned_violation_action: 'nack',
29743
- invalid_signature_action: 'nack',
29744
- },
29745
- response: {
29746
- mirror_request_signing: true,
29747
- always_sign_responses: false,
29748
- sign_error_responses: true,
29749
- },
29750
- outbound: {
29751
- default_signing: true,
29752
- sign_sensitive_operations: true,
29753
- sign_if_recipient_expects: true,
29754
- },
29755
- },
29756
- encryption: {
29757
- inbound: {
29758
- allow_plaintext: true,
29759
- allow_channel: true,
29760
- allow_sealed: true,
29761
- plaintext_violation_action: 'nack',
29762
- channel_violation_action: 'nack',
29763
- sealed_violation_action: 'nack',
29764
- },
29765
- response: {
29766
- mirror_request_level: true,
29767
- minimum_response_level: 'plaintext',
29768
- escalate_sealed_responses: false,
29769
- },
29770
- outbound: {
29771
- default_level: factory.Expressions.env(ENV_VAR_DEFAULT_ENCRYPTION_LEVEL, 'channel'),
29772
- escalate_if_peer_supports: false,
29773
- prefer_sealed_for_sensitive: false,
29774
- },
29775
- },
29776
- },
29777
- authorizer: {
29778
- type: 'AuthorizationProfile',
29779
- profile: factory.Expressions.env(ENV_VAR_AUTHORIZATION_PROFILE, 'jwt'),
29780
- },
29781
- };
29782
29690
  const OVERLAY_PROFILE = {
29783
29691
  type: 'DefaultSecurityManager',
29784
29692
  security_policy: {
@@ -29981,7 +29889,6 @@ const OPEN_PROFILE$1 = {
29981
29889
  };
29982
29890
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_OVERLAY, OVERLAY_PROFILE, { source: 'node-security-profile-factory' });
29983
29891
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_OVERLAY_CALLBACK, OVERLAY_CALLBACK_PROFILE, { source: 'node-security-profile-factory' });
29984
- registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_STRICT_OVERLAY, STRICT_OVERLAY_PROFILE, { source: 'node-security-profile-factory' });
29985
29892
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_GATED, GATED_PROFILE, { source: 'node-security-profile-factory' });
29986
29893
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_GATED_CALLBACK, GATED_CALLBACK_PROFILE, { source: 'node-security-profile-factory' });
29987
29894
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_OPEN$1, OPEN_PROFILE$1, { source: 'node-security-profile-factory' });
@@ -30118,7 +30025,6 @@ var nodeSecurityProfileFactory = /*#__PURE__*/Object.freeze({
30118
30025
  PROFILE_NAME_OPEN: PROFILE_NAME_OPEN$1,
30119
30026
  PROFILE_NAME_OVERLAY: PROFILE_NAME_OVERLAY,
30120
30027
  PROFILE_NAME_OVERLAY_CALLBACK: PROFILE_NAME_OVERLAY_CALLBACK,
30121
- PROFILE_NAME_STRICT_OVERLAY: PROFILE_NAME_STRICT_OVERLAY,
30122
30028
  default: NodeSecurityProfileFactory
30123
30029
  });
30124
30030
 
@@ -43996,7 +43902,6 @@ exports.PROFILE_NAME_GATED_CALLBACK = PROFILE_NAME_GATED_CALLBACK;
43996
43902
  exports.PROFILE_NAME_OPEN = PROFILE_NAME_OPEN$1;
43997
43903
  exports.PROFILE_NAME_OVERLAY = PROFILE_NAME_OVERLAY;
43998
43904
  exports.PROFILE_NAME_OVERLAY_CALLBACK = PROFILE_NAME_OVERLAY_CALLBACK;
43999
- exports.PROFILE_NAME_STRICT_OVERLAY = PROFILE_NAME_STRICT_OVERLAY;
44000
43905
  exports.PromptCredentialProvider = PromptCredentialProvider;
44001
43906
  exports.REPLICA_STICKINESS_MANAGER_FACTORY_BASE_TYPE = REPLICA_STICKINESS_MANAGER_FACTORY_BASE_TYPE;
44002
43907
  exports.REQUIRED_FIELDS_BY_KTY = REQUIRED_FIELDS_BY_KTY;
@@ -523,12 +523,12 @@ async function ensureRuntimeFactoriesRegistered(registry = Registry) {
523
523
  }
524
524
 
525
525
  // This file is auto-generated during build - do not edit manually
526
- // Generated from package.json version: 0.4.8
526
+ // Generated from package.json version: 0.4.10
527
527
  /**
528
528
  * The package version, injected at build time.
529
529
  * @internal
530
530
  */
531
- const VERSION = '0.4.8';
531
+ const VERSION = '0.4.10';
532
532
 
533
533
  let initialized = false;
534
534
  const runtimePlugin = {
@@ -14217,9 +14217,8 @@ function requiresCryptoProvider(config) {
14217
14217
  const profile = record.profile;
14218
14218
  if (typeof profile === 'string') {
14219
14219
  const profileLower = profile.toLowerCase();
14220
- // Overlay variants require crypto provider for envelope signing
14221
- if (profileLower.includes('overlay') ||
14222
- profileLower === 'strict-overlay') {
14220
+ // Overlay variants (including strict-overlay) require crypto provider for envelope signing
14221
+ if (profileLower.includes('overlay')) {
14223
14222
  return true;
14224
14223
  }
14225
14224
  }
@@ -22235,7 +22234,7 @@ const KNOWN_RULE_FIELDS = new Set([
22235
22234
  'effect',
22236
22235
  'action',
22237
22236
  'address',
22238
- 'frame_type',
22237
+ 'frame_type', // Reserved for advanced-security
22239
22238
  'origin_type',
22240
22239
  'scope',
22241
22240
  'when', // Reserved for advanced-security
@@ -22758,11 +22757,6 @@ class BasicAuthorizationPolicy {
22758
22757
  const resolvedActionNormalized = this.normalizeActionToken(resolvedAction) ?? resolvedAction;
22759
22758
  const address = extractAddress(envelope);
22760
22759
  const grantedScopes = extractGrantedScopes(context);
22761
- const rawFrameType = envelope.frame
22762
- ?.type;
22763
- const frameTypeNormalized = typeof rawFrameType === 'string' && rawFrameType.trim().length > 0
22764
- ? rawFrameType.trim().toLowerCase()
22765
- : '';
22766
22760
  // Extract and normalize origin type for rule matching
22767
22761
  const rawOriginType = context?.originType;
22768
22762
  const originTypeNormalized = typeof rawOriginType === 'string'
@@ -22780,22 +22774,16 @@ class BasicAuthorizationPolicy {
22780
22774
  step.expression = 'when clause (skipped by basic policy)';
22781
22775
  step.result = false;
22782
22776
  evaluationTrace.push(step);
22777
+ logger$J.debug('rule_skipped_when_clause', { ruleId: rule.id });
22783
22778
  continue;
22784
22779
  }
22785
- // Check frame type match
22786
- if (rule.frameTypes) {
22787
- if (!frameTypeNormalized) {
22788
- step.expression = 'frame_type: missing';
22789
- step.result = false;
22790
- evaluationTrace.push(step);
22791
- continue;
22792
- }
22793
- if (!rule.frameTypes.has(frameTypeNormalized)) {
22794
- step.expression = `frame_type: ${rawFrameType ?? 'unknown'} not in rule set`;
22795
- step.result = false;
22796
- evaluationTrace.push(step);
22797
- continue;
22798
- }
22780
+ // Skip rules with 'frame_type' clause (reserved for advanced-security package)
22781
+ if (rule.hasFrameTypeClause) {
22782
+ step.expression = 'frame_type clause (skipped by basic policy)';
22783
+ step.result = false;
22784
+ evaluationTrace.push(step);
22785
+ logger$J.debug('rule_skipped_frame_type_clause', { ruleId: rule.id });
22786
+ continue;
22799
22787
  }
22800
22788
  // Check origin type match (early gate for efficiency)
22801
22789
  if (rule.originTypes) {
@@ -22910,8 +22898,14 @@ class BasicAuthorizationPolicy {
22910
22898
  const actions = this.compileActions(rule.action, id);
22911
22899
  // Compile address patterns (glob-only, no regex)
22912
22900
  const addressPatterns = this.compileAddress(rule.address, id);
22913
- // Compile frame type gating
22914
- const frameTypes = this.compileFrameTypes(rule.frame_type, id);
22901
+ // Check for frame_type clause (reserved for advanced-security)
22902
+ const hasFrameTypeClause = rule.frame_type !== undefined;
22903
+ if (hasFrameTypeClause && warnOnUnknown) {
22904
+ logger$J.warning('reserved_field_frame_type_will_be_skipped', {
22905
+ ruleId: id,
22906
+ message: `Rule "${id}" uses reserved field "frame_type" which is only supported in advanced-security package. This rule will be skipped during evaluation.`,
22907
+ });
22908
+ }
22915
22909
  // Compile origin type gating
22916
22910
  const originTypes = this.compileOriginTypes(rule.origin_type, id);
22917
22911
  // Compile scope matcher (glob-only, no regex)
@@ -22938,11 +22932,12 @@ class BasicAuthorizationPolicy {
22938
22932
  description: rule.description,
22939
22933
  effect: rule.effect,
22940
22934
  actions,
22941
- frameTypes,
22935
+ frameTypes: undefined, // No longer used; reserved for advanced-security
22942
22936
  originTypes,
22943
22937
  addressPatterns,
22944
22938
  scopeMatcher,
22945
22939
  hasWhenClause: typeof rule.when === 'string' && rule.when.length > 0,
22940
+ hasFrameTypeClause,
22946
22941
  };
22947
22942
  }
22948
22943
  /**
@@ -23032,43 +23027,6 @@ class BasicAuthorizationPolicy {
23032
23027
  }
23033
23028
  return patterns;
23034
23029
  }
23035
- /**
23036
- * Compiles frame_type field into a Set of normalized frame types.
23037
- * Supports single string or array of strings (implicit any-of).
23038
- * Returns undefined if not specified (no frame type gating).
23039
- */
23040
- compileFrameTypes(frameType, ruleId) {
23041
- if (frameType === undefined) {
23042
- return undefined;
23043
- }
23044
- // Handle single frame type
23045
- if (typeof frameType === 'string') {
23046
- const normalized = frameType.trim().toLowerCase();
23047
- if (!normalized) {
23048
- throw new Error(`Invalid frame_type in rule "${ruleId}": value must not be empty`);
23049
- }
23050
- return new Set([normalized]);
23051
- }
23052
- // Handle array of frame types
23053
- if (!Array.isArray(frameType)) {
23054
- throw new Error(`Invalid frame_type in rule "${ruleId}": must be a string or array of strings`);
23055
- }
23056
- if (frameType.length === 0) {
23057
- throw new Error(`Invalid frame_type in rule "${ruleId}": array must not be empty`);
23058
- }
23059
- const frameTypes = new Set();
23060
- for (const ft of frameType) {
23061
- if (typeof ft !== 'string') {
23062
- throw new Error(`Invalid frame_type in rule "${ruleId}": all values must be strings`);
23063
- }
23064
- const normalized = ft.trim().toLowerCase();
23065
- if (!normalized) {
23066
- throw new Error(`Invalid frame_type in rule "${ruleId}": values must not be empty`);
23067
- }
23068
- frameTypes.add(normalized);
23069
- }
23070
- return frameTypes;
23071
- }
23072
23030
  /**
23073
23031
  * Compiles origin_type field into a Set of normalized origin types.
23074
23032
  * Supports single string or array of strings (implicit any-of).
@@ -29722,61 +29680,11 @@ const ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE = 'FAME_JWT_REVERSE_AUTH_AUDIENCE';
29722
29680
  const ENV_VAR_ENFORCE_TOKEN_SUBJECT_NODE_IDENTITY = 'FAME_ENFORCE_TOKEN_SUBJECT_NODE_IDENTITY';
29723
29681
  const ENV_VAR_TRUSTED_CLIENT_SCOPE = 'FAME_TRUSTED_CLIENT_SCOPE';
29724
29682
  const ENV_VAR_AUTHORIZATION_PROFILE = 'FAME_AUTHORIZATION_PROFILE';
29725
- const PROFILE_NAME_STRICT_OVERLAY = 'strict-overlay';
29726
29683
  const PROFILE_NAME_OVERLAY = 'overlay';
29727
29684
  const PROFILE_NAME_OVERLAY_CALLBACK = 'overlay-callback';
29728
29685
  const PROFILE_NAME_GATED = 'gated';
29729
29686
  const PROFILE_NAME_GATED_CALLBACK = 'gated-callback';
29730
29687
  const PROFILE_NAME_OPEN$1 = 'open';
29731
- const STRICT_OVERLAY_PROFILE = {
29732
- type: 'DefaultSecurityManager',
29733
- security_policy: {
29734
- type: 'DefaultSecurityPolicy',
29735
- signing: {
29736
- signing_material: 'x509-chain',
29737
- require_cert_sid_match: true,
29738
- inbound: {
29739
- signature_policy: 'required',
29740
- unsigned_violation_action: 'nack',
29741
- invalid_signature_action: 'nack',
29742
- },
29743
- response: {
29744
- mirror_request_signing: true,
29745
- always_sign_responses: false,
29746
- sign_error_responses: true,
29747
- },
29748
- outbound: {
29749
- default_signing: true,
29750
- sign_sensitive_operations: true,
29751
- sign_if_recipient_expects: true,
29752
- },
29753
- },
29754
- encryption: {
29755
- inbound: {
29756
- allow_plaintext: true,
29757
- allow_channel: true,
29758
- allow_sealed: true,
29759
- plaintext_violation_action: 'nack',
29760
- channel_violation_action: 'nack',
29761
- sealed_violation_action: 'nack',
29762
- },
29763
- response: {
29764
- mirror_request_level: true,
29765
- minimum_response_level: 'plaintext',
29766
- escalate_sealed_responses: false,
29767
- },
29768
- outbound: {
29769
- default_level: Expressions.env(ENV_VAR_DEFAULT_ENCRYPTION_LEVEL, 'channel'),
29770
- escalate_if_peer_supports: false,
29771
- prefer_sealed_for_sensitive: false,
29772
- },
29773
- },
29774
- },
29775
- authorizer: {
29776
- type: 'AuthorizationProfile',
29777
- profile: Expressions.env(ENV_VAR_AUTHORIZATION_PROFILE, 'jwt'),
29778
- },
29779
- };
29780
29688
  const OVERLAY_PROFILE = {
29781
29689
  type: 'DefaultSecurityManager',
29782
29690
  security_policy: {
@@ -29979,7 +29887,6 @@ const OPEN_PROFILE$1 = {
29979
29887
  };
29980
29888
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_OVERLAY, OVERLAY_PROFILE, { source: 'node-security-profile-factory' });
29981
29889
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_OVERLAY_CALLBACK, OVERLAY_CALLBACK_PROFILE, { source: 'node-security-profile-factory' });
29982
- registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_STRICT_OVERLAY, STRICT_OVERLAY_PROFILE, { source: 'node-security-profile-factory' });
29983
29890
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_GATED, GATED_PROFILE, { source: 'node-security-profile-factory' });
29984
29891
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_GATED_CALLBACK, GATED_CALLBACK_PROFILE, { source: 'node-security-profile-factory' });
29985
29892
  registerProfile(SECURITY_MANAGER_FACTORY_BASE_TYPE, PROFILE_NAME_OPEN$1, OPEN_PROFILE$1, { source: 'node-security-profile-factory' });
@@ -30116,7 +30023,6 @@ var nodeSecurityProfileFactory = /*#__PURE__*/Object.freeze({
30116
30023
  PROFILE_NAME_OPEN: PROFILE_NAME_OPEN$1,
30117
30024
  PROFILE_NAME_OVERLAY: PROFILE_NAME_OVERLAY,
30118
30025
  PROFILE_NAME_OVERLAY_CALLBACK: PROFILE_NAME_OVERLAY_CALLBACK,
30119
- PROFILE_NAME_STRICT_OVERLAY: PROFILE_NAME_STRICT_OVERLAY,
30120
30026
  default: NodeSecurityProfileFactory
30121
30027
  });
30122
30028
 
@@ -43836,4 +43742,4 @@ var otelSetup = /*#__PURE__*/Object.freeze({
43836
43742
  setupOtel: setupOtel
43837
43743
  });
43838
43744
 
43839
- export { ADMISSION_CLIENT_FACTORY_BASE_TYPE, ATTACHMENT_KEY_VALIDATOR_FACTORY_BASE_TYPE, AUTHORIZATION_POLICY_FACTORY_BASE_TYPE, AUTHORIZATION_POLICY_SOURCE_FACTORY_BASE_TYPE, AUTHORIZER_FACTORY_BASE_TYPE, AUTH_INJECTION_STRATEGY_FACTORY_BASE_TYPE, ENV_VAR_ENFORCE_TOKEN_SUBJECT_NODE_IDENTITY$1 as AUTH_PROFILE_ENV_VAR_ENFORCE_TOKEN_SUBJECT_NODE_IDENTITY, ENV_VAR_HMAC_SECRET$1 as AUTH_PROFILE_ENV_VAR_HMAC_SECRET, ENV_VAR_JWKS_URL$1 as AUTH_PROFILE_ENV_VAR_JWKS_URL, ENV_VAR_JWT_ALGORITHM$1 as AUTH_PROFILE_ENV_VAR_JWT_ALGORITHM, ENV_VAR_JWT_AUDIENCE$2 as AUTH_PROFILE_ENV_VAR_JWT_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE$1 as AUTH_PROFILE_ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_TRUSTED_ISSUER$1 as AUTH_PROFILE_ENV_VAR_JWT_REVERSE_AUTH_TRUSTED_ISSUER, ENV_VAR_JWT_TRUSTED_ISSUER$1 as AUTH_PROFILE_ENV_VAR_JWT_TRUSTED_ISSUER, ENV_VAR_TRUSTED_CLIENT_SCOPE$1 as AUTH_PROFILE_ENV_VAR_TRUSTED_CLIENT_SCOPE, PROFILE_NAME_DEFAULT as AUTH_PROFILE_NAME_DEFAULT, PROFILE_NAME_NOOP$2 as AUTH_PROFILE_NAME_NOOP, PROFILE_NAME_OAUTH2 as AUTH_PROFILE_NAME_OAUTH2, PROFILE_NAME_OAUTH2_CALLBACK as AUTH_PROFILE_NAME_OAUTH2_CALLBACK, PROFILE_NAME_OAUTH2_GATED as AUTH_PROFILE_NAME_OAUTH2_GATED, AnsiColor, AsyncLock, AttachmentKeyValidator, AuthInjectionStrategyFactory, AuthorizationPolicyFactory, AuthorizationPolicySourceFactory, AuthorizationProfileFactory, AuthorizerFactory, BROADCAST_CHANNEL_CONNECTION_GRANT_TYPE, FACTORY_META$$ as BROADCAST_CHANNEL_CONNECTOR_FACTORY_META, BROADCAST_CHANNEL_CONNECTOR_TYPE, FACTORY_META$Z as BROADCAST_CHANNEL_LISTENER_FACTORY_META, BackPressureFull, BaseAsyncConnector, BaseNodeEventListener, BasicAuthorizationPolicy, BasicAuthorizationPolicyFactory, BindingManager, BindingStoreEntryRecord, BroadcastChannelConnector, BroadcastChannelConnectorFactory, BroadcastChannelListener, BroadcastChannelListenerFactory, BrowserAutoKeyCredentialProvider, BrowserWrappedKeyCredentialProvider, CERTIFICATE_MANAGER_FACTORY_BASE_TYPE, CONNECTION_RETRY_POLICY_FACTORY_BASE_TYPE, CREDENTIAL_PROVIDER_FACTORY_BASE_TYPE, CRYPTO_LEVEL_SECURITY_ORDER, CertificateManagerFactory, ConnectionRetryPolicyFactory, ConnectorConfigDefaults, ConnectorFactory, ConsoleMetricsEmitter, CryptoLevel, FACTORY_META$11 as DEFAULT_WELCOME_FACTORY_META, DefaultConnectionRetryPolicy, DefaultConnectionRetryPolicyFactory, DefaultCryptoProvider, DefaultKeyManager, DefaultNodeIdentityPolicy, DefaultNodeIdentityPolicyFactory, DefaultSecurityManager, DefaultSecurityPolicy, DefaultWelcomeService, DefaultWelcomeServiceFactory, DevFixedKeyCredentialProvider, ENCRYPTION_MANAGER_FACTORY_BASE_TYPE, ENVELOPE_SIGNER_FACTORY_BASE_TYPE, ENVELOPE_VERIFIER_FACTORY_BASE_TYPE, ENV_VAR_AUTHORIZATION_PROFILE, ENV_VAR_DEFAULT_ENCRYPTION_LEVEL, ENV_VAR_HMAC_SECRET, ENV_VAR_JWKS_URL, ENV_VAR_JWT_ALGORITHM, ENV_VAR_JWT_AUDIENCE$1 as ENV_VAR_JWT_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_TRUSTED_ISSUER, ENV_VAR_JWT_TRUSTED_ISSUER, ENV_VAR_SESSION_MAX_INITIAL_ATTEMPTS, ENV_VAR_SHOW_ENVELOPES$1 as ENV_VAR_SHOW_ENVELOPES, EdDSAEnvelopeSigner, EncryptedKeyValueStore, EncryptedStorageProviderBase, EncryptedValue, EncryptionConfiguration, EncryptionManagerFactory, EncryptionResult, EncryptionStatus, EnvCredentialProvider, EnvelopeContext, EnvelopeListenerManager, EnvelopeSecurityHandler, EnvelopeSignerFactory, EnvelopeVerifierFactory, FACTORY_META$12 as FACTORY_META, FIXED_PREFIX_LEN, FameAuthorizedDeliveryContextSchema, FameConnectError, FameEnvironmentContext, FameError, FameMessageTooLarge, FameNode, FameNodeAuthorizationContextSchema, FameProtocolError, FameTransportClose, FlowController, GRANT_PURPOSE_NODE_ATTACH, HTTP_CONNECTION_GRANT_TYPE, HTTP_STATELESS_CONNECTOR_TYPE, INPAGE_CONNECTION_GRANT_TYPE, FACTORY_META$10 as INPAGE_CONNECTOR_FACTORY_META, INPAGE_CONNECTOR_TYPE, FACTORY_META$_ as INPAGE_LISTENER_FACTORY_META, InMemoryBinding, InMemoryFanoutBroker, InMemoryKeyValueStore, InMemoryReadWriteChannel, InMemoryStorageProvider, InPageConnector, InPageConnectorFactory, InPageListener, InPageListenerFactory, IndexedDBKeyValueStore, IndexedDBStorageProvider, InvalidPassphraseError, JWKValidationError, KEY_MANAGER_FACTORY_BASE_TYPE, KEY_STORE_FACTORY_BASE_TYPE, KNOWN_POLICY_FIELDS, KNOWN_RULE_FIELDS, KeyInfo, KeyManagementHandler, KeyManagerFactory, KeyStore, KeyStoreFactory, KeyValidationError, LOAD_BALANCER_STICKINESS_MANAGER_FACTORY_BASE_TYPE, LoadBalancerStickinessManagerFactory, LogLevel, LogLevelNames, MAX_SCOPE_NESTING_DEPTH, MemoryMetricsEmitter, NODE_IDENTITY_POLICY_FACTORY_BASE_TYPE, NODE_LIKE_FACTORY_BASE_TYPE, NODE_PLACEMENT_STRATEGY_FACTORY_BASE_TYPE, NoOpMetricsEmitter, NoSecurityPolicy, NodeFactory, NodeIdentityPolicyFactory, NodeIdentityPolicyProfileFactory, NodePlacementStrategyFactory, NoneCredentialProvider, NoopEncryptionManager, NoopKeyValidator, NoopTrustStoreProvider, NotAuthorized, PROFILE_NAME_GATED, PROFILE_NAME_GATED_CALLBACK, PROFILE_NAME_OPEN$1 as PROFILE_NAME_OPEN, PROFILE_NAME_OVERLAY, PROFILE_NAME_OVERLAY_CALLBACK, PROFILE_NAME_STRICT_OVERLAY, PromptCredentialProvider, REPLICA_STICKINESS_MANAGER_FACTORY_BASE_TYPE, REQUIRED_FIELDS_BY_KTY, ReplicaStickinessManagerFactory, RootSessionManager, RouteManager, RpcMixin, RpcProxy, SEALED_ENVELOPE_NONCE_LENGTH, SEALED_ENVELOPE_OVERHEAD, SEALED_ENVELOPE_PRIVATE_KEY_LENGTH, SEALED_ENVELOPE_PUBLIC_KEY_LENGTH, SEALED_ENVELOPE_TAG_LENGTH, SECURE_CHANNEL_MANAGER_FACTORY_BASE_TYPE, SECURITY_MANAGER_FACTORY_BASE_TYPE, SECURITY_POLICY_FACTORY_BASE_TYPE, STORAGE_PROVIDER_FACTORY_BASE_TYPE, SecretSource, SecretStoreCredentialProvider, SecureChannelFrameHandler, SecureChannelManagerFactory, SecurityAction, SecurityRequirements, Sentinel, SentinelFactory, SessionKeyCredentialProvider, SignaturePolicy, SigningConfig as SigningConfigClass, SigningConfiguration, SimpleLoadBalancerStickinessManager, SimpleLoadBalancerStickinessManagerFactory, StaticCredentialProvider, StorageAESEncryptionManager, TOKEN_ISSUER_FACTORY_BASE_TYPE, TOKEN_PROVIDER_FACTORY_BASE_TYPE, TOKEN_VERIFIER_FACTORY_BASE_TYPE, TRANSPORT_PROVISIONER_FACTORY_BASE_TYPE, TRUST_STORE_PROVIDER_FACTORY_BASE_TYPE, TaskSpawner, TokenIssuerFactory, TokenProviderFactory, TokenSubjectNodeIdentityPolicy, TokenSubjectNodeIdentityPolicyFactory, TokenVerifierFactory, TransportProvisionerFactory, TrustStoreProviderFactory, TtlValidationError, UpstreamSessionManager, VALID_ACTIONS, VALID_CURVES_BY_KTY, VALID_EFFECTS, VALID_KEY_USES, VALID_ORIGIN_TYPES, VERSION, WEBSOCKET_CONNECTION_GRANT_TYPE, WELCOME_SERVICE_FACTORY_BASE_TYPE, WebSocketCloseCode, WebSocketConnector, WebSocketState, WelcomeServiceFactory, _NoopFlowController, __runtimePluginLoader, addEnvelopeFields, addLogLevel, addTimestamp, assertConnectionGrant, assertGrant, assertNotRegexPattern, basicConfig, broadcastChannelGrantToConnectorConfig, camelToSnakeCase, canonicalJson, capitalizeFirstLetter, clearProfiles, color, compareCryptoLevels, compileGlobOnlyScopeRequirement, compileGlobPattern, compilePattern, compileScopeRequirement, compiledPathPattern, consoleTransport, convertWildcardLogicalToDnsConstraint, createConnectorConfig, createEd25519Keypair, createHostLogicalUri, createLogicalUri, createNodeDeliveryContext, createResource, createRpcProxy, createRsaKeypair, createTransportCloseError, createX25519Keypair, credentialToString, currentTraceId$1 as currentTraceId, debounce, decodeBase64Url, decodeFameDataPayload, deepMerge, defaultJsonEncoder, delay, dropEmpty, enableLogging, encodeUtf8, ensureRuntimeFactoriesRegistered, evaluateScopeRequirement, extractId, extractPoolAddressBase, extractPoolBase, filterKeysByUse, formatTimestamp, formatTimestampForConsole$1 as formatTimestampForConsole, frameDigest, getCompiledGlobPattern, getCurrentEnvelope, getFabricForNode, getFameRoot, getKeyProvider, getKeyStore, getLogger, getProfile, hasCryptoSupport, hostnameToLogical, hostnamesToLogicals, httpGrantToConnectorConfig, immutableHeaders, inPageGrantToConnectorConfig, isAuthInjectionStrategy, isBroadcastChannelConnectionGrant, isConnectionGrant, isConnectorConfig, isEnvelopeLoggingEnabled, isFameError, isFameErrorType, isGrant, isHttpConnectionGrant, isIdentityExposingTokenProvider, isInPageConnectionGrant, isNodeLike, isPlainObject$4 as isPlainObject, isPoolAddress, isPoolLogical, isRegexPattern, isRegisterable, isTokenExpired, isTokenProvider, isTokenValid, isWebSocketConnectionGrant, jsonDumps, listProfiles, logicalPatternsToDnsConstraints, logicalToHostname, logicalsToHostnames, matchPattern, matchesPoolAddress, matchesPoolLogical, maybeAwait, nodeWelcomeRouter, nodeWelcomeRouterPlugin, normalizeBroadcastChannelConnectionGrant, normalizeEncryptionConfig, normalizeEnvelopeSnapshot, normalizeHttpConnectionGrant, normalizeInPageConnectionGrant, normalizeInboundCryptoRules, normalizeInboundSigningRules, normalizeOutboundCryptoRules, normalizeOutboundSigningRules, normalizePath, normalizeResponseCryptoRules, normalizeResponseSigningRules, normalizeScopeRequirement, normalizeSecretSource, normalizeSecurityRequirements, normalizeSigningConfig, normalizeWebSocketConnectionGrant, objectToBytes, operation, parseSealedEnvelope, pinoTransport, prettyModel$1 as prettyModel, registerDefaultFactories, registerDefaultKeyStoreFactory, registerNodePlacementStrategyFactory, registerProfile, registerRuntimeFactories, requireCryptoSupport, retryWithBackoff, safeColor, safeImport, sealedDecrypt, sealedEncrypt, secureDigest, setKeyStore, showEnvelopes$1 as showEnvelopes, sleep, snakeToCamelCase, stringifyNonPrimitives, supportsColor, throttle, urlsafeBase64Decode, urlsafeBase64Encode, validateCacheTtlSec, validateEncryptionKey, validateHostLogical, validateHostLogicals, validateJwkComplete, validateJwkStructure, validateJwkUseField, validateJwtTokenTtlSec, validateKeyCorrelationTtlSec, validateLogical, validateLogicalSegment, validateOAuth2TtlSec, validateSigningKey, validateTtlSec, waitForAll, waitForAllSettled, waitForAny, websocketGrantToConnectorConfig, withEnvelopeContext, withEnvelopeContextAsync, withLegacySnakeCaseKeys, withLock, withTimeout };
43745
+ export { ADMISSION_CLIENT_FACTORY_BASE_TYPE, ATTACHMENT_KEY_VALIDATOR_FACTORY_BASE_TYPE, AUTHORIZATION_POLICY_FACTORY_BASE_TYPE, AUTHORIZATION_POLICY_SOURCE_FACTORY_BASE_TYPE, AUTHORIZER_FACTORY_BASE_TYPE, AUTH_INJECTION_STRATEGY_FACTORY_BASE_TYPE, ENV_VAR_ENFORCE_TOKEN_SUBJECT_NODE_IDENTITY$1 as AUTH_PROFILE_ENV_VAR_ENFORCE_TOKEN_SUBJECT_NODE_IDENTITY, ENV_VAR_HMAC_SECRET$1 as AUTH_PROFILE_ENV_VAR_HMAC_SECRET, ENV_VAR_JWKS_URL$1 as AUTH_PROFILE_ENV_VAR_JWKS_URL, ENV_VAR_JWT_ALGORITHM$1 as AUTH_PROFILE_ENV_VAR_JWT_ALGORITHM, ENV_VAR_JWT_AUDIENCE$2 as AUTH_PROFILE_ENV_VAR_JWT_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE$1 as AUTH_PROFILE_ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_TRUSTED_ISSUER$1 as AUTH_PROFILE_ENV_VAR_JWT_REVERSE_AUTH_TRUSTED_ISSUER, ENV_VAR_JWT_TRUSTED_ISSUER$1 as AUTH_PROFILE_ENV_VAR_JWT_TRUSTED_ISSUER, ENV_VAR_TRUSTED_CLIENT_SCOPE$1 as AUTH_PROFILE_ENV_VAR_TRUSTED_CLIENT_SCOPE, PROFILE_NAME_DEFAULT as AUTH_PROFILE_NAME_DEFAULT, PROFILE_NAME_NOOP$2 as AUTH_PROFILE_NAME_NOOP, PROFILE_NAME_OAUTH2 as AUTH_PROFILE_NAME_OAUTH2, PROFILE_NAME_OAUTH2_CALLBACK as AUTH_PROFILE_NAME_OAUTH2_CALLBACK, PROFILE_NAME_OAUTH2_GATED as AUTH_PROFILE_NAME_OAUTH2_GATED, AnsiColor, AsyncLock, AttachmentKeyValidator, AuthInjectionStrategyFactory, AuthorizationPolicyFactory, AuthorizationPolicySourceFactory, AuthorizationProfileFactory, AuthorizerFactory, BROADCAST_CHANNEL_CONNECTION_GRANT_TYPE, FACTORY_META$$ as BROADCAST_CHANNEL_CONNECTOR_FACTORY_META, BROADCAST_CHANNEL_CONNECTOR_TYPE, FACTORY_META$Z as BROADCAST_CHANNEL_LISTENER_FACTORY_META, BackPressureFull, BaseAsyncConnector, BaseNodeEventListener, BasicAuthorizationPolicy, BasicAuthorizationPolicyFactory, BindingManager, BindingStoreEntryRecord, BroadcastChannelConnector, BroadcastChannelConnectorFactory, BroadcastChannelListener, BroadcastChannelListenerFactory, BrowserAutoKeyCredentialProvider, BrowserWrappedKeyCredentialProvider, CERTIFICATE_MANAGER_FACTORY_BASE_TYPE, CONNECTION_RETRY_POLICY_FACTORY_BASE_TYPE, CREDENTIAL_PROVIDER_FACTORY_BASE_TYPE, CRYPTO_LEVEL_SECURITY_ORDER, CertificateManagerFactory, ConnectionRetryPolicyFactory, ConnectorConfigDefaults, ConnectorFactory, ConsoleMetricsEmitter, CryptoLevel, FACTORY_META$11 as DEFAULT_WELCOME_FACTORY_META, DefaultConnectionRetryPolicy, DefaultConnectionRetryPolicyFactory, DefaultCryptoProvider, DefaultKeyManager, DefaultNodeIdentityPolicy, DefaultNodeIdentityPolicyFactory, DefaultSecurityManager, DefaultSecurityPolicy, DefaultWelcomeService, DefaultWelcomeServiceFactory, DevFixedKeyCredentialProvider, ENCRYPTION_MANAGER_FACTORY_BASE_TYPE, ENVELOPE_SIGNER_FACTORY_BASE_TYPE, ENVELOPE_VERIFIER_FACTORY_BASE_TYPE, ENV_VAR_AUTHORIZATION_PROFILE, ENV_VAR_DEFAULT_ENCRYPTION_LEVEL, ENV_VAR_HMAC_SECRET, ENV_VAR_JWKS_URL, ENV_VAR_JWT_ALGORITHM, ENV_VAR_JWT_AUDIENCE$1 as ENV_VAR_JWT_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_AUDIENCE, ENV_VAR_JWT_REVERSE_AUTH_TRUSTED_ISSUER, ENV_VAR_JWT_TRUSTED_ISSUER, ENV_VAR_SESSION_MAX_INITIAL_ATTEMPTS, ENV_VAR_SHOW_ENVELOPES$1 as ENV_VAR_SHOW_ENVELOPES, EdDSAEnvelopeSigner, EncryptedKeyValueStore, EncryptedStorageProviderBase, EncryptedValue, EncryptionConfiguration, EncryptionManagerFactory, EncryptionResult, EncryptionStatus, EnvCredentialProvider, EnvelopeContext, EnvelopeListenerManager, EnvelopeSecurityHandler, EnvelopeSignerFactory, EnvelopeVerifierFactory, FACTORY_META$12 as FACTORY_META, FIXED_PREFIX_LEN, FameAuthorizedDeliveryContextSchema, FameConnectError, FameEnvironmentContext, FameError, FameMessageTooLarge, FameNode, FameNodeAuthorizationContextSchema, FameProtocolError, FameTransportClose, FlowController, GRANT_PURPOSE_NODE_ATTACH, HTTP_CONNECTION_GRANT_TYPE, HTTP_STATELESS_CONNECTOR_TYPE, INPAGE_CONNECTION_GRANT_TYPE, FACTORY_META$10 as INPAGE_CONNECTOR_FACTORY_META, INPAGE_CONNECTOR_TYPE, FACTORY_META$_ as INPAGE_LISTENER_FACTORY_META, InMemoryBinding, InMemoryFanoutBroker, InMemoryKeyValueStore, InMemoryReadWriteChannel, InMemoryStorageProvider, InPageConnector, InPageConnectorFactory, InPageListener, InPageListenerFactory, IndexedDBKeyValueStore, IndexedDBStorageProvider, InvalidPassphraseError, JWKValidationError, KEY_MANAGER_FACTORY_BASE_TYPE, KEY_STORE_FACTORY_BASE_TYPE, KNOWN_POLICY_FIELDS, KNOWN_RULE_FIELDS, KeyInfo, KeyManagementHandler, KeyManagerFactory, KeyStore, KeyStoreFactory, KeyValidationError, LOAD_BALANCER_STICKINESS_MANAGER_FACTORY_BASE_TYPE, LoadBalancerStickinessManagerFactory, LogLevel, LogLevelNames, MAX_SCOPE_NESTING_DEPTH, MemoryMetricsEmitter, NODE_IDENTITY_POLICY_FACTORY_BASE_TYPE, NODE_LIKE_FACTORY_BASE_TYPE, NODE_PLACEMENT_STRATEGY_FACTORY_BASE_TYPE, NoOpMetricsEmitter, NoSecurityPolicy, NodeFactory, NodeIdentityPolicyFactory, NodeIdentityPolicyProfileFactory, NodePlacementStrategyFactory, NoneCredentialProvider, NoopEncryptionManager, NoopKeyValidator, NoopTrustStoreProvider, NotAuthorized, PROFILE_NAME_GATED, PROFILE_NAME_GATED_CALLBACK, PROFILE_NAME_OPEN$1 as PROFILE_NAME_OPEN, PROFILE_NAME_OVERLAY, PROFILE_NAME_OVERLAY_CALLBACK, PromptCredentialProvider, REPLICA_STICKINESS_MANAGER_FACTORY_BASE_TYPE, REQUIRED_FIELDS_BY_KTY, ReplicaStickinessManagerFactory, RootSessionManager, RouteManager, RpcMixin, RpcProxy, SEALED_ENVELOPE_NONCE_LENGTH, SEALED_ENVELOPE_OVERHEAD, SEALED_ENVELOPE_PRIVATE_KEY_LENGTH, SEALED_ENVELOPE_PUBLIC_KEY_LENGTH, SEALED_ENVELOPE_TAG_LENGTH, SECURE_CHANNEL_MANAGER_FACTORY_BASE_TYPE, SECURITY_MANAGER_FACTORY_BASE_TYPE, SECURITY_POLICY_FACTORY_BASE_TYPE, STORAGE_PROVIDER_FACTORY_BASE_TYPE, SecretSource, SecretStoreCredentialProvider, SecureChannelFrameHandler, SecureChannelManagerFactory, SecurityAction, SecurityRequirements, Sentinel, SentinelFactory, SessionKeyCredentialProvider, SignaturePolicy, SigningConfig as SigningConfigClass, SigningConfiguration, SimpleLoadBalancerStickinessManager, SimpleLoadBalancerStickinessManagerFactory, StaticCredentialProvider, StorageAESEncryptionManager, TOKEN_ISSUER_FACTORY_BASE_TYPE, TOKEN_PROVIDER_FACTORY_BASE_TYPE, TOKEN_VERIFIER_FACTORY_BASE_TYPE, TRANSPORT_PROVISIONER_FACTORY_BASE_TYPE, TRUST_STORE_PROVIDER_FACTORY_BASE_TYPE, TaskSpawner, TokenIssuerFactory, TokenProviderFactory, TokenSubjectNodeIdentityPolicy, TokenSubjectNodeIdentityPolicyFactory, TokenVerifierFactory, TransportProvisionerFactory, TrustStoreProviderFactory, TtlValidationError, UpstreamSessionManager, VALID_ACTIONS, VALID_CURVES_BY_KTY, VALID_EFFECTS, VALID_KEY_USES, VALID_ORIGIN_TYPES, VERSION, WEBSOCKET_CONNECTION_GRANT_TYPE, WELCOME_SERVICE_FACTORY_BASE_TYPE, WebSocketCloseCode, WebSocketConnector, WebSocketState, WelcomeServiceFactory, _NoopFlowController, __runtimePluginLoader, addEnvelopeFields, addLogLevel, addTimestamp, assertConnectionGrant, assertGrant, assertNotRegexPattern, basicConfig, broadcastChannelGrantToConnectorConfig, camelToSnakeCase, canonicalJson, capitalizeFirstLetter, clearProfiles, color, compareCryptoLevels, compileGlobOnlyScopeRequirement, compileGlobPattern, compilePattern, compileScopeRequirement, compiledPathPattern, consoleTransport, convertWildcardLogicalToDnsConstraint, createConnectorConfig, createEd25519Keypair, createHostLogicalUri, createLogicalUri, createNodeDeliveryContext, createResource, createRpcProxy, createRsaKeypair, createTransportCloseError, createX25519Keypair, credentialToString, currentTraceId$1 as currentTraceId, debounce, decodeBase64Url, decodeFameDataPayload, deepMerge, defaultJsonEncoder, delay, dropEmpty, enableLogging, encodeUtf8, ensureRuntimeFactoriesRegistered, evaluateScopeRequirement, extractId, extractPoolAddressBase, extractPoolBase, filterKeysByUse, formatTimestamp, formatTimestampForConsole$1 as formatTimestampForConsole, frameDigest, getCompiledGlobPattern, getCurrentEnvelope, getFabricForNode, getFameRoot, getKeyProvider, getKeyStore, getLogger, getProfile, hasCryptoSupport, hostnameToLogical, hostnamesToLogicals, httpGrantToConnectorConfig, immutableHeaders, inPageGrantToConnectorConfig, isAuthInjectionStrategy, isBroadcastChannelConnectionGrant, isConnectionGrant, isConnectorConfig, isEnvelopeLoggingEnabled, isFameError, isFameErrorType, isGrant, isHttpConnectionGrant, isIdentityExposingTokenProvider, isInPageConnectionGrant, isNodeLike, isPlainObject$4 as isPlainObject, isPoolAddress, isPoolLogical, isRegexPattern, isRegisterable, isTokenExpired, isTokenProvider, isTokenValid, isWebSocketConnectionGrant, jsonDumps, listProfiles, logicalPatternsToDnsConstraints, logicalToHostname, logicalsToHostnames, matchPattern, matchesPoolAddress, matchesPoolLogical, maybeAwait, nodeWelcomeRouter, nodeWelcomeRouterPlugin, normalizeBroadcastChannelConnectionGrant, normalizeEncryptionConfig, normalizeEnvelopeSnapshot, normalizeHttpConnectionGrant, normalizeInPageConnectionGrant, normalizeInboundCryptoRules, normalizeInboundSigningRules, normalizeOutboundCryptoRules, normalizeOutboundSigningRules, normalizePath, normalizeResponseCryptoRules, normalizeResponseSigningRules, normalizeScopeRequirement, normalizeSecretSource, normalizeSecurityRequirements, normalizeSigningConfig, normalizeWebSocketConnectionGrant, objectToBytes, operation, parseSealedEnvelope, pinoTransport, prettyModel$1 as prettyModel, registerDefaultFactories, registerDefaultKeyStoreFactory, registerNodePlacementStrategyFactory, registerProfile, registerRuntimeFactories, requireCryptoSupport, retryWithBackoff, safeColor, safeImport, sealedDecrypt, sealedEncrypt, secureDigest, setKeyStore, showEnvelopes$1 as showEnvelopes, sleep, snakeToCamelCase, stringifyNonPrimitives, supportsColor, throttle, urlsafeBase64Decode, urlsafeBase64Encode, validateCacheTtlSec, validateEncryptionKey, validateHostLogical, validateHostLogicals, validateJwkComplete, validateJwkStructure, validateJwkUseField, validateJwtTokenTtlSec, validateKeyCorrelationTtlSec, validateLogical, validateLogicalSegment, validateOAuth2TtlSec, validateSigningKey, validateTtlSec, waitForAll, waitForAllSettled, waitForAny, websocketGrantToConnectorConfig, withEnvelopeContext, withEnvelopeContextAsync, withLegacySnakeCaseKeys, withLock, withTimeout };
@@ -496,9 +496,8 @@ function requiresCryptoProvider(config) {
496
496
  const profile = record.profile;
497
497
  if (typeof profile === 'string') {
498
498
  const profileLower = profile.toLowerCase();
499
- // Overlay variants require crypto provider for envelope signing
500
- if (profileLower.includes('overlay') ||
501
- profileLower === 'strict-overlay') {
499
+ // Overlay variants (including strict-overlay) require crypto provider for envelope signing
500
+ if (profileLower.includes('overlay')) {
502
501
  return true;
503
502
  }
504
503
  }
@@ -29,7 +29,7 @@ exports.KNOWN_RULE_FIELDS = new Set([
29
29
  'effect',
30
30
  'action',
31
31
  'address',
32
- 'frame_type',
32
+ 'frame_type', // Reserved for advanced-security
33
33
  'origin_type',
34
34
  'scope',
35
35
  'when', // Reserved for advanced-security
@@ -96,11 +96,6 @@ class BasicAuthorizationPolicy {
96
96
  const resolvedActionNormalized = this.normalizeActionToken(resolvedAction) ?? resolvedAction;
97
97
  const address = extractAddress(envelope);
98
98
  const grantedScopes = extractGrantedScopes(context);
99
- const rawFrameType = envelope.frame
100
- ?.type;
101
- const frameTypeNormalized = typeof rawFrameType === 'string' && rawFrameType.trim().length > 0
102
- ? rawFrameType.trim().toLowerCase()
103
- : '';
104
99
  // Extract and normalize origin type for rule matching
105
100
  const rawOriginType = context?.originType;
106
101
  const originTypeNormalized = typeof rawOriginType === 'string'
@@ -118,22 +113,16 @@ class BasicAuthorizationPolicy {
118
113
  step.expression = 'when clause (skipped by basic policy)';
119
114
  step.result = false;
120
115
  evaluationTrace.push(step);
116
+ logger.debug('rule_skipped_when_clause', { ruleId: rule.id });
121
117
  continue;
122
118
  }
123
- // Check frame type match
124
- if (rule.frameTypes) {
125
- if (!frameTypeNormalized) {
126
- step.expression = 'frame_type: missing';
127
- step.result = false;
128
- evaluationTrace.push(step);
129
- continue;
130
- }
131
- if (!rule.frameTypes.has(frameTypeNormalized)) {
132
- step.expression = `frame_type: ${rawFrameType ?? 'unknown'} not in rule set`;
133
- step.result = false;
134
- evaluationTrace.push(step);
135
- continue;
136
- }
119
+ // Skip rules with 'frame_type' clause (reserved for advanced-security package)
120
+ if (rule.hasFrameTypeClause) {
121
+ step.expression = 'frame_type clause (skipped by basic policy)';
122
+ step.result = false;
123
+ evaluationTrace.push(step);
124
+ logger.debug('rule_skipped_frame_type_clause', { ruleId: rule.id });
125
+ continue;
137
126
  }
138
127
  // Check origin type match (early gate for efficiency)
139
128
  if (rule.originTypes) {
@@ -248,8 +237,14 @@ class BasicAuthorizationPolicy {
248
237
  const actions = this.compileActions(rule.action, id);
249
238
  // Compile address patterns (glob-only, no regex)
250
239
  const addressPatterns = this.compileAddress(rule.address, id);
251
- // Compile frame type gating
252
- const frameTypes = this.compileFrameTypes(rule.frame_type, id);
240
+ // Check for frame_type clause (reserved for advanced-security)
241
+ const hasFrameTypeClause = rule.frame_type !== undefined;
242
+ if (hasFrameTypeClause && warnOnUnknown) {
243
+ logger.warning('reserved_field_frame_type_will_be_skipped', {
244
+ ruleId: id,
245
+ message: `Rule "${id}" uses reserved field "frame_type" which is only supported in advanced-security package. This rule will be skipped during evaluation.`,
246
+ });
247
+ }
253
248
  // Compile origin type gating
254
249
  const originTypes = this.compileOriginTypes(rule.origin_type, id);
255
250
  // Compile scope matcher (glob-only, no regex)
@@ -276,11 +271,12 @@ class BasicAuthorizationPolicy {
276
271
  description: rule.description,
277
272
  effect: rule.effect,
278
273
  actions,
279
- frameTypes,
274
+ frameTypes: undefined, // No longer used; reserved for advanced-security
280
275
  originTypes,
281
276
  addressPatterns,
282
277
  scopeMatcher,
283
278
  hasWhenClause: typeof rule.when === 'string' && rule.when.length > 0,
279
+ hasFrameTypeClause,
284
280
  };
285
281
  }
286
282
  /**
@@ -370,43 +366,6 @@ class BasicAuthorizationPolicy {
370
366
  }
371
367
  return patterns;
372
368
  }
373
- /**
374
- * Compiles frame_type field into a Set of normalized frame types.
375
- * Supports single string or array of strings (implicit any-of).
376
- * Returns undefined if not specified (no frame type gating).
377
- */
378
- compileFrameTypes(frameType, ruleId) {
379
- if (frameType === undefined) {
380
- return undefined;
381
- }
382
- // Handle single frame type
383
- if (typeof frameType === 'string') {
384
- const normalized = frameType.trim().toLowerCase();
385
- if (!normalized) {
386
- throw new Error(`Invalid frame_type in rule "${ruleId}": value must not be empty`);
387
- }
388
- return new Set([normalized]);
389
- }
390
- // Handle array of frame types
391
- if (!Array.isArray(frameType)) {
392
- throw new Error(`Invalid frame_type in rule "${ruleId}": must be a string or array of strings`);
393
- }
394
- if (frameType.length === 0) {
395
- throw new Error(`Invalid frame_type in rule "${ruleId}": array must not be empty`);
396
- }
397
- const frameTypes = new Set();
398
- for (const ft of frameType) {
399
- if (typeof ft !== 'string') {
400
- throw new Error(`Invalid frame_type in rule "${ruleId}": all values must be strings`);
401
- }
402
- const normalized = ft.trim().toLowerCase();
403
- if (!normalized) {
404
- throw new Error(`Invalid frame_type in rule "${ruleId}": values must not be empty`);
405
- }
406
- frameTypes.add(normalized);
407
- }
408
- return frameTypes;
409
- }
410
369
  /**
411
370
  * Compiles origin_type field into a Set of normalized origin types.
412
371
  * Supports single string or array of strings (implicit any-of).