@crossplane-org/function-sdk-typescript 0.2.0 → 0.3.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.
Files changed (41) hide show
  1. package/dist/example-function.d.ts +3 -3
  2. package/dist/example-function.d.ts.map +1 -1
  3. package/dist/example-function.js +25 -25
  4. package/dist/example-function.js.map +1 -1
  5. package/dist/function/function.d.ts +3 -3
  6. package/dist/function/function.d.ts.map +1 -1
  7. package/dist/function/function.js +8 -7
  8. package/dist/function/function.js.map +1 -1
  9. package/dist/index.d.ts +8 -8
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +6 -6
  12. package/dist/index.js.map +1 -1
  13. package/dist/main.js +16 -17
  14. package/dist/main.js.map +1 -1
  15. package/dist/proto/google/protobuf/duration.js +1 -1
  16. package/dist/proto/google/protobuf/duration.js.map +1 -1
  17. package/dist/proto/google/protobuf/struct.d.ts.map +1 -1
  18. package/dist/proto/google/protobuf/struct.js +7 -7
  19. package/dist/proto/google/protobuf/struct.js.map +1 -1
  20. package/dist/proto/run_function.d.ts.map +1 -1
  21. package/dist/proto/run_function.js +41 -38
  22. package/dist/proto/run_function.js.map +1 -1
  23. package/dist/request/request.d.ts +1 -1
  24. package/dist/request/request.js +1 -1
  25. package/dist/request/request.js.map +1 -1
  26. package/dist/resource/resource.d.ts +1 -1
  27. package/dist/resource/resource.d.ts.map +1 -1
  28. package/dist/resource/resource.js +1 -1
  29. package/dist/resource/resource.js.map +1 -1
  30. package/dist/response/response.d.ts +3 -3
  31. package/dist/response/response.d.ts.map +1 -1
  32. package/dist/response/response.js +6 -6
  33. package/dist/response/response.js.map +1 -1
  34. package/dist/runtime/runtime.d.ts +3 -3
  35. package/dist/runtime/runtime.d.ts.map +1 -1
  36. package/dist/runtime/runtime.js +13 -12
  37. package/dist/runtime/runtime.js.map +1 -1
  38. package/dist/vitest.config.d.ts.map +1 -1
  39. package/dist/vitest.config.js +1 -5
  40. package/dist/vitest.config.js.map +1 -1
  41. package/package.json +18 -9
@@ -5,10 +5,10 @@
5
5
  * handle TLS credentials, and manage server lifecycle. It simplifies the process
6
6
  * of setting up a production-ready function server with proper security.
7
7
  */
8
- import * as grpc from "@grpc/grpc-js";
9
- import { readFileSync } from "node:fs";
10
- import { join } from "node:path";
11
- import { FunctionRunner, getServer } from "../function/function.js";
8
+ import * as grpc from '@grpc/grpc-js';
9
+ import { readFileSync } from 'node:fs';
10
+ import { join } from 'node:path';
11
+ import { FunctionRunner, getServer } from '../function/function.js';
12
12
  /**
13
13
  * Create gRPC ServerCredentials from TLS certificate files.
14
14
  *
@@ -41,17 +41,18 @@ import { FunctionRunner, getServer } from "../function/function.js";
41
41
  * ```
42
42
  */
43
43
  export function getServerCredentials(opts) {
44
- if (opts?.insecure || opts?.tlsServerCertsDir === "" || opts?.tlsServerCertsDir === undefined) {
44
+ if (opts?.insecure || opts?.tlsServerCertsDir === '' || opts?.tlsServerCertsDir === undefined) {
45
45
  return grpc.ServerCredentials.createInsecure();
46
46
  }
47
47
  const tlsCertsDir = opts.tlsServerCertsDir;
48
- if (typeof tlsCertsDir !== "string" || tlsCertsDir.trim() === "") {
49
- throw new Error("tlsServerCertsDir must be a non-empty string when TLS is enabled");
48
+ if (typeof tlsCertsDir !== 'string' || tlsCertsDir.trim() === '') {
49
+ throw new Error('tlsServerCertsDir must be a non-empty string when TLS is enabled');
50
50
  }
51
- const privateKey = readFileSync(join(tlsCertsDir, "tls.key"));
52
- const certChain = readFileSync(join(tlsCertsDir, "tls.crt"));
53
- const rootCerts = readFileSync(join(tlsCertsDir, "ca.crt"));
54
- return grpc.ServerCredentials.createSsl(rootCerts, [{ private_key: privateKey, cert_chain: certChain }], false);
51
+ const privateKey = readFileSync(join(tlsCertsDir, 'tls.key'));
52
+ const certChain = readFileSync(join(tlsCertsDir, 'tls.crt'));
53
+ const rootCerts = readFileSync(join(tlsCertsDir, 'ca.crt'));
54
+ return grpc.ServerCredentials.createSsl(rootCerts, [{ private_key: privateKey, cert_chain: certChain }], false // Set to false to make client certificates optional
55
+ );
55
56
  }
56
57
  /**
57
58
  * Create a new gRPC server with the function runner registered.
@@ -74,7 +75,7 @@ export function getServerCredentials(opts) {
74
75
  export function newGrpcServer(functionRunner, logger) {
75
76
  const server = getServer(functionRunner, logger);
76
77
  if (logger) {
77
- logger.debug("grpc server created");
78
+ logger.debug('grpc server created');
78
79
  }
79
80
  return server;
80
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAiCpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,oBAAoB,CAChC,IAAoB;IAEpB,IAAI,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,iBAAiB,KAAK,EAAE,IAAI,IAAI,EAAE,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CACnC,SAAS,EACT,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EACpD,KAAK,CACR,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,cAA8B,EAAE,MAAc;IACxE,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,IAAmB,EAAE,MAAc;IAChF,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,CAAC,SAAS,CACZ,IAAI,CAAC,OAAO,EACZ,KAAK,EACL,CAAC,GAAG,EAAE,EAAE;QACJ,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC,CACJ,CAAC;IACF,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAiCpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAoB;IACvD,IAAI,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,iBAAiB,KAAK,EAAE,IAAI,IAAI,EAAE,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC9F,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CACrC,SAAS,EACT,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EACpD,KAAK,CAAC,oDAAoD;KAC3D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,cAA8B,EAAE,MAAc;IAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,IAAmB,EAAE,MAAc;IAClF,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5C,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../src/vitest.config.ts"],"names":[],"mappings":";AAEA,wBAcG"}
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../src/vitest.config.ts"],"names":[],"mappings":";AAEA,wBAUG"}
@@ -6,11 +6,7 @@ export default defineConfig({
6
6
  coverage: {
7
7
  provider: 'v8',
8
8
  reporter: ['text', 'json', 'html'],
9
- exclude: [
10
- 'node_modules/',
11
- 'dist/',
12
- 'src/proto/',
13
- ],
9
+ exclude: ['node_modules/', 'dist/', 'src/proto/'],
14
10
  },
15
11
  },
16
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../src/vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAClC,OAAO,EAAE;gBACP,eAAe;gBACf,OAAO;gBACP,YAAY;aACb;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../src/vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAClC,OAAO,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC;SAClD;KACF;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossplane-org/function-sdk-typescript",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "A Crossplane Function SDK for Typescript",
5
5
  "keywords": [
6
6
  "crossplane",
@@ -28,28 +28,37 @@
28
28
  ],
29
29
  "scripts": {
30
30
  "clean": "scripts/clean.sh",
31
+ "protoc-gen": "scripts/protoc-gen.sh",
31
32
  "build": "npx tsc",
32
33
  "pack": "npm pack",
33
34
  "prepublishOnly": "npm run build",
34
35
  "test": "vitest run",
35
36
  "test:watch": "vitest",
36
- "test:coverage": "vitest run --coverage"
37
+ "test:coverage": "vitest run --coverage",
38
+ "lint": "eslint src",
39
+ "lint:fix": "eslint src --fix",
40
+ "format": "prettier --write \"src/**/*.{ts,tsx,json,md}\"",
41
+ "format:check": "prettier --check \"src/**/*.{ts,tsx,json,md}\""
37
42
  },
38
43
  "dependencies": {
39
- "@grpc/grpc-js": "^1.12.4",
44
+ "@grpc/grpc-js": "^1.14.3",
40
45
  "@grpc/proto-loader": "^0.8.0",
41
- "google-protobuf": "^4.0.0",
46
+ "google-protobuf": "^4.0.1",
42
47
  "kubernetes-models": "^4.5.1",
43
48
  "pino": "^10.1.0",
44
49
  "ts-deepmerge": "^7.0.3",
45
- "ts-proto": "^2.8.3"
50
+ "ts-proto": "^2.10.1"
46
51
  },
47
52
  "devDependencies": {
53
+ "@eslint/js": "^9.39.2",
48
54
  "@types/google-protobuf": "^3.15.12",
49
- "@types/node": "^22.10.5",
50
- "@vitest/coverage-v8": "^2.1.8",
55
+ "@types/node": "^25.0.3",
56
+ "@vitest/coverage-v8": "^4.0.16",
57
+ "eslint": "^9.39.2",
58
+ "prettier": "^3.7.4",
51
59
  "ts-node": "^10.9.2",
52
- "typescript": "^5.7.2",
53
- "vitest": "^2.1.8"
60
+ "typescript": "^5.9.3",
61
+ "typescript-eslint": "^8.52.0",
62
+ "vitest": "^4.0.16"
54
63
  }
55
64
  }