@mondomob/gae-node-nestjs 12.0.0-alpha-3 → 12.0.0-alpha2

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.
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "permissions": {
3
3
  "allow": [
4
- "Bash(npm ls:*)"
4
+ "Bash(npm ls:*)",
5
+ "Bash(tar -tzf mondomob-gae-node-nestjs-12.0.0-alpha-3.tgz)",
6
+ "Bash(mkdir -p /tmp/alpha3-check)",
7
+ "Bash(tar -xzf mondomob-gae-node-nestjs-12.0.0-alpha-3.tgz -C /tmp/alpha3-check)",
8
+ "Bash(grep -E '\\\\.ts$')"
5
9
  ]
6
10
  }
7
11
  }
package/CHANGELOG.md CHANGED
@@ -1,3 +1,71 @@
1
+ ## 12.0.0-alpha2 (2026-10-17)
2
+
3
+ Clears the remaining critical and high `npm audit` findings that come from this lib's own dependencies.
4
+
5
+ `@apollo/server` has moved from `dependencies` to `peerDependencies` (`^4.13.0`).
6
+ - the lib never imported it; `@nestjs/apollo` also declares it as a peer
7
+ - apps that use GraphQL must declare `@apollo/server` themselves (npm 7+ installs missing peers automatically)
8
+ - this removes `@apollo/server`'s vulnerable transitive packages (`sha.js`, `@graphql-tools/*`) from the lib's own dependencies
9
+ - `@apollo/server` 5 is not supported by `@nestjs/apollo` 12 yet, so stay on 4.x
10
+
11
+ Refreshed the lockfile to pick up patched versions of transitive packages including:
12
+ - @grpc/grpc-js, @xmldom/xmldom, axios, form-data, jws
13
+ - brace-expansion, minimatch, path-to-regexp, browserslist, serialize-javascript
14
+
15
+ Consumers should refresh their own lockfiles to pick these up.
16
+
17
+
18
+ ## 12.0.0-alpha1 (2026-10-17)
19
+
20
+ Security release: clears the critical and several high `npm audit` findings from this lib's dependencies.
21
+
22
+ Node.js 22 or newer is now required (`engines.node >= 22`).
23
+
24
+ Updating major versions of internal packages including:
25
+ - nodemailer 6.9.15 -> 10.1.1
26
+ - TLS certificates are now validated by default for HTTPS fetches (Gmail OAuth token endpoint,
27
+ attachment URLs, proxy CONNECT). Hosts with self-signed or mismatched certificates will fail
28
+ unless `tls.rejectUnauthorized=false` is set.
29
+ - The SMTP error code `NoAuth` is now `ENOAUTH`.
30
+ - nodemailer now ships its own types. `@types/nodemailer` has been removed, and address fields
31
+ (`to`, `cc`, `bcc`) on `Options` now accept nested arrays and group addresses. Custom `MailSender`
32
+ implementations may need type updates.
33
+ - @google-cloud/trace-agent 7.1.2 -> 8.0.0
34
+ - removes `node-forge` (no upstream fix) from the dependency tree.
35
+ - trace-agent is deprecated upstream in favour of OpenTelemetry; this is a minimal bump only.
36
+
37
+ Updating minor versions of internal packages including:
38
+ - lodash 4.17.21 -> 4.18.1
39
+
40
+ Refreshed the lockfile for `protobufjs`, `proxy-addr` and `sha.js`, which were flagged critical.
41
+ Consumers should refresh their own lockfiles to pick these up.
42
+
43
+
44
+ ## 11.1.0 (2026-05-27)
45
+
46
+ Updated wildcard route matching from `'*'` to `'{*path}'` to align with Express v5 route syntax.
47
+
48
+ Updating minor versions of internal packages including:
49
+ - @apollo/server
50
+ - @google-cloud/datastore
51
+ - @google-cloud/storage
52
+ - @nestjs/common, @nestjs/core, @nestjs/platform-express
53
+ - express
54
+
55
+
56
+ ## 11.0.2 (2025-08-06)
57
+
58
+ Updating @node-saml/passport-saml from v4 to v5
59
+ - not a breaking change.
60
+
61
+ Updating various libs with minor version bumps only.
62
+
63
+ Removal of `dsui`
64
+ - dsui is an outdated Datastore UI for local development only
65
+ - removed code that attempts to start and stop dsui
66
+ - developers who still want to use this should handle the start/stop in their own projects
67
+
68
+
1
69
  ## 11.0.1 (2025-02-02)
2
70
 
3
71
  Updating minor versions for nestjs, express, express-session.
@@ -21,10 +21,10 @@ class MailWhitelistSender {
21
21
  .filter(address => this.filterAddress(address))
22
22
  .join(',');
23
23
  }
24
- return (0, lodash_1.castArray)(actualAddresses).filter(address => this.filterAddress(address));
24
+ return (0, lodash_1.flattenDeep)([actualAddresses]).filter(address => this.filterAddress(address));
25
25
  };
26
26
  this.filterAddress = (address) => {
27
- const email = typeof address === 'string' ? address.trim() : address.address.trim();
27
+ const email = typeof address === 'string' ? address.trim() : (address.address || '').trim();
28
28
  if (this.emailWhitelist.includes(email)) {
29
29
  return true;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mail-whitelist.sender.js","sourceRoot":"","sources":["../../src/mail/mail-whitelist.sender.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAInC,wCAAkD;AAElD,2CAAyC;AACzC,+DAA0D;AAE1D,MAAa,mBAAmB;IAI9B,YAA6B,UAAsB,EAAmB,qBAAoC;QAA7E,eAAU,GAAV,UAAU,CAAY;QAAmB,0BAAqB,GAArB,qBAAqB,CAAe;QAHzF,WAAM,GAAW,IAAA,sBAAY,EAAC,uBAAuB,CAAC,CAAC;QA6BhE,oBAAe,GAAG,CAAC,eAAuE,EAAE,EAAE;YACpG,IAAI,IAAA,gBAAO,EAAC,eAAe,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7C,OAAO,SAAS;qBACb,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;qBAC9B,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;qBAC9C,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;YAED,OAAO,IAAA,kBAAS,EAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,OAAyB,EAAW,EAAE;YAC7D,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpF,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAlDA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAChD,IAAI,CAAC,QAAQ,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,WAAoB;QAC/C,MAAM,iBAAiB,GAAG;YACxB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC;SAC3C,CAAC;QAEF,IAAI,IAAA,gBAAO,EAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,IAAA,gBAAO,EAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,IAAA,gBAAO,EAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YACrG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACxE,OAAO,IAAI,uCAAiB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,iBAAiB,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,kCAAO,WAAW,GAAK,iBAAiB,EAAG,CAAC;QACjF,CAAC;IACH,CAAC;CA4BF;AAxDD,kDAwDC"}
1
+ {"version":3,"file":"mail-whitelist.sender.js","sourceRoot":"","sources":["../../src/mail/mail-whitelist.sender.ts"],"names":[],"mappings":"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"}
@@ -24,16 +24,13 @@ let MailDiverter = class MailDiverter {
24
24
  return [];
25
25
  };
26
26
  this.getDivertedFromAddressesAsString = (actualAddress) => {
27
- let addressList = [actualAddress];
28
- if (actualAddress instanceof Array) {
29
- addressList = actualAddress;
30
- }
27
+ const addressList = (0, lodash_1.flattenDeep)([actualAddress]);
31
28
  const justAddresses = addressList
32
29
  .map(address => {
33
30
  if (typeof address === 'string') {
34
31
  return address.trim();
35
32
  }
36
- return address.address.trim();
33
+ return (address.address || '').trim();
37
34
  })
38
35
  .join(', ');
39
36
  const deAttedAddresses = (0, lodash_1.replace)(justAddresses, /@/g, '.at.');
@@ -1 +1 @@
1
- {"version":3,"file":"mail.diverter.js","sourceRoot":"","sources":["../../src/mail/mail.diverter.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,mCAA0C;AAE1C,oDAAgE;AAEhE,wCAAkD;AAI3C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGvB,YACmB,UAAsB,EAChB,qBAAqD;QAD3D,eAAU,GAAV,UAAU,CAAY;QACC,0BAAqB,GAArB,qBAAqB,CAAe;QAJ7D,WAAM,GAAW,IAAA,sBAAY,EAAC,eAAe,CAAC,CAAC;QAwBxD,oBAAe,GAAG,CAAC,eAAuE,EAAE,EAAE;YACpG,IAAI,CAAC,IAAA,gBAAO,EAAC,eAAe,CAAC,EAAE,CAAC;gBAE9B,MAAM,qBAAqB,GAAG,IAAI,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC;gBAErF,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;oBAC7E,OAAO;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,eAAe;qBACzB,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEM,qCAAgC,GAAG,CAAC,aAAyD,EAAE,EAAE;YAEvG,IAAI,WAAW,GAAG,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,aAAa,YAAY,KAAK,EAAE,CAAC;gBACnC,WAAW,GAAG,aAAa,CAAC;YAC9B,CAAC;YAED,MAAM,aAAa,GAAG,WAAW;iBAC9B,GAAG,CAAC,OAAO,CAAC,EAAE;gBACb,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC;gBAED,OAAQ,OAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,gBAAgB,GAAG,IAAA,gBAAO,EAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9D,OAAO,iBAAiB,gBAAgB,EAAE,CAAC;QAC7C,CAAC,CAAC;QApDA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAChD,IAAI,CAAC,QAAQ,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,WAAoB;QAC/C,MAAM,kBAAkB,GAAG;YACzB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC;SAC3C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,kCAAO,WAAW,GAAK,kBAAkB,EAAG,CAAC;IAClF,CAAC;CAqCF,CAAA;AA5DY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAMR,mBAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GALb,YAAY,CA4DxB"}
1
+ {"version":3,"file":"mail.diverter.js","sourceRoot":"","sources":["../../src/mail/mail.diverter.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,mCAAuD;AAGvD,oDAAgE;AAEhE,wCAAkD;AAI3C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGvB,YACmB,UAAsB,EAChB,qBAAqD;QAD3D,eAAU,GAAV,UAAU,CAAY;QACC,0BAAqB,GAArB,qBAAqB,CAAe;QAJ7D,WAAM,GAAW,IAAA,sBAAY,EAAC,eAAe,CAAC,CAAC;QAwBxD,oBAAe,GAAG,CAAC,eAA8B,EAAE,EAAE;YAC3D,IAAI,CAAC,IAAA,gBAAO,EAAC,eAAe,CAAC,EAAE,CAAC;gBAE9B,MAAM,qBAAqB,GAAG,IAAI,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC;gBAErF,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;oBAC7E,OAAO;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,eAAe;qBACzB,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEM,qCAAgC,GAAG,CAAC,aAAyC,EAAE,EAAE;YAEvF,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,CAAC,aAAa,CAAC,CAAoC,CAAC;YAEpF,MAAM,aAAa,GAAG,WAAW;iBAC9B,GAAG,CAAC,OAAO,CAAC,EAAE;gBACb,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC;gBAED,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,gBAAgB,GAAG,IAAA,gBAAO,EAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9D,OAAO,iBAAiB,gBAAgB,EAAE,CAAC;QAC7C,CAAC,CAAC;QAjDA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAChD,IAAI,CAAC,QAAQ,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,WAAoB;QAC/C,MAAM,kBAAkB,GAAG;YACzB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC;SAC3C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,kCAAO,WAAW,GAAK,kBAAkB,EAAG,CAAC;IAClF,CAAC;CAkCF,CAAA;AAzDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAMR,mBAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GALb,YAAY,CAyDxB"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@mondomob/gae-node-nestjs",
3
- "version": "12.0.0-alpha-3",
3
+ "version": "12.0.0-alpha2",
4
4
  "description": "Google App Engine datastore repositories and graphql setup with nestjs",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
7
+ "engines": {
8
+ "node": ">=22"
9
+ },
7
10
  "scripts": {
8
11
  "prepublish": "npx tsc && npm run verify",
9
12
  "test": "jest",
@@ -23,12 +26,11 @@
23
26
  "license": "MIT",
24
27
  "homepage": "https://github.com/mondo-mob/gae-node-nestjs",
25
28
  "dependencies": {
26
- "@apollo/server": "4.13.0",
27
29
  "@google-cloud/datastore": "9.2.1",
28
30
  "@google-cloud/logging-bunyan": "5.1.0",
29
31
  "@google-cloud/storage": "7.19.0",
30
32
  "@google-cloud/tasks": "4.1.0",
31
- "@google-cloud/trace-agent": "7.1.2",
33
+ "@google-cloud/trace-agent": "8.0.0",
32
34
  "@node-saml/passport-saml": "5.1.0",
33
35
  "@types/node-fetch": "2.6.11",
34
36
  "bcryptjs": "2.4.3",
@@ -47,9 +49,9 @@
47
49
  "io-ts": "2.2.21",
48
50
  "io-ts-reporters": "2.0.1",
49
51
  "jsonwebtoken": "9.0.2",
50
- "lodash": "4.17.21",
52
+ "lodash": "4.18.1",
51
53
  "node-fetch": "2.7.0",
52
- "nodemailer": "6.9.15",
54
+ "nodemailer": "10.1.1",
53
55
  "passport": "0.6.0",
54
56
  "passport-auth0": "1.4.4",
55
57
  "passport-google-oauth": "2.0.0",
@@ -62,6 +64,7 @@
62
64
  "webpack": "5.94.0"
63
65
  },
64
66
  "peerDependencies": {
67
+ "@apollo/server": "^4.13.0",
65
68
  "@nestjs/common": "^10.4.22",
66
69
  "@nestjs/core": "^10.4.22",
67
70
  "@nestjs/graphql": "^12.2.2",
@@ -83,14 +86,13 @@
83
86
  "@types/jest": "^29.5.12",
84
87
  "@types/jsonwebtoken": "9.0.6",
85
88
  "@types/lodash": "4.17.7",
86
- "@types/nodemailer": "6.4.15",
87
89
  "@types/passport": "1.0.16",
88
90
  "@types/passport-auth0": "1.0.9",
89
91
  "@types/passport-google-oauth": "1.0.45",
90
92
  "@types/passport-local": "1.0.38",
91
93
  "@types/uuid": "8.3.4",
92
94
  "chokidar": "3.6.0",
93
- "express": "4.22.1",
95
+ "express": "4.22.2",
94
96
  "jest": "29.7.0",
95
97
  "prettier": "2.8.8",
96
98
  "rxjs": "7.8.1",
package/server-start.js CHANGED
@@ -21,7 +21,6 @@ const componentColors = {
21
21
  server: colors.blue,
22
22
  webpack: colors.magenta,
23
23
  datastore: colors.cyan,
24
- dsui: colors.green,
25
24
  };
26
25
 
27
26
  class BunyanStream {
@@ -46,17 +45,15 @@ const { buildEvents, stopWebpack } = setupWebpack(logger);
46
45
  const { stopServer, startServer } = setupServer(logger, loggingStream, buildEvents);
47
46
 
48
47
  const { stopDatastore, startDatastore } = setupDatastore(logger, buildEvents);
49
- const { startDsui, stopDsui } = setupDsui(logger);
50
48
 
51
49
  buildEvents.once('reload', startServer);
52
50
  startDatastore();
53
- startDsui();
54
51
 
55
52
  // Handle process stop
56
53
  process.on('SIGINT', async function () {
57
54
  logger.info('Caught interrupt signal');
58
55
 
59
- await Promise.all([stopWebpack(), stopDatastore(), stopDsui(), stopServer()]);
56
+ await Promise.all([stopWebpack(), stopDatastore(), stopServer()]);
60
57
 
61
58
  logger.info('Shutting down');
62
59
  process.exit();
@@ -232,74 +229,6 @@ function setupServer(logger, loggingStream, buildEvents) {
232
229
  };
233
230
  }
234
231
 
235
- function setupDsui(logger) {
236
- const dsuiLogger = logger.child({ component: 'dsui' });
237
- let dsui;
238
- const startDsui = () => {
239
- // poll the status URL until the datastore emulator is ready
240
- dsuiLogger.info('Waiting for Datastore emulator to start');
241
- const timeout = setInterval(() => {
242
- let body = '';
243
- http.get(
244
- {
245
- hostname: '127.0.0.1',
246
- port: DATASTORE_PORT,
247
- path: '/',
248
- agent: false,
249
- },
250
- res => {
251
- res.on('data', data => {
252
- body += data;
253
- });
254
- res.on('end', () => {
255
- if (res.statusCode == 200) {
256
- dsuiLogger.info('Datastore emulator is ready, starting DSUI');
257
- clearInterval(timeout);
258
- const gcloud = spawn('gcloud', ['beta', 'emulators', 'datastore', 'env-init', '--format=json']);
259
- gcloud.stdout.on('data', data => {
260
- const datastoreConfig = JSON.parse(data);
261
- _.forEach(datastoreConfig, (value, key) => {
262
- process.env[key] = value;
263
- });
264
- });
265
-
266
- gcloud.once('close', () => {
267
- dsui = spawn('npm', ['run', 'dsui']);
268
- dsui.stdout.on('data', dsuiData => {
269
- const string = dsuiData.toString('utf8');
270
- dsuiLogger.info(string);
271
- });
272
-
273
- dsui.stderr.on('data', dsuiData => {
274
- const string = dsuiData.toString('utf8');
275
- dsuiLogger.error(string);
276
- });
277
- });
278
- }
279
- });
280
- },
281
- );
282
- }, 2000);
283
- };
284
-
285
- const stopDsui = () => {
286
- return new Promise(resolve => {
287
- if (dsui) {
288
- dsuiLogger.info('Killing DSUI');
289
- dsui.kill('SIGINT');
290
- dsui.once('close', () => {
291
- logger.info('DSUI successfully shutdown');
292
- resolve();
293
- });
294
- } else {
295
- resolve();
296
- }
297
- });
298
- };
299
-
300
- return { startDsui, stopDsui };
301
- }
302
-
303
232
  function setupDatastore(logger, buildEvents) {
304
233
  const datastoreLogger = logger.child({
305
234
  component: 'datastore',
@@ -1,15 +0,0 @@
1
- # This is a sample build configuration for JavaScript.
2
- # Check our guides at https://confluence.atlassian.com/x/14UWN for more examples.
3
- # Only use spaces to indent your .yml configuration.
4
- # -----
5
- # You can specify a custom docker image from Docker Hub as your build environment.
6
- image: node:6.9.4
7
-
8
- pipelines:
9
- default:
10
- - step:
11
- caches:
12
- - node
13
- script: # Modify the commands below to build your repository.
14
- - npm install
15
- - npx tsc
@@ -1,7 +0,0 @@
1
- {
2
- "folders": [
3
- {
4
- "path": "."
5
- }
6
- ]
7
- }
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="WEB_MODULE" version="4">
3
- <component name="NewModuleRootManager" inherit-compiler-output="true">
4
- <exclude-output />
5
- <content url="file://$MODULE_DIR$" />
6
- <orderEntry type="inheritedJdk" />
7
- <orderEntry type="sourceFolder" forTests="false" />
8
- </component>
9
- </module>