@entifix/testing-auth 0.1.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.
- package/LICENSE +21 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/stub-layers.d.ts +22 -0
- package/dist/stub-layers.d.ts.map +1 -0
- package/dist/stub-layers.js +27 -0
- package/dist/stub-layers.js.map +1 -0
- package/dist/stub-principal.d.ts +34 -0
- package/dist/stub-principal.d.ts.map +1 -0
- package/dist/stub-principal.js +51 -0
- package/dist/stub-principal.js.map +1 -0
- package/package.json +67 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 r10c Technologies
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './stub-layers.js';\nexport * from './stub-principal.js';\n"],"names":[],"mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,sBAAsB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PolicyDecision } from '@entifix/authz';
|
|
2
|
+
import { PolicyDecisionTag } from '@entifix/authz';
|
|
3
|
+
import type { TokenClaims, TokenService } from '@entifix/business';
|
|
4
|
+
import { TokenServiceTag } from '@entifix/business';
|
|
5
|
+
import { Layer } from 'effect';
|
|
6
|
+
/**
|
|
7
|
+
* A `TokenService` that trusts every token and answers with fixed claims.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ **This is the whole reason the package is `type:testing`.** `verify` does
|
|
10
|
+
* not check a signature, so wiring this into anything reachable from a network
|
|
11
|
+
* is an open door. It exists so an example can serve `$metadata` without an
|
|
12
|
+
* identity provider — and it does that by replacing the *port*, not by adding
|
|
13
|
+
* an unauthenticated branch to `entity-metadata-route.ts`. ADR 0026's point is
|
|
14
|
+
* that the descriptor is filtered by the verified principal; a hole punched in
|
|
15
|
+
* the route for a demo would become the adoption pattern.
|
|
16
|
+
*/
|
|
17
|
+
export declare const makeFixedTokenService: (claims?: TokenClaims) => TokenService;
|
|
18
|
+
export declare const FixedTokenServiceLayer: (claims?: TokenClaims) => Layer.Layer<TokenServiceTag>;
|
|
19
|
+
/** A `PolicyDecision` that grants every request. */
|
|
20
|
+
export declare const AllowAllPolicy: PolicyDecision;
|
|
21
|
+
export declare const AllowAllPolicyLayer: Layer.Layer<PolicyDecisionTag>;
|
|
22
|
+
//# sourceMappingURL=stub-layers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub-layers.d.ts","sourceRoot":"","sources":["../src/stub-layers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAIvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAQ,WAAyB,KAChC,YAKD,CAAC;AAEH,eAAO,MAAM,sBAAsB,GACjC,SAAQ,WAAyB,KAChC,KAAK,CAAC,KAAK,CAAC,eAAe,CACiC,CAAC;AAEhE,oDAAoD;AACpD,eAAO,MAAM,cAAc,EAAE,cAAuC,CAAC;AAErE,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,CACb,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PolicyDecisionTag } from '@entifix/authz';
|
|
2
|
+
import { TokenServiceTag } from '@entifix/business';
|
|
3
|
+
import { Effect, Layer } from 'effect';
|
|
4
|
+
import { STUB_CLAIMS, stubAccessToken } from './stub-principal.js';
|
|
5
|
+
/**
|
|
6
|
+
* A `TokenService` that trusts every token and answers with fixed claims.
|
|
7
|
+
*
|
|
8
|
+
* ⚠️ **This is the whole reason the package is `type:testing`.** `verify` does
|
|
9
|
+
* not check a signature, so wiring this into anything reachable from a network
|
|
10
|
+
* is an open door. It exists so an example can serve `$metadata` without an
|
|
11
|
+
* identity provider — and it does that by replacing the *port*, not by adding
|
|
12
|
+
* an unauthenticated branch to `entity-metadata-route.ts`. ADR 0026's point is
|
|
13
|
+
* that the descriptor is filtered by the verified principal; a hole punched in
|
|
14
|
+
* the route for a demo would become the adoption pattern.
|
|
15
|
+
*/ export const makeFixedTokenService = (claims = STUB_CLAIMS)=>({
|
|
16
|
+
// A stub token carries its own `exp`, so the requested lifetime is not read;
|
|
17
|
+
// and `verify` ignores the token by design — see the note above.
|
|
18
|
+
sign: (signed)=>Effect.succeed(stubAccessToken(signed)),
|
|
19
|
+
verify: ()=>Effect.succeed(claims)
|
|
20
|
+
});
|
|
21
|
+
export const FixedTokenServiceLayer = (claims = STUB_CLAIMS)=>Layer.succeed(TokenServiceTag, makeFixedTokenService(claims));
|
|
22
|
+
/** A `PolicyDecision` that grants every request. */ export const AllowAllPolicy = {
|
|
23
|
+
decide: ()=>true
|
|
24
|
+
};
|
|
25
|
+
export const AllowAllPolicyLayer = Layer.succeed(PolicyDecisionTag, AllowAllPolicy);
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=stub-layers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/stub-layers.ts"],"sourcesContent":["import type { PolicyDecision } from '@entifix/authz';\nimport { PolicyDecisionTag } from '@entifix/authz';\nimport type { TokenClaims, TokenService } from '@entifix/business';\nimport { TokenServiceTag } from '@entifix/business';\nimport { Effect, Layer } from 'effect';\n\nimport { STUB_CLAIMS, stubAccessToken } from './stub-principal.js';\n\n/**\n * A `TokenService` that trusts every token and answers with fixed claims.\n *\n * ⚠️ **This is the whole reason the package is `type:testing`.** `verify` does\n * not check a signature, so wiring this into anything reachable from a network\n * is an open door. It exists so an example can serve `$metadata` without an\n * identity provider — and it does that by replacing the *port*, not by adding\n * an unauthenticated branch to `entity-metadata-route.ts`. ADR 0026's point is\n * that the descriptor is filtered by the verified principal; a hole punched in\n * the route for a demo would become the adoption pattern.\n */\nexport const makeFixedTokenService = (\n claims: TokenClaims = STUB_CLAIMS,\n): TokenService => ({\n // A stub token carries its own `exp`, so the requested lifetime is not read;\n // and `verify` ignores the token by design — see the note above.\n sign: signed => Effect.succeed(stubAccessToken(signed)),\n verify: () => Effect.succeed(claims),\n});\n\nexport const FixedTokenServiceLayer = (\n claims: TokenClaims = STUB_CLAIMS,\n): Layer.Layer<TokenServiceTag> =>\n Layer.succeed(TokenServiceTag, makeFixedTokenService(claims));\n\n/** A `PolicyDecision` that grants every request. */\nexport const AllowAllPolicy: PolicyDecision = { decide: () => true };\n\nexport const AllowAllPolicyLayer: Layer.Layer<PolicyDecisionTag> =\n Layer.succeed(PolicyDecisionTag, AllowAllPolicy);\n"],"names":["PolicyDecisionTag","TokenServiceTag","Effect","Layer","STUB_CLAIMS","stubAccessToken","makeFixedTokenService","claims","sign","signed","succeed","verify","FixedTokenServiceLayer","AllowAllPolicy","decide","AllowAllPolicyLayer"],"mappings":"AACA,SAASA,iBAAiB,QAAQ,iBAAiB;AAEnD,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,MAAM,EAAEC,KAAK,QAAQ,SAAS;AAEvC,SAASC,WAAW,EAAEC,eAAe,QAAQ,sBAAsB;AAEnE;;;;;;;;;;CAUC,GACD,OAAO,MAAMC,wBAAwB,CACnCC,SAAsBH,WAAW,GACf,CAAA;QAClB,6EAA6E;QAC7E,iEAAiE;QACjEI,MAAMC,CAAAA,SAAUP,OAAOQ,OAAO,CAACL,gBAAgBI;QAC/CE,QAAQ,IAAMT,OAAOQ,OAAO,CAACH;IAC/B,CAAA,EAAG;AAEH,OAAO,MAAMK,yBAAyB,CACpCL,SAAsBH,WAAW,GAEjCD,MAAMO,OAAO,CAACT,iBAAiBK,sBAAsBC,SAAS;AAEhE,kDAAkD,GAClD,OAAO,MAAMM,iBAAiC;IAAEC,QAAQ,IAAM;AAAK,EAAE;AAErE,OAAO,MAAMC,sBACXZ,MAAMO,OAAO,CAACV,mBAAmBa,gBAAgB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { TokenClaims } from '@entifix/business';
|
|
2
|
+
/**
|
|
3
|
+
* The principal a stubbed application runs as when nobody configured one.
|
|
4
|
+
*
|
|
5
|
+
* `admin` rather than something narrower, because the point of the stub is to
|
|
6
|
+
* let someone see entifix working before they decide how identity works for
|
|
7
|
+
* them — a stub that hid half the screens would be demonstrating its own
|
|
8
|
+
* restrictions, not the framework.
|
|
9
|
+
*/
|
|
10
|
+
export declare const STUB_CLAIMS: TokenClaims;
|
|
11
|
+
/**
|
|
12
|
+
* A structurally valid, **deliberately unsigned** access token for these claims.
|
|
13
|
+
*
|
|
14
|
+
* The same shape `@entifix/testing-e2e`'s `seedSession` fabricates, so the two
|
|
15
|
+
* never disagree about what a seeded session looks like. Only
|
|
16
|
+
* {@link makeFixedTokenService} will accept it; a real `TokenService` rejects
|
|
17
|
+
* the signature, which is the property that keeps a stub out of production.
|
|
18
|
+
*/
|
|
19
|
+
export declare const stubAccessToken: (claims?: TokenClaims) => string;
|
|
20
|
+
/**
|
|
21
|
+
* The cookie to set so an application sees a signed-in session.
|
|
22
|
+
*
|
|
23
|
+
* ⚠️ **The real cookie, not a bypass.** The stub mints into `entifix_at`, the
|
|
24
|
+
* cookie every entifix reader already looks for, so the middleware's presence
|
|
25
|
+
* check, the Next shell's bearer forwarding and the service shell's
|
|
26
|
+
* `requirePrincipal` all run exactly as they do for a real user. A stub that
|
|
27
|
+
* skipped the cookie path would leave that path proven by nothing but the one
|
|
28
|
+
* application that happens to have an identity provider.
|
|
29
|
+
*/
|
|
30
|
+
export declare const stubSessionCookie: (claims?: TokenClaims) => {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly value: string;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=stub-principal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub-principal.d.ts","sourceRoot":"","sources":["../src/stub-principal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAAE,WAKzB,CAAC;AASF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,SAAQ,WAAyB,KAAG,MAQnE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAQ,WAAyB,KAChC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAGhD,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
2
|
+
import { ACCESS_COOKIE } from '@entifix/core';
|
|
3
|
+
/**
|
|
4
|
+
* The principal a stubbed application runs as when nobody configured one.
|
|
5
|
+
*
|
|
6
|
+
* `admin` rather than something narrower, because the point of the stub is to
|
|
7
|
+
* let someone see entifix working before they decide how identity works for
|
|
8
|
+
* them — a stub that hid half the screens would be demonstrating its own
|
|
9
|
+
* restrictions, not the framework.
|
|
10
|
+
*/ export const STUB_CLAIMS = {
|
|
11
|
+
userId: 'stub-user',
|
|
12
|
+
subject: 'stub-user',
|
|
13
|
+
sessionId: 'stub-session',
|
|
14
|
+
roles: [
|
|
15
|
+
'admin'
|
|
16
|
+
]
|
|
17
|
+
};
|
|
18
|
+
const base64url = (value)=>Buffer.from(value).toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
19
|
+
/**
|
|
20
|
+
* A structurally valid, **deliberately unsigned** access token for these claims.
|
|
21
|
+
*
|
|
22
|
+
* The same shape `@entifix/testing-e2e`'s `seedSession` fabricates, so the two
|
|
23
|
+
* never disagree about what a seeded session looks like. Only
|
|
24
|
+
* {@link makeFixedTokenService} will accept it; a real `TokenService` rejects
|
|
25
|
+
* the signature, which is the property that keeps a stub out of production.
|
|
26
|
+
*/ export const stubAccessToken = (claims = STUB_CLAIMS)=>{
|
|
27
|
+
const header = base64url(JSON.stringify({
|
|
28
|
+
alg: 'RS256',
|
|
29
|
+
kid: 'entifix-stub',
|
|
30
|
+
typ: 'JWT'
|
|
31
|
+
}));
|
|
32
|
+
const payload = base64url(JSON.stringify(_extends({}, claims, {
|
|
33
|
+
exp: Math.floor(Date.now() / 1000) + 3600
|
|
34
|
+
})));
|
|
35
|
+
return `${header}.${payload}.entifix-stub-not-a-signature`;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* The cookie to set so an application sees a signed-in session.
|
|
39
|
+
*
|
|
40
|
+
* ⚠️ **The real cookie, not a bypass.** The stub mints into `entifix_at`, the
|
|
41
|
+
* cookie every entifix reader already looks for, so the middleware's presence
|
|
42
|
+
* check, the Next shell's bearer forwarding and the service shell's
|
|
43
|
+
* `requirePrincipal` all run exactly as they do for a real user. A stub that
|
|
44
|
+
* skipped the cookie path would leave that path proven by nothing but the one
|
|
45
|
+
* application that happens to have an identity provider.
|
|
46
|
+
*/ export const stubSessionCookie = (claims = STUB_CLAIMS)=>({
|
|
47
|
+
name: ACCESS_COOKIE,
|
|
48
|
+
value: stubAccessToken(claims)
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=stub-principal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/stub-principal.ts"],"sourcesContent":["import type { TokenClaims } from '@entifix/business';\nimport { ACCESS_COOKIE } from '@entifix/core';\n\n/**\n * The principal a stubbed application runs as when nobody configured one.\n *\n * `admin` rather than something narrower, because the point of the stub is to\n * let someone see entifix working before they decide how identity works for\n * them — a stub that hid half the screens would be demonstrating its own\n * restrictions, not the framework.\n */\nexport const STUB_CLAIMS: TokenClaims = {\n userId: 'stub-user',\n subject: 'stub-user',\n sessionId: 'stub-session',\n roles: ['admin'],\n};\n\nconst base64url = (value: string): string =>\n Buffer.from(value)\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '');\n\n/**\n * A structurally valid, **deliberately unsigned** access token for these claims.\n *\n * The same shape `@entifix/testing-e2e`'s `seedSession` fabricates, so the two\n * never disagree about what a seeded session looks like. Only\n * {@link makeFixedTokenService} will accept it; a real `TokenService` rejects\n * the signature, which is the property that keeps a stub out of production.\n */\nexport const stubAccessToken = (claims: TokenClaims = STUB_CLAIMS): string => {\n const header = base64url(\n JSON.stringify({ alg: 'RS256', kid: 'entifix-stub', typ: 'JWT' }),\n );\n const payload = base64url(\n JSON.stringify({ ...claims, exp: Math.floor(Date.now() / 1000) + 3600 }),\n );\n return `${header}.${payload}.entifix-stub-not-a-signature`;\n};\n\n/**\n * The cookie to set so an application sees a signed-in session.\n *\n * ⚠️ **The real cookie, not a bypass.** The stub mints into `entifix_at`, the\n * cookie every entifix reader already looks for, so the middleware's presence\n * check, the Next shell's bearer forwarding and the service shell's\n * `requirePrincipal` all run exactly as they do for a real user. A stub that\n * skipped the cookie path would leave that path proven by nothing but the one\n * application that happens to have an identity provider.\n */\nexport const stubSessionCookie = (\n claims: TokenClaims = STUB_CLAIMS,\n): { readonly name: string; readonly value: string } => ({\n name: ACCESS_COOKIE,\n value: stubAccessToken(claims),\n});\n"],"names":["ACCESS_COOKIE","STUB_CLAIMS","userId","subject","sessionId","roles","base64url","value","Buffer","from","toString","replace","stubAccessToken","claims","header","JSON","stringify","alg","kid","typ","payload","exp","Math","floor","Date","now","stubSessionCookie","name"],"mappings":";AACA,SAASA,aAAa,QAAQ,gBAAgB;AAE9C;;;;;;;CAOC,GACD,OAAO,MAAMC,cAA2B;IACtCC,QAAQ;IACRC,SAAS;IACTC,WAAW;IACXC,OAAO;QAAC;KAAQ;AAClB,EAAE;AAEF,MAAMC,YAAY,CAACC,QACjBC,OAAOC,IAAI,CAACF,OACTG,QAAQ,CAAC,UACTC,OAAO,CAAC,OAAO,KACfA,OAAO,CAAC,OAAO,KACfA,OAAO,CAAC,OAAO;AAEpB;;;;;;;CAOC,GACD,OAAO,MAAMC,kBAAkB,CAACC,SAAsBZ,WAAW;IAC/D,MAAMa,SAASR,UACbS,KAAKC,SAAS,CAAC;QAAEC,KAAK;QAASC,KAAK;QAAgBC,KAAK;IAAM;IAEjE,MAAMC,UAAUd,UACdS,KAAKC,SAAS,CAAC,aAAKH;QAAQQ,KAAKC,KAAKC,KAAK,CAACC,KAAKC,GAAG,KAAK,QAAQ;;IAEnE,OAAO,GAAGX,OAAO,CAAC,EAAEM,QAAQ,6BAA6B,CAAC;AAC5D,EAAE;AAEF;;;;;;;;;CASC,GACD,OAAO,MAAMM,oBAAoB,CAC/Bb,SAAsBZ,WAAW,GACsB,CAAA;QACvD0B,MAAM3B;QACNO,OAAOK,gBAAgBC;IACzB,CAAA,EAAG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@entifix/testing-auth",
|
|
3
|
+
"version": "0.1.0-0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/r10c-technologies/entifix.git",
|
|
8
|
+
"directory": "packages/ts/testing-auth"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
|
+
"module": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"!**/*.tsbuildinfo",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
21
|
+
"type": "module",
|
|
22
|
+
"exports": {
|
|
23
|
+
"./package.json": "./package.json",
|
|
24
|
+
".": {
|
|
25
|
+
"@entifix/source": "./src/index.ts",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"import": "./dist/index.js",
|
|
28
|
+
"default": "./dist/index.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"nx": {
|
|
32
|
+
"tags": [
|
|
33
|
+
"layer:entifix",
|
|
34
|
+
"scope:shared",
|
|
35
|
+
"type:testing",
|
|
36
|
+
"tier:5"
|
|
37
|
+
],
|
|
38
|
+
"sourceRoot": "packages/ts/testing-auth/src",
|
|
39
|
+
"targets": {
|
|
40
|
+
"build": {
|
|
41
|
+
"executor": "@nx/js:swc",
|
|
42
|
+
"outputs": [
|
|
43
|
+
"{options.outputPath}"
|
|
44
|
+
],
|
|
45
|
+
"options": {
|
|
46
|
+
"outputPath": "packages/ts/testing-auth/dist",
|
|
47
|
+
"main": "packages/ts/testing-auth/src/index.ts",
|
|
48
|
+
"tsConfig": "packages/ts/testing-auth/tsconfig.lib.json",
|
|
49
|
+
"skipTypeCheck": true,
|
|
50
|
+
"stripLeadingPaths": true
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"@swc/helpers": "0.5.23",
|
|
57
|
+
"@entifix/authz": "0.1.0-0",
|
|
58
|
+
"@entifix/core": "0.1.0-0",
|
|
59
|
+
"@entifix/business": "0.1.0-0"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"effect": ">=3.22 <4"
|
|
63
|
+
},
|
|
64
|
+
"devDependencies": {
|
|
65
|
+
"effect": "3.22.1"
|
|
66
|
+
}
|
|
67
|
+
}
|