@goldstack/template-ssr-server 0.1.1 → 0.1.4

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.
@@ -4,11 +4,12 @@ export interface CompileBundleResponse {
4
4
  sourceMap?: string;
5
5
  metaFile?: string;
6
6
  }
7
- export declare const compileBundle: ({ entryPoint, metaFile, sourceMap, initialProperties, }: {
7
+ export declare const compileBundle: ({ entryPoint, metaFile, sourceMap, initialProperties, includeCss, }: {
8
8
  entryPoint: string;
9
9
  metaFile?: boolean | undefined;
10
10
  sourceMap?: boolean | undefined;
11
11
  initialProperties?: any;
12
+ includeCss: boolean;
12
13
  }) => Promise<CompileBundleResponse>;
13
14
  export declare const bundleResponse: ({ entryPoint, initialProperties, }: {
14
15
  entryPoint: string;
@@ -1 +1 @@
1
- {"version":3,"file":"compileBundle.d.ts","sourceRoot":"","sources":["../../src/compileBundle.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AA4BrD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa;gBAMZ,MAAM;;;wBAGE,GAAG;MACrB,QAAQ,qBAAqB,CAyChC,CAAC;AAEF,eAAO,MAAM,cAAc;gBAIb,MAAM;wBACE,GAAG;MACrB,QAAQ,uBAAuB,CAWlC,CAAC;AAoBF,eAAO,MAAM,iBAAiB;gBAGhB,MAAM;MAChB,QAAQ,uBAAuB,CAmBlC,CAAC"}
1
+ {"version":3,"file":"compileBundle.d.ts","sourceRoot":"","sources":["../../src/compileBundle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAoCrD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAsBD,eAAO,MAAM,aAAa;gBAOZ,MAAM;;;wBAGE,GAAG;gBACX,OAAO;MACjB,QAAQ,qBAAqB,CAyChC,CAAC;AAEF,eAAO,MAAM,cAAc;gBAIb,MAAM;wBACE,GAAG;MACrB,QAAQ,uBAAuB,CAkBlC,CAAC;AAoBF,eAAO,MAAM,iBAAiB;gBAGhB,MAAM;MAChB,QAAQ,uBAAuB,CAsBlC,CAAC"}
@@ -1,22 +1,34 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.sourceMapResponse = exports.bundleResponse = exports.compileBundle = void 0;
4
7
  const esbuild_1 = require("esbuild");
5
8
  const esbuild_plugin_pnp_1 = require("@yarnpkg/esbuild-plugin-pnp");
9
+ const esbuild_css_modules_client_plugin_1 = __importDefault(require("esbuild-css-modules-client-plugin"));
6
10
  const utils_sh_1 = require("@goldstack/utils-sh");
7
11
  const path_1 = require("path");
8
- const sharedConfig = {
9
- plugins: [(0, esbuild_plugin_pnp_1.pnpPlugin)()],
10
- bundle: true,
11
- external: [
12
- 'esbuild',
13
- '@yarnpkg/esbuild-plugin-pnp',
14
- '@goldstack/template-ssr-server', // this is only required on the server side
15
- ],
16
- minify: true,
17
- platform: 'browser',
18
- format: 'iife',
19
- treeShaking: true,
12
+ const sharedConfig = (includeCss) => {
13
+ return {
14
+ plugins: [
15
+ (0, esbuild_css_modules_client_plugin_1.default)({
16
+ excludeCSSInject: !includeCss,
17
+ }),
18
+ (0, esbuild_plugin_pnp_1.pnpPlugin)(),
19
+ ],
20
+ bundle: true,
21
+ outfile: '/dist/tmp/bundle.js',
22
+ external: [
23
+ 'esbuild',
24
+ '@yarnpkg/esbuild-plugin-pnp',
25
+ '@goldstack/template-ssr-server', // this is only required on the server side
26
+ ],
27
+ minify: true,
28
+ platform: 'browser',
29
+ format: 'iife',
30
+ treeShaking: true,
31
+ };
20
32
  };
21
33
  const getEsBuildConfig = (entryPoint) => {
22
34
  const esbuildConfig = (0, utils_sh_1.readToType)('./esbuild.config.json');
@@ -24,16 +36,24 @@ const getEsBuildConfig = (entryPoint) => {
24
36
  const localEsbuildConfig = (0, utils_sh_1.readToType)(esbuildLocalPath);
25
37
  return { ...esbuildConfig, ...localEsbuildConfig };
26
38
  };
27
- const compileBundle = async ({ entryPoint, metaFile, sourceMap, initialProperties, }) => {
39
+ const getOutput = (extension, result) => {
40
+ const matchedFiles = result.outputFiles.filter((file) => file.path.endsWith(extension));
41
+ if (matchedFiles.length !== 1) {
42
+ throw new Error(`Invalid output from esbuild. Expected only one '${extension}' file but found ${matchedFiles.length}`);
43
+ }
44
+ const output = Buffer.from(matchedFiles[0].contents).toString('utf-8');
45
+ return output;
46
+ };
47
+ const compileBundle = async ({ entryPoint, metaFile, sourceMap, initialProperties, includeCss, }) => {
28
48
  const res = await (0, esbuild_1.build)({
29
- ...sharedConfig,
49
+ ...sharedConfig(includeCss),
30
50
  entryPoints: [entryPoint],
31
51
  metafile: metaFile,
32
52
  sourcemap: sourceMap ? 'inline' : undefined,
33
53
  ...getEsBuildConfig(entryPoint),
34
54
  write: false,
35
55
  });
36
- const output = Buffer.from(res.outputFiles[0].contents).toString('utf-8');
56
+ const output = getOutput('.js', res);
37
57
  let result = {
38
58
  bundle: '',
39
59
  };
@@ -62,11 +82,18 @@ const compileBundle = async ({ entryPoint, metaFile, sourceMap, initialPropertie
62
82
  };
63
83
  exports.compileBundle = compileBundle;
64
84
  const bundleResponse = async ({ entryPoint, initialProperties, }) => {
65
- const res = await (0, exports.compileBundle)({ entryPoint, initialProperties });
85
+ const res = await (0, exports.compileBundle)({
86
+ entryPoint,
87
+ initialProperties,
88
+ includeCss: true,
89
+ });
66
90
  return {
67
91
  statusCode: 201,
68
92
  headers: {
69
93
  'Content-Type': 'application/javascript',
94
+ 'Cache-Control': 'no-cache, no-store, must-revalidate',
95
+ Pragma: 'no-cache',
96
+ Expire: '0',
70
97
  SourceMap: '?resource=sourcemap',
71
98
  },
72
99
  body: res.bundle,
@@ -88,7 +115,7 @@ const removeSourceMap = (output) => {
88
115
  };
89
116
  const sourceMapResponse = async ({ entryPoint, }) => {
90
117
  const res = await (0, esbuild_1.build)({
91
- ...sharedConfig,
118
+ ...sharedConfig(false),
92
119
  entryPoints: [entryPoint],
93
120
  sourcemap: 'inline',
94
121
  ...getEsBuildConfig(entryPoint),
@@ -100,6 +127,9 @@ const sourceMapResponse = async ({ entryPoint, }) => {
100
127
  statusCode: 201,
101
128
  headers: {
102
129
  'Content-Type': 'application/json',
130
+ 'Cache-Control': 'no-cache, no-store, must-revalidate',
131
+ Pragma: 'no-cache',
132
+ Expire: '0',
103
133
  },
104
134
  body: sourceMapData,
105
135
  };
@@ -1 +1 @@
1
- {"version":3,"file":"compileBundle.js","sourceRoot":"","sources":["../../src/compileBundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compileBundle.js","sourceRoot":"","sources":["../../src/compileBundle.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import type { APIGatewayProxyEventV2, APIGatewayProxyResultV2 } from 'aws-lambda';
3
3
  export declare const clientBundleFileName = "client.bundle.js";
4
+ export declare const clientCSSFileName = "client.bundle.css";
4
5
  export interface RenderDocumentProps {
5
6
  bundledJsPath: string;
7
+ styles?: string;
6
8
  renderedHtml: string;
7
9
  }
8
10
  export interface RenderPageProps<PropType> {
@@ -1 +1 @@
1
- {"version":3,"file":"templateSSRServer.d.ts","sourceRoot":"","sources":["../../src/templateSSRServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAQpB,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe,CAAC,QAAQ;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,MAAM,CAAC;IACvD,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,UAAU,EAAE,QAAQ,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,0GAMQ,QAAQ,uBAAuB,CA+D7D,CAAC"}
1
+ {"version":3,"file":"templateSSRServer.d.ts","sourceRoot":"","sources":["../../src/templateSSRServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAQpB,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe,CAAC,QAAQ;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,MAAM,CAAC;IACvD,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,UAAU,EAAE,QAAQ,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,0GAMQ,QAAQ,uBAAuB,CAwE7D,CAAC"}
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.renderPage = exports.clientBundleFileName = void 0;
6
+ exports.renderPage = exports.clientCSSFileName = exports.clientBundleFileName = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const lambda_compression_1 = require("lambda-compression");
9
9
  const server_1 = require("react-dom/server");
10
10
  const utils_esbuild_1 = require("@goldstack/utils-esbuild");
11
11
  const fs_1 = require("fs");
12
12
  exports.clientBundleFileName = 'client.bundle.js';
13
+ exports.clientCSSFileName = 'client.bundle.css';
13
14
  const renderPage = async ({ entryPoint, event, renderDocument, component, properties, }) => {
14
15
  if (event.queryStringParameters && event.queryStringParameters['resource']) {
15
16
  if (event.queryStringParameters['resource'].indexOf('js') > -1) {
@@ -55,8 +56,17 @@ const renderPage = async ({ entryPoint, event, renderDocument, component, proper
55
56
  }
56
57
  }
57
58
  const page = (0, server_1.renderToString)(react_1.default.createElement(component, properties));
59
+ let styles;
60
+ // only inject styles when in lambda - otherwise they are loaded dynamically
61
+ if (process.env.AWS_LAMBDA_FUNCTION_NAME) {
62
+ styles = (0, fs_1.readFileSync)(exports.clientCSSFileName, 'utf-8');
63
+ }
64
+ else {
65
+ styles = undefined;
66
+ }
58
67
  const document = renderDocument({
59
68
  bundledJsPath: '?resource=js',
69
+ styles,
60
70
  renderedHtml: page,
61
71
  });
62
72
  return (0, lambda_compression_1.compress)(event, {
@@ -1 +1 @@
1
- {"version":3,"file":"templateSSRServer.js","sourceRoot":"","sources":["../../src/templateSSRServer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAO1B,2DAA8C;AAE9C,6CAAkD;AAClD,4DAA2D;AAC3D,2BAAkC;AAErB,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAehD,MAAM,UAAU,GAAG,KAAK,EAAY,EACzC,UAAU,EACV,KAAK,EACL,cAAc,EACd,SAAS,EACT,UAAU,GACgB,EAAoC,EAAE;IAChE,IAAI,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE;QAC1E,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;gBACxC,0DAA0D;gBAC1D,OAAO,IAAA,6BAAQ,EAAC,KAAK,EAAE;oBACrB,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE;wBACP,cAAc,EAAE,wBAAwB;wBACxC,SAAS,EAAE,qBAAqB;qBACjC;oBACD,IAAI,EAAE,4BAA4B,IAAI,CAAC,SAAS,CAC9C,UAAU,CACX,IAAI,IAAA,iBAAY,EAAC,4BAAoB,EAAE,OAAO,CAAC,EAAE;iBACnD,CAAC,CAAC;aACJ;iBAAM;gBACL,oDAAoD;gBACpD,OAAO,IAAA,6BAAQ,EACb,KAAK;gBACL,8DAA8D;gBAC9D,OAAO,CAAC,IAAA,+BAAe,EAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC;oBACzD,UAAU;oBACV,iBAAiB,EAAE,UAAU;iBAC9B,CAAC,CACH,CAAC;aACH;SACF;QAED,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;YACrE,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;gBACxC,6DAA6D;gBAC7D,OAAO,IAAA,6BAAQ,EAAC,KAAK,EAAE;oBACrB,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAA,iBAAY,EAAC,4BAAoB,GAAG,MAAM,EAAE,OAAO,CAAC;iBAC3D,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,IAAA,6BAAQ,EACb,KAAK;gBACL,8DAA8D;gBAC9D,OAAO,CAAC,IAAA,+BAAe,EAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBAC5D,UAAU;iBACX,CAAC,CACH,CAAC;aACH;SACF;KACF;IAED,MAAM,IAAI,GAAG,IAAA,uBAAc,EAAC,eAAK,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAExE,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,aAAa,EAAE,cAAc;QAC7B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,OAAO,IAAA,6BAAQ,EAAC,KAAK,EAAE;QACrB,UAAU,EAAE,GAAG;QACf,OAAO,EAAE;YACP,cAAc,EAAE,WAAW;SAC5B;QACD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AArEW,QAAA,UAAU,cAqErB"}
1
+ {"version":3,"file":"templateSSRServer.js","sourceRoot":"","sources":["../../src/templateSSRServer.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAO1B,2DAA8C;AAE9C,6CAAkD;AAClD,4DAA2D;AAC3D,2BAAkC;AAErB,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAC1C,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAgB9C,MAAM,UAAU,GAAG,KAAK,EAAY,EACzC,UAAU,EACV,KAAK,EACL,cAAc,EACd,SAAS,EACT,UAAU,GACgB,EAAoC,EAAE;IAChE,IAAI,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE;QAC1E,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;gBACxC,0DAA0D;gBAC1D,OAAO,IAAA,6BAAQ,EAAC,KAAK,EAAE;oBACrB,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE;wBACP,cAAc,EAAE,wBAAwB;wBACxC,SAAS,EAAE,qBAAqB;qBACjC;oBACD,IAAI,EAAE,4BAA4B,IAAI,CAAC,SAAS,CAC9C,UAAU,CACX,IAAI,IAAA,iBAAY,EAAC,4BAAoB,EAAE,OAAO,CAAC,EAAE;iBACnD,CAAC,CAAC;aACJ;iBAAM;gBACL,oDAAoD;gBACpD,OAAO,IAAA,6BAAQ,EACb,KAAK;gBACL,8DAA8D;gBAC9D,OAAO,CAAC,IAAA,+BAAe,EAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC;oBACzD,UAAU;oBACV,iBAAiB,EAAE,UAAU;iBAC9B,CAAC,CACH,CAAC;aACH;SACF;QAED,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE;YACrE,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;gBACxC,6DAA6D;gBAC7D,OAAO,IAAA,6BAAQ,EAAC,KAAK,EAAE;oBACrB,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAA,iBAAY,EAAC,4BAAoB,GAAG,MAAM,EAAE,OAAO,CAAC;iBAC3D,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,IAAA,6BAAQ,EACb,KAAK;gBACL,8DAA8D;gBAC9D,OAAO,CAAC,IAAA,+BAAe,EAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBAC5D,UAAU;iBACX,CAAC,CACH,CAAC;aACH;SACF;KACF;IAED,MAAM,IAAI,GAAG,IAAA,uBAAc,EAAC,eAAK,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAExE,IAAI,MAA0B,CAAC;IAC/B,4EAA4E;IAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;QACxC,MAAM,GAAG,IAAA,iBAAY,EAAC,yBAAiB,EAAE,OAAO,CAAC,CAAC;KACnD;SAAM;QACL,MAAM,GAAG,SAAS,CAAC;KACpB;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,aAAa,EAAE,cAAc;QAC7B,MAAM;QACN,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,OAAO,IAAA,6BAAQ,EAAC,KAAK,EAAE;QACrB,UAAU,EAAE,GAAG;QACf,OAAO,EAAE;YACP,cAAc,EAAE,WAAW;SAC5B;QACD,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AA9EW,QAAA,UAAU,cA8ErB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goldstack/template-ssr-server",
3
- "version": "0.1.1",
3
+ "version": "0.1.4",
4
4
  "description": "Building blocks for implementing server-side rendered pages.",
5
5
  "keywords": [
6
6
  "goldstack",
@@ -40,7 +40,7 @@
40
40
  "dependencies": {
41
41
  "@goldstack/infra": "0.3.38",
42
42
  "@goldstack/infra-aws": "0.3.47",
43
- "@goldstack/utils-aws-lambda": "0.1.32",
43
+ "@goldstack/utils-aws-lambda": "0.1.34",
44
44
  "@goldstack/utils-esbuild": "0.4.3",
45
45
  "@goldstack/utils-package": "0.3.41",
46
46
  "@goldstack/utils-package-config-embedded": "0.4.5",
@@ -49,7 +49,8 @@
49
49
  "@goldstack/utils-terraform": "0.3.71",
50
50
  "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.11",
51
51
  "esbuild": "^0.14.48",
52
- "lambda-compression": "0.1.1",
52
+ "esbuild-css-modules-client-plugin": "0.1.2",
53
+ "lambda-compression": "0.1.2",
53
54
  "react": "^18.2.0",
54
55
  "react-dom": "^18.2.0",
55
56
  "source-map-support": "^0.5.21"
@@ -62,11 +63,12 @@
62
63
  "@types/jest": "^27.5.1",
63
64
  "@types/node": "^17.0.33",
64
65
  "@types/react": "^18.0.15",
66
+ "@types/sha256": "^0",
65
67
  "@types/yargs": "^17.0.10",
66
68
  "jest": "^28.1.0",
67
69
  "rimraf": "^3.0.2",
68
70
  "ts-jest": "^28.0.2",
69
- "ts-node": "^10.8.0",
71
+ "ts-node": "^10.9.1",
70
72
  "typescript": "^4.7.4"
71
73
  },
72
74
  "publishConfig": {