@bleedingdev/modern-js-bff-core 3.5.0-ultramodern.6 → 3.5.0-ultramodern.76

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 (46) hide show
  1. package/dist/cjs/adapter-kit/index.js +6 -2
  2. package/dist/cjs/adapter-kit/parity-scenarios/cross-project-denial.js +55 -0
  3. package/dist/cjs/adapter-kit/parity-scenarios/envelope.js +128 -0
  4. package/dist/cjs/adapter-kit/parity-scenarios/operation-context.js +158 -0
  5. package/dist/cjs/adapter-kit/parity-scenarios/schema.js +109 -0
  6. package/dist/cjs/adapter-kit/parity-scenarios/shared.js +71 -0
  7. package/dist/cjs/adapter-kit/parity.js +26 -368
  8. package/dist/cjs/index.js +29 -48
  9. package/dist/cjs/operators/http.js +2 -2
  10. package/dist/cjs/security/crossProjectPolicy.js +123 -62
  11. package/dist/esm/adapter-kit/index.mjs +6 -2
  12. package/dist/esm/adapter-kit/parity-scenarios/cross-project-denial.mjs +17 -0
  13. package/dist/esm/adapter-kit/parity-scenarios/envelope.mjs +90 -0
  14. package/dist/esm/adapter-kit/parity-scenarios/operation-context.mjs +117 -0
  15. package/dist/esm/adapter-kit/parity-scenarios/schema.mjs +71 -0
  16. package/dist/esm/adapter-kit/parity-scenarios/shared.mjs +21 -0
  17. package/dist/esm/adapter-kit/parity.mjs +19 -361
  18. package/dist/esm/index.mjs +0 -1
  19. package/dist/esm/operators/http.mjs +2 -2
  20. package/dist/esm/security/crossProjectPolicy.mjs +123 -62
  21. package/dist/esm/security/operationContracts.mjs +2 -2
  22. package/dist/esm-node/adapter-kit/index.mjs +6 -2
  23. package/dist/esm-node/adapter-kit/parity-scenarios/cross-project-denial.mjs +18 -0
  24. package/dist/esm-node/adapter-kit/parity-scenarios/envelope.mjs +91 -0
  25. package/dist/esm-node/adapter-kit/parity-scenarios/operation-context.mjs +118 -0
  26. package/dist/esm-node/adapter-kit/parity-scenarios/schema.mjs +72 -0
  27. package/dist/esm-node/adapter-kit/parity-scenarios/shared.mjs +22 -0
  28. package/dist/esm-node/adapter-kit/parity.mjs +19 -361
  29. package/dist/esm-node/index.mjs +0 -1
  30. package/dist/esm-node/operators/http.mjs +2 -2
  31. package/dist/esm-node/security/crossProjectPolicy.mjs +123 -62
  32. package/dist/types/adapter-kit/index.d.ts +2 -2
  33. package/dist/types/adapter-kit/parity-scenarios/cross-project-denial.d.ts +2 -0
  34. package/dist/types/adapter-kit/parity-scenarios/envelope.d.ts +2 -0
  35. package/dist/types/adapter-kit/parity-scenarios/operation-context.d.ts +3 -0
  36. package/dist/types/adapter-kit/parity-scenarios/schema.d.ts +2 -0
  37. package/dist/types/adapter-kit/parity-scenarios/shared.d.ts +32 -0
  38. package/dist/types/adapter-kit/parity.d.ts +12 -71
  39. package/dist/types/index.d.ts +0 -1
  40. package/dist/types/operators/http.d.ts +1 -1
  41. package/dist/types/security/crossProjectPolicy.d.ts +17 -8
  42. package/package.json +10 -12
  43. package/dist/cjs/contracts/eventContracts.js +0 -72
  44. package/dist/esm/contracts/eventContracts.mjs +0 -28
  45. package/dist/esm-node/contracts/eventContracts.mjs +0 -29
  46. package/dist/types/contracts/eventContracts.d.ts +0 -22
@@ -97,10 +97,14 @@ const getResponseMetaList = (handler)=>{
97
97
  const responseMeta = Reflect.getMetadata(external_types_js_namespaceObject.HttpMetadata.Response, handler);
98
98
  return Array.isArray(responseMeta) ? responseMeta : [];
99
99
  };
100
- const buildPositionalHandlerArgs = (input)=>[
101
- ...Object.values(input.params),
100
+ const buildPositionalHandlerArgs = (input, routePath)=>{
101
+ const paramNames = routePath?.match(/:(\w+)/g)?.map((param)=>param.slice(1)) ?? [];
102
+ const positionalParams = paramNames.length > 0 ? paramNames.map((param)=>input.params[param]) : Object.values(input.params);
103
+ return [
104
+ ...positionalParams,
102
105
  input
103
106
  ];
107
+ };
104
108
  const checkCrossProjectPolicy = (headers, policy)=>{
105
109
  const violation = (0, crossProjectPolicy_js_namespaceObject.evaluateCrossProjectPolicy)(headers, policy);
106
110
  if (!violation) return null;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ createCrossProjectDenialScenarios: ()=>createCrossProjectDenialScenarios
32
+ });
33
+ const external_shared_js_namespaceObject = require("./shared.js");
34
+ const createCrossProjectDenialScenarios = ()=>[
35
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies missing envelope', 'missing_envelope', {}),
36
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies invalid envelope', 'invalid_envelope', {
37
+ 'x-modernjs-bff-envelope': 'not-json'
38
+ }),
39
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies envelope that is valid JSON but not an object', 'invalid_envelope', {
40
+ 'x-modernjs-bff-envelope': '123'
41
+ }),
42
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies missing requestId', 'missing_request_id', {
43
+ 'x-modernjs-bff-envelope': (0, external_shared_js_namespaceObject.envelopeHeader)(void 0)
44
+ }),
45
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies namespace outside allowlist', 'namespace_not_allowed', {
46
+ 'x-modernjs-bff-envelope': (0, external_shared_js_namespaceObject.envelopeHeader)('billing.producer-z')
47
+ })
48
+ ];
49
+ exports.createCrossProjectDenialScenarios = __webpack_exports__.createCrossProjectDenialScenarios;
50
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
51
+ "createCrossProjectDenialScenarios"
52
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
53
+ Object.defineProperty(exports, '__esModule', {
54
+ value: true
55
+ });
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ const createEnvelopeParityScenarios = ()=>[
31
+ {
32
+ name: 'plain handler returns object payload',
33
+ policy: false,
34
+ request: {
35
+ method: 'get',
36
+ path: '/hello'
37
+ },
38
+ expected: {
39
+ kind: 'payload',
40
+ status: 200,
41
+ payload: {
42
+ message: 'hello'
43
+ }
44
+ }
45
+ },
46
+ {
47
+ name: 'plain handler returns scalar payload',
48
+ policy: false,
49
+ request: {
50
+ method: 'post',
51
+ path: '/hello'
52
+ },
53
+ expected: {
54
+ kind: 'payload',
55
+ status: 200,
56
+ payload: 'hello'
57
+ }
58
+ },
59
+ {
60
+ name: 'plain handler returning undefined',
61
+ policy: false,
62
+ request: {
63
+ method: 'get',
64
+ path: '/nothing'
65
+ },
66
+ expected: {
67
+ kind: 'payload',
68
+ status: 404,
69
+ payload: '404 Not Found'
70
+ }
71
+ },
72
+ {
73
+ name: 'plain handler receives data, query and cookies',
74
+ policy: false,
75
+ request: {
76
+ method: 'post',
77
+ path: '/echo?q=z',
78
+ headers: {
79
+ 'content-type': 'application/json',
80
+ cookie: 'id=666'
81
+ },
82
+ body: {
83
+ a: 1
84
+ }
85
+ },
86
+ expected: {
87
+ kind: 'payload',
88
+ status: 200,
89
+ payload: {
90
+ data: {
91
+ a: 1
92
+ },
93
+ query: {
94
+ q: 'z'
95
+ },
96
+ cookie: 'id=666'
97
+ }
98
+ }
99
+ },
100
+ {
101
+ name: 'plain handler receives positional route params',
102
+ policy: false,
103
+ request: {
104
+ method: 'get',
105
+ path: '/items/123?q=x'
106
+ },
107
+ expected: {
108
+ kind: 'payload',
109
+ status: 200,
110
+ payload: {
111
+ id: '123',
112
+ query: {
113
+ q: 'x'
114
+ }
115
+ }
116
+ }
117
+ }
118
+ ];
119
+ __webpack_require__.d(__webpack_exports__, {}, {
120
+ createEnvelopeParityScenarios: createEnvelopeParityScenarios
121
+ });
122
+ exports.createEnvelopeParityScenarios = __webpack_exports__.createEnvelopeParityScenarios;
123
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
124
+ "createEnvelopeParityScenarios"
125
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
126
+ Object.defineProperty(exports, '__esModule', {
127
+ value: true
128
+ });
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ createOperationContextDenialScenarios: ()=>createOperationContextDenialScenarios,
32
+ createOperationContextSuccessScenarios: ()=>createOperationContextSuccessScenarios
33
+ });
34
+ const external_shared_js_namespaceObject = require("./shared.js");
35
+ const createOperationContextSuccessScenarios = ({ helloContract, validEnvelope, validOperationId })=>[
36
+ {
37
+ name: 'policy pass with full operation context',
38
+ policy: true,
39
+ request: {
40
+ method: 'get',
41
+ path: '/hello',
42
+ headers: {
43
+ 'x-modernjs-bff-envelope': validEnvelope,
44
+ 'x-operation-id': validOperationId,
45
+ 'x-modernjs-bff-operation-context': (0, external_shared_js_namespaceObject.detailHeader)({
46
+ requestId: external_shared_js_namespaceObject.PARITY_PRODUCER_REQUEST_ID,
47
+ method: 'GET',
48
+ routePath: '/hello',
49
+ schemaHash: helloContract.schemaHash,
50
+ operationVersion: helloContract.operationVersion
51
+ })
52
+ }
53
+ },
54
+ expected: {
55
+ kind: 'payload',
56
+ status: 200,
57
+ payload: {
58
+ message: 'hello'
59
+ }
60
+ }
61
+ }
62
+ ];
63
+ const createOperationContextDenialScenarios = ({ helloContract, validEnvelope, validOperationId })=>[
64
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies missing operation context', 'missing_operation_context', {
65
+ 'x-modernjs-bff-envelope': validEnvelope
66
+ }),
67
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies operation context mismatch', 'operation_context_mismatch', {
68
+ 'x-modernjs-bff-envelope': validEnvelope,
69
+ 'x-operation-id': 'someone-else:parity'
70
+ }),
71
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies missing operation context details', 'missing_operation_context_details', {
72
+ 'x-modernjs-bff-envelope': validEnvelope,
73
+ 'x-operation-id': validOperationId
74
+ }),
75
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies JSON-array operation context details', 'invalid_operation_context_details', {
76
+ 'x-modernjs-bff-envelope': validEnvelope,
77
+ 'x-operation-id': validOperationId,
78
+ 'x-modernjs-bff-operation-context': '[]'
79
+ }),
80
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies invalid operation context details', 'invalid_operation_context_details', {
81
+ 'x-modernjs-bff-envelope': validEnvelope,
82
+ 'x-operation-id': validOperationId,
83
+ 'x-modernjs-bff-operation-context': 'not-json'
84
+ }),
85
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies detail requestId mismatch', 'operation_context_details_request_id_mismatch', {
86
+ 'x-modernjs-bff-envelope': validEnvelope,
87
+ 'x-operation-id': validOperationId,
88
+ 'x-modernjs-bff-operation-context': (0, external_shared_js_namespaceObject.detailHeader)({
89
+ requestId: 'crm.producer-b',
90
+ method: 'GET',
91
+ routePath: '/hello',
92
+ schemaHash: helloContract.schemaHash,
93
+ operationVersion: helloContract.operationVersion
94
+ })
95
+ }),
96
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies missing operation schema hash', 'missing_operation_schema_hash', {
97
+ 'x-modernjs-bff-envelope': validEnvelope,
98
+ 'x-operation-id': validOperationId,
99
+ 'x-modernjs-bff-operation-context': (0, external_shared_js_namespaceObject.detailHeader)({
100
+ requestId: external_shared_js_namespaceObject.PARITY_PRODUCER_REQUEST_ID,
101
+ method: 'GET',
102
+ routePath: '/hello',
103
+ operationVersion: helloContract.operationVersion
104
+ })
105
+ }),
106
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies missing operation version', 'missing_operation_version', {
107
+ 'x-modernjs-bff-envelope': validEnvelope,
108
+ 'x-operation-id': validOperationId,
109
+ 'x-modernjs-bff-operation-context': (0, external_shared_js_namespaceObject.detailHeader)({
110
+ requestId: external_shared_js_namespaceObject.PARITY_PRODUCER_REQUEST_ID,
111
+ method: 'GET',
112
+ routePath: '/hello',
113
+ schemaHash: helloContract.schemaHash
114
+ })
115
+ }),
116
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies unknown operation contract', 'unknown_operation_contract', {
117
+ 'x-modernjs-bff-envelope': validEnvelope,
118
+ 'x-operation-id': validOperationId,
119
+ 'x-modernjs-bff-operation-context': (0, external_shared_js_namespaceObject.detailHeader)({
120
+ requestId: external_shared_js_namespaceObject.PARITY_PRODUCER_REQUEST_ID,
121
+ method: 'GET',
122
+ routePath: '/does-not-exist',
123
+ schemaHash: helloContract.schemaHash,
124
+ operationVersion: helloContract.operationVersion
125
+ })
126
+ }),
127
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies operation schema hash mismatch', 'operation_schema_hash_mismatch', {
128
+ 'x-modernjs-bff-envelope': validEnvelope,
129
+ 'x-operation-id': validOperationId,
130
+ 'x-modernjs-bff-operation-context': (0, external_shared_js_namespaceObject.detailHeader)({
131
+ requestId: external_shared_js_namespaceObject.PARITY_PRODUCER_REQUEST_ID,
132
+ method: 'GET',
133
+ routePath: '/hello',
134
+ schemaHash: 'deadbeef',
135
+ operationVersion: helloContract.operationVersion
136
+ })
137
+ }),
138
+ (0, external_shared_js_namespaceObject.deniedScenario)('policy denies operation version mismatch', 'operation_version_mismatch', {
139
+ 'x-modernjs-bff-envelope': validEnvelope,
140
+ 'x-operation-id': validOperationId,
141
+ 'x-modernjs-bff-operation-context': (0, external_shared_js_namespaceObject.detailHeader)({
142
+ requestId: external_shared_js_namespaceObject.PARITY_PRODUCER_REQUEST_ID,
143
+ method: 'GET',
144
+ routePath: '/hello',
145
+ schemaHash: helloContract.schemaHash,
146
+ operationVersion: helloContract.operationVersion + 1
147
+ })
148
+ })
149
+ ];
150
+ exports.createOperationContextDenialScenarios = __webpack_exports__.createOperationContextDenialScenarios;
151
+ exports.createOperationContextSuccessScenarios = __webpack_exports__.createOperationContextSuccessScenarios;
152
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
153
+ "createOperationContextDenialScenarios",
154
+ "createOperationContextSuccessScenarios"
155
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
156
+ Object.defineProperty(exports, '__esModule', {
157
+ value: true
158
+ });
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ const createSchemaParityScenarios = ()=>[
31
+ {
32
+ name: 'schema handler success',
33
+ policy: false,
34
+ request: {
35
+ method: 'patch',
36
+ path: '/schema',
37
+ headers: {
38
+ 'content-type': 'application/json'
39
+ },
40
+ body: {
41
+ id: 777
42
+ }
43
+ },
44
+ expected: {
45
+ kind: 'payload',
46
+ status: 200,
47
+ payload: {
48
+ type: 'HandleSuccess',
49
+ value: {
50
+ id: 777
51
+ }
52
+ }
53
+ }
54
+ },
55
+ {
56
+ name: 'schema handler input validation error',
57
+ policy: false,
58
+ request: {
59
+ method: 'patch',
60
+ path: '/schema',
61
+ headers: {
62
+ 'content-type': 'application/json'
63
+ },
64
+ body: {
65
+ id: 'aaa'
66
+ }
67
+ },
68
+ expected: {
69
+ kind: 'payload',
70
+ status: 200,
71
+ payload: {
72
+ type: 'InputValidationError',
73
+ message: 'invalid input'
74
+ }
75
+ }
76
+ },
77
+ {
78
+ name: 'schema handler output validation error',
79
+ policy: false,
80
+ request: {
81
+ method: 'patch',
82
+ path: '/schema',
83
+ headers: {
84
+ 'content-type': 'application/json'
85
+ },
86
+ body: {
87
+ id: 'boom'
88
+ }
89
+ },
90
+ expected: {
91
+ kind: 'payload',
92
+ status: 200,
93
+ payload: {
94
+ type: 'OutputValidationError',
95
+ message: 'invalid output'
96
+ }
97
+ }
98
+ }
99
+ ];
100
+ __webpack_require__.d(__webpack_exports__, {}, {
101
+ createSchemaParityScenarios: createSchemaParityScenarios
102
+ });
103
+ exports.createSchemaParityScenarios = __webpack_exports__.createSchemaParityScenarios;
104
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
105
+ "createSchemaParityScenarios"
106
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
107
+ Object.defineProperty(exports, '__esModule', {
108
+ value: true
109
+ });
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ const PARITY_REQUEST_ID = 'crm';
31
+ const PARITY_PRODUCER_REQUEST_ID = 'crm.producer-a';
32
+ const envelopeHeader = (requestId)=>JSON.stringify(void 0 === requestId ? {} : {
33
+ requestId
34
+ });
35
+ const detailHeader = (details)=>JSON.stringify(details);
36
+ const deniedScenario = (name, reason, headers)=>({
37
+ name,
38
+ policy: true,
39
+ request: {
40
+ method: 'get',
41
+ path: '/hello',
42
+ headers
43
+ },
44
+ expected: {
45
+ kind: 'denied',
46
+ status: 403,
47
+ reason
48
+ }
49
+ });
50
+ __webpack_require__.d(__webpack_exports__, {}, {
51
+ PARITY_PRODUCER_REQUEST_ID: PARITY_PRODUCER_REQUEST_ID,
52
+ PARITY_REQUEST_ID: PARITY_REQUEST_ID,
53
+ deniedScenario: deniedScenario,
54
+ detailHeader: detailHeader,
55
+ envelopeHeader: envelopeHeader
56
+ });
57
+ exports.PARITY_PRODUCER_REQUEST_ID = __webpack_exports__.PARITY_PRODUCER_REQUEST_ID;
58
+ exports.PARITY_REQUEST_ID = __webpack_exports__.PARITY_REQUEST_ID;
59
+ exports.deniedScenario = __webpack_exports__.deniedScenario;
60
+ exports.detailHeader = __webpack_exports__.detailHeader;
61
+ exports.envelopeHeader = __webpack_exports__.envelopeHeader;
62
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
63
+ "PARITY_PRODUCER_REQUEST_ID",
64
+ "PARITY_REQUEST_ID",
65
+ "deniedScenario",
66
+ "detailHeader",
67
+ "envelopeHeader"
68
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
69
+ Object.defineProperty(exports, '__esModule', {
70
+ value: true
71
+ });