@hotfusion/modeller 0.0.13 → 0.0.15
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.
- package/README.md +99 -0
- package/dist/adapters/cipher.js +51 -0
- package/dist/adapters/cipher.js.map +1 -0
- package/dist/connector.js +81 -41
- package/dist/connector.js.map +1 -1
- package/dist/core.js +2 -48
- package/dist/core.js.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/model.js +27 -50
- package/dist/model.js.map +1 -1
- package/dist/oidc/adapter.js +177 -0
- package/dist/oidc/adapter.js.map +1 -0
- package/dist/oidc/adapters/cipher.js +51 -0
- package/dist/oidc/adapters/cipher.js.map +1 -0
- package/dist/oidc/client.js +66 -0
- package/dist/oidc/client.js.map +1 -0
- package/dist/oidc/code.js +37 -0
- package/dist/oidc/code.js.map +1 -0
- package/dist/oidc/default.config.js +200 -0
- package/dist/oidc/default.config.js.map +1 -0
- package/dist/oidc/federation.js +51 -0
- package/dist/oidc/federation.js.map +1 -0
- package/dist/oidc/grant.js +37 -0
- package/dist/oidc/grant.js.map +1 -0
- package/dist/oidc/interaction.js +36 -0
- package/dist/oidc/interaction.js.map +1 -0
- package/dist/oidc/oidc.config.js +79 -0
- package/dist/oidc/oidc.config.js.map +1 -0
- package/dist/oidc/schemas/client.schema.json +62 -0
- package/dist/oidc/schemas/code.schema.json +16 -0
- package/dist/oidc/schemas/grant.schema.json +13 -0
- package/dist/oidc/schemas/interaction.schema.json +26 -0
- package/dist/oidc/schemas/session.schema.json +14 -0
- package/dist/oidc/schemas/token.schema.json +16 -0
- package/dist/oidc/schemas/user.schema.json +44 -0
- package/dist/oidc/session.js +36 -0
- package/dist/oidc/session.js.map +1 -0
- package/dist/oidc/session.token.js +24 -0
- package/dist/oidc/session.token.js.map +1 -0
- package/dist/oidc/token.js +23 -0
- package/dist/oidc/token.js.map +1 -0
- package/dist/oidc/user.js +95 -0
- package/dist/oidc/user.js.map +1 -0
- package/dist/oidc/utils.js +154 -0
- package/dist/oidc/utils.js.map +1 -0
- package/dist/server.js +722 -113
- package/dist/server.js.map +1 -1
- package/dist/types/adapters/cipher.d.ts +12 -0
- package/dist/types/adapters/cipher.d.ts.map +1 -0
- package/dist/types/connector.d.ts +13 -1
- package/dist/types/connector.d.ts.map +1 -1
- package/dist/types/core.d.ts +2 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model.d.ts +26 -2
- package/dist/types/model.d.ts.map +1 -1
- package/dist/types/oidc/adapter.d.ts +16 -0
- package/dist/types/oidc/adapter.d.ts.map +1 -0
- package/dist/types/oidc/adapters/cipher.d.ts +12 -0
- package/dist/types/oidc/adapters/cipher.d.ts.map +1 -0
- package/dist/types/oidc/client.d.ts +3 -0
- package/dist/types/oidc/client.d.ts.map +1 -0
- package/dist/types/oidc/code.d.ts +3 -0
- package/dist/types/oidc/code.d.ts.map +1 -0
- package/dist/types/oidc/default.config.d.ts +33 -0
- package/dist/types/oidc/default.config.d.ts.map +1 -0
- package/dist/types/oidc/federation.d.ts +3 -0
- package/dist/types/oidc/federation.d.ts.map +1 -0
- package/dist/types/oidc/grant.d.ts +3 -0
- package/dist/types/oidc/grant.d.ts.map +1 -0
- package/dist/types/oidc/interaction.d.ts +3 -0
- package/dist/types/oidc/interaction.d.ts.map +1 -0
- package/dist/types/oidc/oidc.config.d.ts +7 -0
- package/dist/types/oidc/oidc.config.d.ts.map +1 -0
- package/dist/types/oidc/session.d.ts +3 -0
- package/dist/types/oidc/session.d.ts.map +1 -0
- package/dist/types/oidc/session.token.d.ts +3 -0
- package/dist/types/oidc/session.token.d.ts.map +1 -0
- package/dist/types/oidc/token.d.ts +3 -0
- package/dist/types/oidc/token.d.ts.map +1 -0
- package/dist/types/oidc/user.d.ts +3 -0
- package/dist/types/oidc/user.d.ts.map +1 -0
- package/dist/types/oidc/utils.d.ts +56 -0
- package/dist/types/oidc/utils.d.ts.map +1 -0
- package/dist/types/server.d.ts +8 -3
- package/dist/types/server.d.ts.map +1 -1
- package/dist/types/types.d.ts +264 -0
- package/dist/types/utils/bundler.d.ts.map +1 -1
- package/dist/types/utils/display.d.ts +23 -0
- package/dist/types/utils/display.d.ts.map +1 -0
- package/dist/utils/_secret.key +1 -0
- package/dist/utils/bundler.js +47 -8
- package/dist/utils/bundler.js.map +1 -1
- package/dist/utils/display.js +207 -0
- package/dist/utils/display.js.map +1 -0
- package/package.json +28 -4
- package/docs/CORE.md +0 -191
- package/docs/ERRORS.md +0 -90
- package/docs/MODEL.md +0 -296
- package/docs/PATTERNS.md +0 -182
- package/docs/SERVER.md +0 -88
- package/docs/UTILITIES.md +0 -111
package/README.md
CHANGED
|
@@ -78,6 +78,105 @@ const server = new Server(3030);
|
|
|
78
78
|
server.registerModel('system', 'users', users);
|
|
79
79
|
await server.start();
|
|
80
80
|
```
|
|
81
|
+
### Testing the API
|
|
82
|
+
|
|
83
|
+
Once the server is running, all CRUD endpoints are available at `http://localhost:3030/{scope}/{model}/{operation}`. Using the `users` model registered under the `system` scope from the example above:
|
|
84
|
+
|
|
85
|
+
#### Insert a user
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
curl -X POST http://localhost:3030/system/users/insert \
|
|
89
|
+
-H "Content-Type: application/json" \
|
|
90
|
+
-d '{ "email": "alex@example.com", "name": "Alex" }'
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```js
|
|
94
|
+
const res = await fetch('http://localhost:3030/system/users/insert', {
|
|
95
|
+
method: 'POST',
|
|
96
|
+
headers: { 'Content-Type': 'application/json' },
|
|
97
|
+
body: JSON.stringify({ email: 'alex@example.com', name: 'Alex' })
|
|
98
|
+
});
|
|
99
|
+
const data = await res.json();
|
|
100
|
+
// { ok: true, entry: { _id: 'abc123', email: 'alex@example.com', name: 'Alex', role: 'user' } }
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
#### Get a user
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
curl "http://localhost:3030/system/users/get?email=alex%40example.com"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```js
|
|
112
|
+
const res = await fetch('http://localhost:3030/system/users/get?email=alex%40example.com');
|
|
113
|
+
const data = await res.json();
|
|
114
|
+
// { ok: true, entry: { _id: 'abc123', email: 'alex@example.com', name: 'Alex', role: 'user' } }
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
#### List users
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
curl "http://localhost:3030/system/users/list"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```js
|
|
126
|
+
const res = await fetch('http://localhost:3030/system/users/list');
|
|
127
|
+
const data = await res.json();
|
|
128
|
+
// { ok: true, entry: [{ _id: 'abc123', email: 'alex@example.com', name: 'Alex', role: 'user' }] }
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
#### Update a user
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
curl -X PUT http://localhost:3030/system/users/update \
|
|
137
|
+
-H "Content-Type: application/json" \
|
|
138
|
+
-d '{ "_id": "abc123", "name": "Alexander" }'
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
```js
|
|
142
|
+
const res = await fetch('http://localhost:3030/system/users/update', {
|
|
143
|
+
method: 'PUT',
|
|
144
|
+
headers: { 'Content-Type': 'application/json' },
|
|
145
|
+
body: JSON.stringify({ _id: 'abc123', name: 'Alexander' })
|
|
146
|
+
});
|
|
147
|
+
const data = await res.json();
|
|
148
|
+
// { ok: true, entry: { _id: 'abc123', email: 'alex@example.com', name: 'Alexander', role: 'user' } }
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
#### Delete a user
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
curl -X DELETE http://localhost:3030/system/users/delete \
|
|
157
|
+
-H "Content-Type: application/json" \
|
|
158
|
+
-d '{ "_id": "abc123" }'
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
```js
|
|
162
|
+
const res = await fetch('http://localhost:3030/system/users/delete', {
|
|
163
|
+
method: 'DELETE',
|
|
164
|
+
headers: { 'Content-Type': 'application/json' },
|
|
165
|
+
body: JSON.stringify({ _id: 'abc123' })
|
|
166
|
+
});
|
|
167
|
+
const data = await res.json();
|
|
168
|
+
// { ok: true, entry: { _id: 'abc123' } }
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
#### Error response
|
|
174
|
+
|
|
175
|
+
If a request fails validation or a required field is missing:
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{ "ok": false, "error": "Validation error: email is required" }
|
|
179
|
+
```
|
|
81
180
|
|
|
82
181
|
---
|
|
83
182
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CipherAdapter = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
const cipher_1 = require("@hotfusion/cipher");
|
|
6
|
+
class CipherAdapter extends core_1.Adapter {
|
|
7
|
+
cipher;
|
|
8
|
+
ready;
|
|
9
|
+
id;
|
|
10
|
+
constructor(id) {
|
|
11
|
+
super(id);
|
|
12
|
+
this.id = id;
|
|
13
|
+
// Password resolved inside Cipher from:
|
|
14
|
+
// 1. VAULT_PASSWORD env var
|
|
15
|
+
// 2. --password=xxx CLI arg
|
|
16
|
+
this.cipher = new cipher_1.Cipher({
|
|
17
|
+
path: `./vault/${id}`,
|
|
18
|
+
password: process.env.VAULT_PASSWORD || '',
|
|
19
|
+
//@ts-ignore
|
|
20
|
+
locked: false,
|
|
21
|
+
readonly: false,
|
|
22
|
+
}, [{ name: id, schema: {} }, { name: 'trash', schema: {} }]);
|
|
23
|
+
this.ready = this.cipher.ready();
|
|
24
|
+
}
|
|
25
|
+
async sync(id, doc) {
|
|
26
|
+
await this.ready;
|
|
27
|
+
const col = this.cipher.collection(id);
|
|
28
|
+
const key = { id: doc._id.toString() };
|
|
29
|
+
const existing = col.find(key);
|
|
30
|
+
if (existing) {
|
|
31
|
+
await col.update(key, doc);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
await col.insert(key, doc);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async pull() {
|
|
38
|
+
await this.ready;
|
|
39
|
+
const col = this.cipher.collection(this.id);
|
|
40
|
+
return col.list()
|
|
41
|
+
.map((entry) => {
|
|
42
|
+
const id = Object.values(entry.key)[0];
|
|
43
|
+
if (!id)
|
|
44
|
+
return null;
|
|
45
|
+
return col.unseal(id);
|
|
46
|
+
})
|
|
47
|
+
.filter(Boolean);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.CipherAdapter = CipherAdapter;
|
|
51
|
+
//# sourceMappingURL=cipher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cipher.js","sourceRoot":"","sources":["../../src/adapters/cipher.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAGlC,8CAA4C;AAE5C,MAAa,aAAc,SAAQ,cAAO;IAC9B,MAAM,CAAU;IAChB,KAAK,CAAkB;IACvB,EAAE,CAAc;IAExB,YAAY,EAAU;QAClB,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,EAAE,GAAO,EAAE,CAAC;QACjB,wCAAwC;QACxC,8BAA8B;QAC9B,8BAA8B;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC;YACrB,IAAI,EAAO,WAAW,EAAE,EAAE;YAC1B,QAAQ,EAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC3C,YAAY;YACZ,MAAM,EAAK,KAAK;YAChB,QAAQ,EAAG,KAAK;SACnB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,GAA0C;QAC7D,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,MAAM,GAAG,GAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC,IAAI,EAAE;aACZ,GAAG,CAAC,CAAC,KAAS,EAAE,EAAE;YACf,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YACrB,OAAO,GAAG,CAAC,MAAM,CAAC,EAAS,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;CACJ;AA7CD,sCA6CC"}
|
package/dist/connector.js
CHANGED
|
@@ -5,7 +5,7 @@ exports.Connector = void 0;
|
|
|
5
5
|
const socket_io_client_1 = require("socket.io-client");
|
|
6
6
|
const eventemitter3_1 = require("eventemitter3");
|
|
7
7
|
const core_1 = require("./core");
|
|
8
|
-
//
|
|
8
|
+
// ?? HttpClient ????????????????????????????????????????????????????????????????
|
|
9
9
|
class HttpClient {
|
|
10
10
|
baseUrl;
|
|
11
11
|
token;
|
|
@@ -23,35 +23,39 @@ class HttpClient {
|
|
|
23
23
|
async request(method, path, body) {
|
|
24
24
|
const url = new URL(`${this.baseUrl}/${path.replace(/^\//, "")}`);
|
|
25
25
|
const init = { method, headers: this.headers };
|
|
26
|
-
|
|
26
|
+
console.log(body);
|
|
27
|
+
if (method === 'GET') {
|
|
27
28
|
if (body)
|
|
28
|
-
Object.entries(body).forEach(([k, v]) => url.searchParams.set(k, String(v)));
|
|
29
|
+
Object.entries(body).forEach(([k, v]) => url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v)));
|
|
29
30
|
}
|
|
30
31
|
else {
|
|
31
32
|
init.body = JSON.stringify(body ?? {});
|
|
32
33
|
}
|
|
33
34
|
try {
|
|
34
35
|
const res = await fetch(url.toString(), init);
|
|
36
|
+
console.log('res:', res);
|
|
35
37
|
if (!res.ok) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
const data = await res.json().catch(() => null);
|
|
39
|
+
if (data?.error) {
|
|
40
|
+
const err = new Error(data.details?.errors?.[0] ?? data.details?.message ?? data.error);
|
|
41
|
+
err.details = data.details;
|
|
42
|
+
err.code = data.details?.code ?? data.error;
|
|
43
|
+
throw err;
|
|
41
44
|
}
|
|
42
|
-
|
|
43
|
-
throw new Error(message);
|
|
45
|
+
throw new Error(`${method} ${url} ? ${res.status} ${res.statusText}`);
|
|
44
46
|
}
|
|
47
|
+
if (res.redirected)
|
|
48
|
+
return { redirected: true };
|
|
45
49
|
return await res.json();
|
|
46
50
|
}
|
|
47
51
|
catch (e) {
|
|
48
|
-
throw
|
|
52
|
+
throw e;
|
|
49
53
|
}
|
|
50
54
|
}
|
|
51
55
|
async get(path) { return this.request('GET', path); }
|
|
52
56
|
async post(path, body) { return this.request('POST', path, body); }
|
|
53
57
|
}
|
|
54
|
-
//
|
|
58
|
+
// ?? Connector ?????????????????????????????????????????????????????????????????
|
|
55
59
|
class Connector {
|
|
56
60
|
_socket;
|
|
57
61
|
_http;
|
|
@@ -65,14 +69,14 @@ class Connector {
|
|
|
65
69
|
this._http = new HttpClient(new URL(uri).origin);
|
|
66
70
|
core_1.Validator.models = [];
|
|
67
71
|
}
|
|
68
|
-
//
|
|
72
|
+
// ?? Emitter ???????????????????????????????????????????????????????????????
|
|
69
73
|
operationMap() {
|
|
70
74
|
return [...this._operationMap.entries()].map(([key, value]) => ({ key, value }));
|
|
71
75
|
}
|
|
72
76
|
on(event, listener) { this._emitter.on(event, listener); return this; }
|
|
73
77
|
off(event, listener) { this._emitter.off(event, listener); return this; }
|
|
74
78
|
once(event, listener) { this._emitter.once(event, listener); return this; }
|
|
75
|
-
//
|
|
79
|
+
// ?? Socket events ?????????????????????????????????????????????????????????
|
|
76
80
|
_eventCall(id, scope, query, event, args) {
|
|
77
81
|
return new Promise((resolve, reject) => {
|
|
78
82
|
const callId = Math.random().toString(36).slice(2) + Date.now();
|
|
@@ -89,7 +93,7 @@ class Connector {
|
|
|
89
93
|
this[id][scope][event] = (args) => this._eventCall(id, scope, query, event, args);
|
|
90
94
|
});
|
|
91
95
|
}
|
|
92
|
-
//
|
|
96
|
+
// ?? Subscribe / Unsubscribe ???????????????????????????????????????????????
|
|
93
97
|
subscribe(id, scope, query = {}, listener) {
|
|
94
98
|
const reqId = Math.random().toString(36).slice(2) + Date.now();
|
|
95
99
|
this._socket.emit('subscribe', { id, scope, query, reqId });
|
|
@@ -131,11 +135,13 @@ class Connector {
|
|
|
131
135
|
this._socket.off(keyedChannel);
|
|
132
136
|
return this;
|
|
133
137
|
}
|
|
134
|
-
//
|
|
138
|
+
// ?? Connect / Disconnect ??????????????????????????????????????????????????
|
|
135
139
|
async connect() {
|
|
136
140
|
const origin = new URL(this._uri).origin;
|
|
137
141
|
const metaRes = await fetch(`${origin}/@metadata`);
|
|
138
142
|
this._metadata = await metaRes.json();
|
|
143
|
+
console.log(this._metadata);
|
|
144
|
+
this._oidc = this._metadata?.oidc ?? [];
|
|
139
145
|
const mountExt = (ext) => {
|
|
140
146
|
ext.operations?.forEach((op) => {
|
|
141
147
|
this._operationMap.set(op.path, { method: op.method, schema: op.schema });
|
|
@@ -171,7 +177,7 @@ class Connector {
|
|
|
171
177
|
});
|
|
172
178
|
}
|
|
173
179
|
disconnect() { this._socket?.disconnect(); }
|
|
174
|
-
//
|
|
180
|
+
// ?? HTTP ??????????????????????????????????????????????????????????????????
|
|
175
181
|
async operation(path, body, options) {
|
|
176
182
|
if (body && (options?.stream || this._findFiles(body).length)) {
|
|
177
183
|
body = await this.upload(options?.stream?.path ?? 'system/filesystem/stream', body, options?.stream?.meta ?? {}, options?.stream?.onProgress);
|
|
@@ -194,28 +200,13 @@ class Connector {
|
|
|
194
200
|
const normalised = `/${path.replace(/\./g, '/').replace(/^\//, '')}`;
|
|
195
201
|
return this._operationMap.get(normalised)?.schema ?? null;
|
|
196
202
|
}
|
|
197
|
-
//
|
|
203
|
+
// ?? Auth ??????????????????????????????????????????????????????????????????
|
|
198
204
|
async authenticate(email, password) {
|
|
199
|
-
const { token } = await this._http.post('auth/
|
|
205
|
+
const { token } = await this._http.post('auth/authorization/signin', { email, password });
|
|
200
206
|
this._http.setToken(token);
|
|
201
207
|
return token;
|
|
202
208
|
}
|
|
203
|
-
|
|
204
|
-
return new Promise((resolve, reject) => {
|
|
205
|
-
const url = `${new URL(this._uri).origin}/auth/${providerId}`;
|
|
206
|
-
const popup = window.open(url, '_blank', 'width=500,height=700');
|
|
207
|
-
if (!popup)
|
|
208
|
-
return reject(new Error('Popup blocked'));
|
|
209
|
-
const handler = (e) => {
|
|
210
|
-
if (e.data?.type === 'oidc:login:success') {
|
|
211
|
-
window.removeEventListener('message', handler);
|
|
212
|
-
resolve();
|
|
213
|
-
}
|
|
214
|
-
};
|
|
215
|
-
window.addEventListener('message', handler);
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
// ── Upload / Stream ───────────────────────────────────────────────────────
|
|
209
|
+
// ?? Upload / Stream ???????????????????????????????????????????????????????
|
|
219
210
|
async upload(path, fields, meta = {}, onProgress) {
|
|
220
211
|
const fileEntries = this._findFiles(fields);
|
|
221
212
|
if (fileEntries.length) {
|
|
@@ -244,7 +235,6 @@ class Connector {
|
|
|
244
235
|
const uploadId = Math.random().toString(36).slice(2) + Date.now();
|
|
245
236
|
const buffer = await file.arrayBuffer();
|
|
246
237
|
const totalChunks = Math.ceil(buffer.byteLength / CHUNK_SIZE);
|
|
247
|
-
// Arm complete/error listeners up front
|
|
248
238
|
const completePromise = new Promise((resolve, reject) => {
|
|
249
239
|
const onComplete = (data) => { cleanup(); resolve(data); };
|
|
250
240
|
const onError = (err) => { cleanup(); reject(new Error(typeof err === 'string' ? err : (err?.message ?? String(err)))); };
|
|
@@ -258,7 +248,6 @@ class Connector {
|
|
|
258
248
|
this._socket.once(`upload:error:${uploadId}`, onError);
|
|
259
249
|
});
|
|
260
250
|
try {
|
|
261
|
-
// 1. Send start, WAIT for server to ack it's ready
|
|
262
251
|
const startedWait = waitFor(`upload:started:${uploadId}`, ACK_TIMEOUT_MS);
|
|
263
252
|
this._socket.emit('upload:start', {
|
|
264
253
|
uploadId,
|
|
@@ -270,9 +259,7 @@ class Connector {
|
|
|
270
259
|
});
|
|
271
260
|
await startedWait;
|
|
272
261
|
onProgress?.(0, totalChunks, file);
|
|
273
|
-
// Show initial 0% progress
|
|
274
262
|
onProgress?.(0, totalChunks, file);
|
|
275
|
-
// 2. Now safe to send chunks
|
|
276
263
|
for (let i = 0; i < totalChunks; i++) {
|
|
277
264
|
const chunk = buffer.slice(i * CHUNK_SIZE, (i + 1) * CHUNK_SIZE);
|
|
278
265
|
const ack = waitFor(`upload:ack:${uploadId}:${i}`, ACK_TIMEOUT_MS);
|
|
@@ -290,7 +277,7 @@ class Connector {
|
|
|
290
277
|
}
|
|
291
278
|
return results;
|
|
292
279
|
}
|
|
293
|
-
//
|
|
280
|
+
// ?? Private helpers ???????????????????????????????????????????????????????
|
|
294
281
|
_findFiles(obj, path = []) {
|
|
295
282
|
const results = [];
|
|
296
283
|
if (Array.isArray(obj)) {
|
|
@@ -317,10 +304,63 @@ class Connector {
|
|
|
317
304
|
current = current[path[i]];
|
|
318
305
|
current[path[path.length - 1]] = value;
|
|
319
306
|
}
|
|
320
|
-
//
|
|
307
|
+
// ?? Getters ???????????????????????????????????????????????????????????????
|
|
321
308
|
get socket() { return this._socket; }
|
|
322
309
|
get metadata() { return this._metadata; }
|
|
323
310
|
getMetadata() { return this._http.get('@metadata'); }
|
|
311
|
+
// ?? OIDC
|
|
312
|
+
_oidc = [];
|
|
313
|
+
oidc = {
|
|
314
|
+
authorize: async (popup = false) => {
|
|
315
|
+
const entry = this._oidc[0];
|
|
316
|
+
if (!entry)
|
|
317
|
+
throw new Error('No OIDC provider found');
|
|
318
|
+
const verifier = crypto.randomUUID().replace(/-/g, '') + crypto.randomUUID().replace(/-/g, '');
|
|
319
|
+
const encoded = new TextEncoder().encode(verifier);
|
|
320
|
+
const hash = await crypto.subtle.digest('SHA-256', encoded);
|
|
321
|
+
const challenge = btoa(String.fromCharCode(...new Uint8Array(hash)))
|
|
322
|
+
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
|
|
323
|
+
sessionStorage.setItem('pkce_verifier', verifier);
|
|
324
|
+
const origin = new URL(this._uri).origin;
|
|
325
|
+
const authUrl = `${origin}/auth?client_id=${entry.path}-default` +
|
|
326
|
+
`&redirect_uri=${origin}/${entry.path}/callback` +
|
|
327
|
+
`&response_type=code` +
|
|
328
|
+
`&scope=openid%20email%20profile%20offline_access` +
|
|
329
|
+
`&code_challenge=${challenge}` +
|
|
330
|
+
`&code_challenge_method=S256`;
|
|
331
|
+
if (popup) {
|
|
332
|
+
const win = window.open(authUrl, '_blank', 'width=500,height=700');
|
|
333
|
+
if (!win)
|
|
334
|
+
throw new Error('Popup blocked');
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
window.location.href = authUrl;
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
providers: (mountPath) => {
|
|
341
|
+
const entry = mountPath
|
|
342
|
+
? this._oidc.find(o => o.path === mountPath)
|
|
343
|
+
: this._oidc[0];
|
|
344
|
+
return entry?.federation ?? [];
|
|
345
|
+
},
|
|
346
|
+
signup: (uid, email, password) => {
|
|
347
|
+
const mount = this._oidc[0]?.endpoints.signup.replace(':uid', uid);
|
|
348
|
+
return this._http.post(mount, { email, password });
|
|
349
|
+
},
|
|
350
|
+
signin: (uid, email, password) => {
|
|
351
|
+
console.log('this._oidc:', this._oidc);
|
|
352
|
+
const mount = this._oidc[0]?.endpoints.signin.replace(':uid', uid);
|
|
353
|
+
return this._http.post(mount, { username: email, password });
|
|
354
|
+
},
|
|
355
|
+
federate: (uid, provider) => {
|
|
356
|
+
const mount = this._oidc[0]?.endpoints.federate.replace(':uid', uid).replace(':provider', provider);
|
|
357
|
+
const form = document.createElement('form');
|
|
358
|
+
form.method = 'POST';
|
|
359
|
+
form.action = mount;
|
|
360
|
+
document.body.appendChild(form);
|
|
361
|
+
form.submit();
|
|
362
|
+
},
|
|
363
|
+
};
|
|
324
364
|
}
|
|
325
365
|
exports.Connector = Connector;
|
|
326
366
|
//# sourceMappingURL=connector.js.map
|
package/dist/connector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
|
package/dist/core.js
CHANGED
|
@@ -11,7 +11,6 @@ const ajv_1 = require("ajv");
|
|
|
11
11
|
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
12
12
|
const ajv_errors_1 = __importDefault(require("ajv-errors"));
|
|
13
13
|
class Validator extends eventemitter3_1.EventEmitter {
|
|
14
|
-
// static _mounted = false
|
|
15
14
|
static models = [];
|
|
16
15
|
_schema;
|
|
17
16
|
_validator;
|
|
@@ -35,6 +34,7 @@ class Validator extends eventemitter3_1.EventEmitter {
|
|
|
35
34
|
ajv_errors_1.default.default(this._ajv);
|
|
36
35
|
this._ajv.addFormat('phone', { type: 'string', validate: (v) => /^\+?[0-9\s\-()]{7,10}$/.test(v) });
|
|
37
36
|
this._ajv.addFormat('password', { type: 'number', validate: (v) => v.length >= 8 && /[A-Z]/.test(v) && /[a-z]/.test(v) && /\d/.test(v) && /[^A-Za-z0-9]/.test(v) });
|
|
37
|
+
this._ajv.addFormat('files', { type: 'string', validate: () => true });
|
|
38
38
|
this._ajv.addKeyword({
|
|
39
39
|
keyword: "model",
|
|
40
40
|
async: true,
|
|
@@ -43,7 +43,6 @@ class Validator extends eventemitter3_1.EventEmitter {
|
|
|
43
43
|
const model = Validator.models.find((x) => x.id === schema.split('.')[0]);
|
|
44
44
|
if (!model)
|
|
45
45
|
return true;
|
|
46
|
-
// if it's a real Model instance with get()
|
|
47
46
|
if (typeof model.get === 'function') {
|
|
48
47
|
const values = Array.isArray(value) ? value : [value];
|
|
49
48
|
for (const v of values) {
|
|
@@ -53,31 +52,6 @@ class Validator extends eventemitter3_1.EventEmitter {
|
|
|
53
52
|
}
|
|
54
53
|
return true;
|
|
55
54
|
}
|
|
56
|
-
// if it's just metadata, skip validation
|
|
57
|
-
return true;
|
|
58
|
-
/*let model
|
|
59
|
-
= Modeller.models.find(x => x.getId() === schema.model);
|
|
60
|
-
|
|
61
|
-
try{
|
|
62
|
-
if(model && user){
|
|
63
|
-
// try to get the foreign items, if one of them was not found, throws an error
|
|
64
|
-
let values = value?.map?value:[value];
|
|
65
|
-
|
|
66
|
-
// loop through each value
|
|
67
|
-
for(let i = 0; i < values.length; i++){
|
|
68
|
-
// most of the cases the item would be {_id:ObjectId}
|
|
69
|
-
let { _id } = await model.get(user,{[schema.key]:values[i]});
|
|
70
|
-
let { _id } = await model.get(user,{[schema.key]:values[i]});
|
|
71
|
-
|
|
72
|
-
// if no _id found or _id not match with value, means not found
|
|
73
|
-
if(!_id || String(_id) !== values[i])
|
|
74
|
-
throw new Error(`no _id returned from model [${model.getId()}] on GET when providing value ${JSON.stringify({[schema.key]:values[i]})}`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}catch(e){
|
|
78
|
-
console.error(e)
|
|
79
|
-
return false;
|
|
80
|
-
}*/
|
|
81
55
|
return true;
|
|
82
56
|
}
|
|
83
57
|
});
|
|
@@ -95,6 +69,7 @@ class Validator extends eventemitter3_1.EventEmitter {
|
|
|
95
69
|
catch (e) {
|
|
96
70
|
return e.errors;
|
|
97
71
|
}
|
|
72
|
+
// false means no errors so !validate() it passed otherwise you get []
|
|
98
73
|
return false;
|
|
99
74
|
}
|
|
100
75
|
}
|
|
@@ -205,7 +180,6 @@ class Core {
|
|
|
205
180
|
const qIdx = ref.indexOf('?');
|
|
206
181
|
const N = qIdx >= 0 ? ref.slice(0, qIdx) : ref;
|
|
207
182
|
const Q = qIdx >= 0 ? ref.slice(qIdx + 1) : '';
|
|
208
|
-
// try schemes lookup (legacy $id match)
|
|
209
183
|
const S = schemes.find(y => y.$id === N);
|
|
210
184
|
if (S && !Q) {
|
|
211
185
|
schema.properties[x] = this.mergeSchema(S, schemes);
|
|
@@ -382,16 +356,6 @@ class Core {
|
|
|
382
356
|
return null;
|
|
383
357
|
return priv ? match[1] : this.stripPrivateFields(match[1]);
|
|
384
358
|
}
|
|
385
|
-
// ── list ──────────────────────────────────────────────────────────────────
|
|
386
|
-
//
|
|
387
|
-
// Returns a paginated array of documents filtered by an exact mingo query.
|
|
388
|
-
// All fields in the query must match exactly (no partial/substring matching).
|
|
389
|
-
//
|
|
390
|
-
// list(query?, { start?, count?, private? })
|
|
391
|
-
//
|
|
392
|
-
// Example:
|
|
393
|
-
// await modeller.list({ name: 'Microsoft' }, { start: 0, count: 10 })
|
|
394
|
-
// // [{ name: 'Microsoft', ... }]
|
|
395
359
|
async list(query = {}, options = {}) {
|
|
396
360
|
const { start = 0, count = 10, private: priv = false } = options;
|
|
397
361
|
let docs = Array.from(this.data.values());
|
|
@@ -402,16 +366,6 @@ class Core {
|
|
|
402
366
|
docs = docs.slice(start, start + count);
|
|
403
367
|
return priv ? docs : docs.map(d => this.stripPrivateFields(d));
|
|
404
368
|
}
|
|
405
|
-
// ── find ──────────────────────────────────────────────────────────────────
|
|
406
|
-
//
|
|
407
|
-
// Returns an array of documents with partial/substring matching for strings.
|
|
408
|
-
// Non-string values are matched exactly.
|
|
409
|
-
//
|
|
410
|
-
// find(query, { max?, private? })
|
|
411
|
-
//
|
|
412
|
-
// Example:
|
|
413
|
-
// await modeller.find({ name: 'Micro' }, { max: 10 })
|
|
414
|
-
// // [{ name: 'Microsoft' }, { name: 'Microbit' }, ...]
|
|
415
369
|
async find(query = {}, { max = 10, private: priv = false } = {}) {
|
|
416
370
|
const results = [];
|
|
417
371
|
const test = (doc) => {
|