Skip to content

Commit 17d8fd7

Browse files
committed
WIP
1 parent c9e8c95 commit 17d8fd7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1104
-824
lines changed

crypt/dev/50_api_formation.sh

62 Bytes
Binary file not shown.

db/formation/schema/schema.sql

+161-143
Large diffs are not rendered by default.

lib/node_core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"ts-node": "^9.1.1",
3232
"ts-toolbelt": "^9.6.0",
3333
"ts_agnostic": "link:../ts_agnostic",
34-
"typescript": "^4.2.3",
34+
"typescript": "^4.2.4",
3535
"ws": "^7.4.4"
3636
},
3737
"scripts": {

lib/node_core/src/ctx.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {ctxReqType, ctxType, serverSettingsType, urlType} from './server.type';
22
import {IncomingMessage, ServerResponse} from 'http';
33
import {dbProviderType} from './db';
4-
import {dbProviderCtx, toDbProvideCtx} from './db_util';
4+
import {dbProviderCtxType, toDbProvideCtx} from './db_util';
55
import {resolvedFalse, resolvedTrue, resolvedVoid} from 'ts_agnostic';
66
import {Object} from 'ts-toolbelt';
77

@@ -63,7 +63,7 @@ export function ctxCtor(req: IncomingMessage, res: ServerResponse, dbProvider: d
6363

6464
export type ctxCtorType = typeof ctxCtor;
6565

66-
export function ctxSetDb(ctx: { user?: { login?: string }, sessionId: string, dbProvider: dbProviderType, db?: dbProviderCtx }): void {
66+
export function ctxSetDb(ctx: { user?: { login?: string }, sessionId: string, dbProvider: dbProviderType, db?: dbProviderCtxType }): void {
6767
ctx.db = toDbProvideCtx(ctx?.user?.login || '-', ctx.sessionId, ctx.dbProvider);
6868
}
6969

lib/node_core/src/db/db_session.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {value as updateClientSql} from './db_session_update_client_sql';
88
import {value as updateStaffSql} from './db_session_update_staff_sql';
99
import {value as verifyClientSql} from './db_session_verify_client_sql';
1010
import {value as verifyStaffSql} from './db_session_verify_staff_sql';
11-
import {resolvedUndefined} from './../../../ts_agnostic/src/resolved';
11+
import {resolvedUndefined} from 'ts_agnostic';
1212

1313
describe('sessionCreate', () => {
1414
const setup = (dbResultMock: object) => {

lib/node_core/src/db_util.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import {dbProviderType, dbType} from './db/db_provider';
1+
import {dbProviderType, dbType} from './db';
22
import {DateTime, Duration} from 'luxon';
33

4-
export type dbProviderCtx = <T>(callback: (db: dbType) => Promise<T>) => Promise<T|undefined>;
4+
export type dbProviderCtxType = <T>(callback: (db: dbType) => Promise<T>) => Promise<T|undefined>;
55

6-
export function toDbProvideCtx(auditUser: string, trackingTag: string, dbProvider: dbProviderType): dbProviderCtx {
6+
export function toDbProvideCtx(auditUser: string, trackingTag: string, dbProvider: dbProviderType): dbProviderCtxType {
77
return function <T>(callback: (db: dbType) => Promise<T>): Promise<T|undefined> {
88
return dbProvider(auditUser, callback, trackingTag);
99
}

lib/node_core/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export * from './authz';
22
export * from './db';
3+
export * from './db_util';
34
export * from './ctx';
45
export * from './delay';
56
export * from './exit';

lib/node_core/src/server.type.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {IncomingMessage, ServerResponse} from 'http';
22
import WebSocket from 'ws';
33
import {serializableType} from 'ts_agnostic';
44
import {registryType} from 'ts_agnostic';
5-
import {dbProviderCtx} from './db_util';
5+
import {dbProviderCtxType} from './db_util';
66
import {dbProviderType} from './db';
77

88
export type urlType = {
@@ -22,7 +22,7 @@ export type ctxBaseType = {
2222
session: Record<string, serializableType>;
2323
permission?: Record<string, boolean>;
2424
user?: userInfoType;
25-
db: dbProviderCtx;
25+
db: dbProviderCtxType;
2626
dbProvider: dbProviderType;
2727
remoteAddress: string;
2828
};
@@ -95,6 +95,7 @@ export type serverSettingsType = {
9595
},
9696
appUrl: string,
9797
dbConnectionString: string,
98+
[key: string]: serializableType,
9899
};
99100

100101
export type wsHandlerType = (ctxWs: ctxWsType, callParams: serializableType | undefined) => Promise<serializableType | undefined>;

lib/node_core/src/sig.test.ts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {sigCtor} from './sig';
2+
import * as assert from 'assert';
3+
4+
describe('sig', () => {
5+
it('basics', () => {
6+
const sig1 = sigCtor('bob')({a:1});
7+
const sig2 = sigCtor('alice')({a:1});
8+
9+
assert.strictEqual(sig1,'ba0c10178ad87e1718fd3c3c13c65482a32f3e59ec953bcb3d166b4ea59f20c5');
10+
assert.strictEqual(sig2, '4cae87a1cbfb14ea40ff3900ce3719bdf79b7b04278ed73f7ac7d530c3e2faf0');
11+
});
12+
});

lib/node_core/src/sig.ts

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import {createHmac} from 'crypto';
2+
import {serializableType, serialize} from "ts_agnostic";
3+
4+
export const sigCtor = (secret: string) => (msg: serializableType) => {
5+
const x = createHmac('sha256', secret);
6+
x.update(serialize(msg));
7+
return x.digest('hex');
8+
};

lib/node_core/tsconfig.json

+6-2
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,17 @@
1010
"removeComments": false,
1111
"moduleResolution": "node",
1212
"allowSyntheticDefaultImports": true,
13-
"lib": [ "es2020" ]
13+
"rootDir": "./src",
14+
"lib": [
15+
"es2020"
16+
]
1417
},
1518
"include": [
1619
"src/**/*.ts"
1720
],
1821
"exclude": [
1922
"node_modules",
20-
"dist"
23+
"dist",
24+
"**/*.test.*"
2125
]
2226
}

lib/node_core/yarn.lock

+7-13
Original file line numberDiff line numberDiff line change
@@ -2092,7 +2092,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
20922092
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
20932093
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
20942094

2095-
nyc@^15.0.0, nyc@^15.1.0:
2095+
nyc@^15.1.0:
20962096
version "15.1.0"
20972097
resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02"
20982098
integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==
@@ -2816,17 +2816,6 @@ to-regex-range@^5.0.1:
28162816
dependencies:
28172817
is-number "^7.0.0"
28182818

2819-
ts-node@^8.2.0:
2820-
version "8.10.2"
2821-
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d"
2822-
integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==
2823-
dependencies:
2824-
arg "^4.1.0"
2825-
diff "^4.0.1"
2826-
make-error "^1.1.1"
2827-
source-map-support "^0.5.17"
2828-
yn "3.1.1"
2829-
28302819
ts-node@^9.1.1:
28312820
version "9.1.1"
28322821
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
@@ -2915,11 +2904,16 @@ typedarray-to-buffer@^3.1.5:
29152904
dependencies:
29162905
is-typedarray "^1.0.0"
29172906

2918-
typescript@4, typescript@^4.2.3:
2907+
typescript@^4.2.3:
29192908
version "4.2.3"
29202909
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3"
29212910
integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==
29222911

2912+
typescript@^4.2.4:
2913+
version "4.2.4"
2914+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"
2915+
integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==
2916+
29232917
uri-js@^4.2.2:
29242918
version "4.4.0"
29252919
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"

lib/node_script/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
"@typescript-eslint/parser": "^4.9.0",
1717
"eslint": "^7.23.0",
1818
"mocha": "^7.1.0",
19-
"nyc": "^15.0.0",
19+
"nyc": "^15.1.0",
2020
"sinon": "^9.0.0",
21-
"ts-node": "^8.2.0",
21+
"ts-node": "^9.1.1",
2222
"tslint": "^6.1.3",
23-
"typescript": "4"
23+
"typescript": "^4.2.4"
2424
},
2525
"scripts": {
2626
"lint": "eslint src --ext .js,.jsx,.ts,.tsx,.vue",

lib/node_script/tsconfig.json

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"compilerOptions": {
33
"strictNullChecks": true,
4-
"target": "es2015",
4+
"target": "es2020",
55
"module": "commonjs",
66
"outDir": "dist",
77
"declaration": true,
@@ -10,12 +10,17 @@
1010
"removeComments": false,
1111
"moduleResolution": "node",
1212
"allowSyntheticDefaultImports": true,
13-
"lib": [ "es2020" ]
13+
"rootDir": "./src",
14+
"lib": [
15+
"es2020"
16+
]
1417
},
1518
"include": [
1619
"src/**/*.ts"
1720
],
1821
"exclude": [
19-
"node_modules"
22+
"node_modules",
23+
"dist",
24+
"**/*.test.*"
2025
]
2126
}

lib/node_script/yarn.lock

+15-9
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,11 @@ convert-source-map@^1.7.0:
685685
dependencies:
686686
safe-buffer "~5.1.1"
687687

688+
create-require@^1.1.0:
689+
version "1.1.1"
690+
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
691+
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
692+
688693
cross-spawn@^7.0.0, cross-spawn@^7.0.2:
689694
version "7.0.3"
690695
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -1609,7 +1614,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
16091614
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
16101615
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
16111616

1612-
nyc@^15.0.0:
1617+
nyc@^15.1.0:
16131618
version "15.1.0"
16141619
resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02"
16151620
integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==
@@ -2131,12 +2136,13 @@ to-regex-range@^5.0.1:
21312136
dependencies:
21322137
is-number "^7.0.0"
21332138

2134-
ts-node@^8.2.0:
2135-
version "8.10.2"
2136-
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d"
2137-
integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==
2139+
ts-node@^9.1.1:
2140+
version "9.1.1"
2141+
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
2142+
integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==
21382143
dependencies:
21392144
arg "^4.1.0"
2145+
create-require "^1.1.0"
21402146
diff "^4.0.1"
21412147
make-error "^1.1.1"
21422148
source-map-support "^0.5.17"
@@ -2209,10 +2215,10 @@ typedarray-to-buffer@^3.1.5:
22092215
dependencies:
22102216
is-typedarray "^1.0.0"
22112217

2212-
typescript@4:
2213-
version "4.1.2"
2214-
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9"
2215-
integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==
2218+
typescript@^4.2.4:
2219+
version "4.2.4"
2220+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"
2221+
integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==
22162222

22172223
uri-js@^4.2.2:
22182224
version "4.4.1"

lib/ts_agnostic/src/resolved.d.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export declare const resolvedVoid: Promise<void>;
2+
export declare const resolvedUndefined: Promise<undefined>;
3+
export declare const resolvedTrue: Promise<boolean>;
4+
export declare const resolvedFalse: Promise<boolean>;

lib/ts_agnostic/src/resolved.js

+14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/ts_agnostic/tsconfig.json

+7-2
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,17 @@
1010
"removeComments": false,
1111
"moduleResolution": "node",
1212
"allowSyntheticDefaultImports": true,
13-
"lib": [ "es2020" ]
13+
"rootDir": "./src",
14+
"lib": [
15+
"es2020"
16+
]
1417
},
1518
"include": [
1619
"src/**/*.ts"
1720
],
1821
"exclude": [
19-
"node_modules"
22+
"node_modules",
23+
"dist",
24+
"**/*.test.*"
2025
]
2126
}

lib/ts_browser/tsconfig.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,18 @@
1010
"removeComments": false,
1111
"moduleResolution": "node",
1212
"allowSyntheticDefaultImports": true,
13+
"rootDir": "./src",
1314
"lib": [
15+
"es2020",
1416
"dom"
1517
]
1618
},
1719
"include": [
1820
"src/**/*.ts"
1921
],
2022
"exclude": [
21-
"node_modules"
23+
"node_modules",
24+
"dist",
25+
"**/*.test.*"
2226
]
2327
}

lib/vue_workflow/build

+2
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ pushd ../ts_agnostic
33
./build
44
popd
55
yarn tsc
6+
# hack
7+
mkdir -p dist/wf && cp src/wf/*.vue dist/wf

lib/vue_workflow/package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"core-js": "^3.10.2",
1919
"immer": "^9.0.1",
2020
"ts_agnostic": "link:../ts_agnostic",
21+
"node_core": "link:../node_core",
2122
"vue": "^2.6.12",
2223
"vuetify": "^2.4.11"
2324
},
@@ -34,6 +35,7 @@
3435
"@vue/cli-service": "^4.5.12",
3536
"@vue/eslint-config-typescript": "^7.0.0",
3637
"@vue/test-utils": "^1.1.3",
38+
"sql_to_ts": "link:../../tool/sql_to_ts",
3739
"chai": "^4.3.4",
3840
"eslint": "^7.23.0",
3941
"eslint-plugin-vue": "^7.8.0",
@@ -48,6 +50,7 @@
4850
"scripts": {
4951
"lint": "eslint src --ext .js,.jsx,.ts,.tsx,.vue",
5052
"coverage": "yarn test; open coverage/index.html",
51-
"test": "NODE_ENV=test nyc mocha"
53+
"test": "NODE_ENV=test nyc mocha",
54+
"sql_to_ts": "node node_modules/sql_to_ts/bin/sql_to_ts"
5255
}
5356
}

0 commit comments

Comments
 (0)