mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-12 15:03:52 +00:00
Merge pull request #74 from yordis/add-node-pkg
feat: add @zitadel/node pkg
This commit is contained in:
@@ -45,7 +45,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zitadel/proto": "workspace:*",
|
"@zitadel/proto": "workspace:*",
|
||||||
"@bufbuild/protobuf": "^1.8.0",
|
"@bufbuild/protobuf": "^1.9.0",
|
||||||
"@connectrpc/connect": "^1.4.0"
|
"@connectrpc/connect": "^1.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
5
packages/zitadel-node/.eslintrc.cjs
Normal file
5
packages/zitadel-node/.eslintrc.cjs
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
// TODO: React is not used in the server package
|
||||||
|
extends: ["zitadel"],
|
||||||
|
};
|
||||||
42
packages/zitadel-node/package.json
Normal file
42
packages/zitadel-node/package.json
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"name": "@zitadel/node",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"type": "module",
|
||||||
|
"sideEffects": false,
|
||||||
|
"license": "MIT",
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"import": "./dist/index.js",
|
||||||
|
"require": "./dist/index.cjs",
|
||||||
|
"types": "./dist/index.d.ts"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"dist/**"
|
||||||
|
],
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "tsup",
|
||||||
|
"test": "pnpm test:unit",
|
||||||
|
"test:watch": "pnpm test:unit:watch",
|
||||||
|
"test:unit": "vitest",
|
||||||
|
"test:unit:watch": "vitest --watch",
|
||||||
|
"dev": "tsup --watch",
|
||||||
|
"lint": "eslint \"src/**/*.ts*\"",
|
||||||
|
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf src/proto"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@zitadel/client2": "workspace:*"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@connectrpc/connect-node": "^1.4.0",
|
||||||
|
"jose": "^5.3.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@zitadel/client2": "workspace:*",
|
||||||
|
"@zitadel/tsconfig": "workspace:*",
|
||||||
|
"eslint-config-zitadel": "workspace:*"
|
||||||
|
}
|
||||||
|
}
|
||||||
35
packages/zitadel-node/src/index.ts
Normal file
35
packages/zitadel-node/src/index.ts
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import { NewAuthorizationBearerInterceptor } from "@zitadel/client2";
|
||||||
|
import {
|
||||||
|
createGrpcWebTransport,
|
||||||
|
GrpcTransportOptions,
|
||||||
|
} from "@connectrpc/connect-node";
|
||||||
|
import { importPKCS8, SignJWT } from "jose";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a server transport with the given token and configuration options.
|
||||||
|
* @param token
|
||||||
|
* @param opts
|
||||||
|
*/
|
||||||
|
export function createServerTransport(
|
||||||
|
token: string,
|
||||||
|
opts: GrpcTransportOptions,
|
||||||
|
) {
|
||||||
|
return createGrpcWebTransport({
|
||||||
|
...opts,
|
||||||
|
interceptors: [
|
||||||
|
...(opts.interceptors || []),
|
||||||
|
NewAuthorizationBearerInterceptor(token),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function newSystemToken() {
|
||||||
|
return await new SignJWT({})
|
||||||
|
.setProtectedHeader({ alg: "RS256" })
|
||||||
|
.setIssuedAt()
|
||||||
|
.setExpirationTime("1h")
|
||||||
|
.setIssuer(process.env.ZITADEL_SYSTEM_API_USERID ?? "")
|
||||||
|
.setSubject(process.env.ZITADEL_SYSTEM_API_USERID ?? "")
|
||||||
|
.setAudience(process.env.ZITADEL_ISSUER ?? "")
|
||||||
|
.sign(await importPKCS8(process.env.ZITADEL_SYSTEM_API_KEY ?? "", "RS256"));
|
||||||
|
}
|
||||||
5
packages/zitadel-node/tsconfig.json
Normal file
5
packages/zitadel-node/tsconfig.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"extends": "@zitadel/tsconfig/tsup.json",
|
||||||
|
"include": ["./src/**/*"],
|
||||||
|
"exclude": ["dist", "build", "node_modules"]
|
||||||
|
}
|
||||||
13
packages/zitadel-node/tsup.config.ts
Normal file
13
packages/zitadel-node/tsup.config.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { defineConfig, Options } from "tsup";
|
||||||
|
|
||||||
|
export default defineConfig((options: Options) => ({
|
||||||
|
treeshake: false,
|
||||||
|
splitting: true,
|
||||||
|
entry: ["src/index.ts"],
|
||||||
|
format: ["esm", "cjs"],
|
||||||
|
dts: true,
|
||||||
|
minify: false,
|
||||||
|
clean: true,
|
||||||
|
sourcemap: true,
|
||||||
|
...options,
|
||||||
|
}));
|
||||||
11
packages/zitadel-node/turbo.json
Normal file
11
packages/zitadel-node/turbo.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"extends": [
|
||||||
|
"//"
|
||||||
|
],
|
||||||
|
"pipeline": {
|
||||||
|
"build": {
|
||||||
|
"outputs": ["dist/**"],
|
||||||
|
"dependsOn": ["@zitadel/client2#build"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
59
pnpm-lock.yaml
generated
59
pnpm-lock.yaml
generated
@@ -239,7 +239,7 @@ importers:
|
|||||||
packages/zitadel-client2:
|
packages/zitadel-client2:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@bufbuild/protobuf':
|
'@bufbuild/protobuf':
|
||||||
specifier: ^1.8.0
|
specifier: ^1.9.0
|
||||||
version: 1.9.0
|
version: 1.9.0
|
||||||
'@connectrpc/connect':
|
'@connectrpc/connect':
|
||||||
specifier: ^1.4.0
|
specifier: ^1.4.0
|
||||||
@@ -289,6 +289,25 @@ importers:
|
|||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../zitadel-tailwind-config
|
version: link:../zitadel-tailwind-config
|
||||||
|
|
||||||
|
packages/zitadel-node:
|
||||||
|
dependencies:
|
||||||
|
'@connectrpc/connect-node':
|
||||||
|
specifier: ^1.4.0
|
||||||
|
version: 1.4.0(@bufbuild/protobuf@1.9.0)(@connectrpc/connect@1.4.0(@bufbuild/protobuf@1.9.0))
|
||||||
|
jose:
|
||||||
|
specifier: ^5.3.0
|
||||||
|
version: 5.3.0
|
||||||
|
devDependencies:
|
||||||
|
'@zitadel/client2':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../zitadel-client2
|
||||||
|
'@zitadel/tsconfig':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../zitadel-tsconfig
|
||||||
|
eslint-config-zitadel:
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../eslint-config-zitadel
|
||||||
|
|
||||||
packages/zitadel-prettier-config: {}
|
packages/zitadel-prettier-config: {}
|
||||||
|
|
||||||
packages/zitadel-proto:
|
packages/zitadel-proto:
|
||||||
@@ -672,6 +691,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, tarball: https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz}
|
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, tarball: https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz}
|
||||||
engines: {node: '>=0.1.90'}
|
engines: {node: '>=0.1.90'}
|
||||||
|
|
||||||
|
'@connectrpc/connect-node@1.4.0':
|
||||||
|
resolution: {integrity: sha512-0ANnrr6SvsjevsWEgdzHy7BaHkluZyS6s4xNoVt7RBHFR5V/kT9lPokoIbYUOU9JHzdRgTaS3x5595mwUsu15g==, tarball: https://registry.npmjs.org/@connectrpc/connect-node/-/connect-node-1.4.0.tgz}
|
||||||
|
engines: {node: '>=16.0.0'}
|
||||||
|
peerDependencies:
|
||||||
|
'@bufbuild/protobuf': ^1.4.2
|
||||||
|
'@connectrpc/connect': 1.4.0
|
||||||
|
|
||||||
'@connectrpc/connect@1.4.0':
|
'@connectrpc/connect@1.4.0':
|
||||||
resolution: {integrity: sha512-vZeOkKaAjyV4+RH3+rJZIfDFJAfr+7fyYr6sLDKbYX3uuTVszhFe9/YKf5DNqrDb5cKdKVlYkGn6DTDqMitAnA==, tarball: https://registry.npmjs.org/@connectrpc/connect/-/connect-1.4.0.tgz}
|
resolution: {integrity: sha512-vZeOkKaAjyV4+RH3+rJZIfDFJAfr+7fyYr6sLDKbYX3uuTVszhFe9/YKf5DNqrDb5cKdKVlYkGn6DTDqMitAnA==, tarball: https://registry.npmjs.org/@connectrpc/connect/-/connect-1.4.0.tgz}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -978,6 +1004,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==, tarball: https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz}
|
resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==, tarball: https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
|
|
||||||
|
'@fastify/busboy@2.1.1':
|
||||||
|
resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==, tarball: https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz}
|
||||||
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
'@grpc/grpc-js@1.8.13':
|
'@grpc/grpc-js@1.8.13':
|
||||||
resolution: {integrity: sha512-iY3jsdfbc0ARoCLFvbvUB8optgyb0r1XLPb142u+QtgBcKJYkCIFt3Fd/881KqjLYWjsBJF57N3b8Eop9NDfUA==}
|
resolution: {integrity: sha512-iY3jsdfbc0ARoCLFvbvUB8optgyb0r1XLPb142u+QtgBcKJYkCIFt3Fd/881KqjLYWjsBJF57N3b8Eop9NDfUA==}
|
||||||
engines: {node: ^8.13.0 || >=10.10.0}
|
engines: {node: ^8.13.0 || >=10.10.0}
|
||||||
@@ -1052,7 +1082,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz}
|
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz}
|
||||||
|
|
||||||
'@jridgewell/sourcemap-codec@1.4.15':
|
'@jridgewell/sourcemap-codec@1.4.15':
|
||||||
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
|
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz}
|
||||||
|
|
||||||
'@jridgewell/trace-mapping@0.3.18':
|
'@jridgewell/trace-mapping@0.3.18':
|
||||||
resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz}
|
resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz}
|
||||||
@@ -3063,6 +3093,9 @@ packages:
|
|||||||
jose@4.13.1:
|
jose@4.13.1:
|
||||||
resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==}
|
resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==}
|
||||||
|
|
||||||
|
jose@5.3.0:
|
||||||
|
resolution: {integrity: sha512-IChe9AtAE79ru084ow8jzkN2lNrG3Ntfiv65Cvj9uOCE2m5LNsdHG+9EbxWxAoWRF9TgDOqLN5jm08++owDVRg==, tarball: https://registry.npmjs.org/jose/-/jose-5.3.0.tgz}
|
||||||
|
|
||||||
joycon@3.1.1:
|
joycon@3.1.1:
|
||||||
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
|
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -3591,7 +3624,7 @@ packages:
|
|||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
p-limit@3.1.0:
|
p-limit@3.1.0:
|
||||||
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
|
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, tarball: https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
p-limit@5.0.0:
|
p-limit@5.0.0:
|
||||||
@@ -4557,7 +4590,7 @@ packages:
|
|||||||
engines: {node: '>= 0.8.0'}
|
engines: {node: '>= 0.8.0'}
|
||||||
|
|
||||||
type-detect@4.0.8:
|
type-detect@4.0.8:
|
||||||
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
|
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, tarball: https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
type-fest@0.13.1:
|
type-fest@0.13.1:
|
||||||
@@ -4629,6 +4662,10 @@ packages:
|
|||||||
undefsafe@2.0.5:
|
undefsafe@2.0.5:
|
||||||
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
|
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
|
||||||
|
|
||||||
|
undici@5.28.4:
|
||||||
|
resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==, tarball: https://registry.npmjs.org/undici/-/undici-5.28.4.tgz}
|
||||||
|
engines: {node: '>=14.0'}
|
||||||
|
|
||||||
universalify@0.1.2:
|
universalify@0.1.2:
|
||||||
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
|
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
|
||||||
engines: {node: '>= 4.0.0'}
|
engines: {node: '>= 4.0.0'}
|
||||||
@@ -5317,6 +5354,12 @@ snapshots:
|
|||||||
'@colors/colors@1.5.0':
|
'@colors/colors@1.5.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@connectrpc/connect-node@1.4.0(@bufbuild/protobuf@1.9.0)(@connectrpc/connect@1.4.0(@bufbuild/protobuf@1.9.0))':
|
||||||
|
dependencies:
|
||||||
|
'@bufbuild/protobuf': 1.9.0
|
||||||
|
'@connectrpc/connect': 1.4.0(@bufbuild/protobuf@1.9.0)
|
||||||
|
undici: 5.28.4
|
||||||
|
|
||||||
'@connectrpc/connect@1.4.0(@bufbuild/protobuf@1.9.0)':
|
'@connectrpc/connect@1.4.0(@bufbuild/protobuf@1.9.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@bufbuild/protobuf': 1.9.0
|
'@bufbuild/protobuf': 1.9.0
|
||||||
@@ -5510,6 +5553,8 @@ snapshots:
|
|||||||
|
|
||||||
'@eslint/js@8.57.0': {}
|
'@eslint/js@8.57.0': {}
|
||||||
|
|
||||||
|
'@fastify/busboy@2.1.1': {}
|
||||||
|
|
||||||
'@grpc/grpc-js@1.8.13':
|
'@grpc/grpc-js@1.8.13':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@grpc/proto-loader': 0.7.6
|
'@grpc/proto-loader': 0.7.6
|
||||||
@@ -7953,6 +7998,8 @@ snapshots:
|
|||||||
|
|
||||||
jose@4.13.1: {}
|
jose@4.13.1: {}
|
||||||
|
|
||||||
|
jose@5.3.0: {}
|
||||||
|
|
||||||
joycon@3.1.1: {}
|
joycon@3.1.1: {}
|
||||||
|
|
||||||
js-base64@3.7.5: {}
|
js-base64@3.7.5: {}
|
||||||
@@ -9745,6 +9792,10 @@ snapshots:
|
|||||||
|
|
||||||
undefsafe@2.0.5: {}
|
undefsafe@2.0.5: {}
|
||||||
|
|
||||||
|
undici@5.28.4:
|
||||||
|
dependencies:
|
||||||
|
'@fastify/busboy': 2.1.1
|
||||||
|
|
||||||
universalify@0.1.2: {}
|
universalify@0.1.2: {}
|
||||||
|
|
||||||
universalify@0.2.0: {}
|
universalify@0.2.0: {}
|
||||||
|
|||||||
Reference in New Issue
Block a user