@nlabs/metropolisjs 1.0.8 → 1.1.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.
- package/README.md +75 -40
- package/docs/ACTIONS.md +61 -1
- package/docs/assets/metropolisjs-logo.png +0 -0
- package/docs/assets/metropolisjs-mark.svg +7 -0
- package/examples/crud-usage.tsx +1 -1
- package/examples/factory-pattern-usage.ts +85 -78
- package/examples/signup-error-handling.ts +25 -24
- package/factoryPatternGuide.md +90 -174
- package/lib/actions/translationActions/translationActions.d.ts +2 -11
- package/lib/actions/translationActions/translationActions.js +2 -2
- package/lib/actions/userActions/userActions.d.ts +7 -5
- package/lib/actions/userActions/userActions.js +111 -64
- package/lib/index.d.ts +3 -8
- package/lib/index.js +4 -9
- package/lib/stores/tagStore.d.ts +1 -0
- package/lib/stores/tagStore.js +1 -1
- package/lib/stores/userStore.d.ts +1 -0
- package/lib/stores/userStore.js +2 -1
- package/lib/utils/actionFactory.d.ts +52 -6
- package/lib/utils/actionFactory.js +8 -6
- package/lib/utils/baseActionFactory.d.ts +1 -1
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +2 -2
- package/lib/utils/session.d.ts +1 -1
- package/package.json +16 -14
- package/tsconfig.examples.json +23 -0
package/lib/utils/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
3
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
4
|
*/ // Export API utilities
|
|
5
|
-
export { appMutation, appQuery, getGraphql, publicMutation, publicQuery,
|
|
5
|
+
export { appMutation, appQuery, getGraphql, publicMutation, publicQuery, rumRequest, refreshSession, resolveRestEndpoint, restRequest, uploadImage } from './api.js';
|
|
6
6
|
// Export action factory
|
|
7
7
|
export { createAction, createActions, createAllActions } from './actionFactory.js';
|
|
8
8
|
// Export base action factory
|
|
@@ -23,4 +23,4 @@ export * from './i18n.js';
|
|
|
23
23
|
export * from './location.js';
|
|
24
24
|
export * from './session.js';
|
|
25
25
|
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuLy8gRXhwb3J0IEFQSSB1dGlsaXRpZXNcbmV4cG9ydCB7XG4gIGFwcE11dGF0aW9uLFxuICBhcHBRdWVyeSxcbiAgZ2V0R3JhcGhxbCxcbiAgcHVibGljTXV0YXRpb24sXG4gIHB1YmxpY1F1ZXJ5LFxuICBydW1SZXF1ZXN0LFxuICByZWZyZXNoU2Vzc2lvbixcbiAgcmVzb2x2ZVJlc3RFbmRwb2ludCxcbiAgcmVzdFJlcXVlc3QsXG4gIHVwbG9hZEltYWdlLFxuICB0eXBlIEFwaVJlc3VsdHNUeXBlLFxuICB0eXBlIFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHR5cGUgUmVzdEFwaU9wdGlvbnMsXG4gIHR5cGUgUmVzdE1ldGhvZCxcbiAgdHlwZSBTZXNzaW9uVHlwZVxufSBmcm9tICcuL2FwaS5qcyc7XG5cbi8vIEV4cG9ydCBhY3Rpb24gZmFjdG9yeVxuZXhwb3J0IHtcbiAgY3JlYXRlQWN0aW9uLFxuICBjcmVhdGVBY3Rpb25zLFxuICBjcmVhdGVBbGxBY3Rpb25zLFxuICB0eXBlIEFjdGlvbk9wdGlvbnMsXG4gIHR5cGUgQWN0aW9uUmV0dXJuVHlwZSxcbiAgdHlwZSBBY3Rpb25UeXBlLFxuICB0eXBlIEFjdGlvblR5cGVzXG59IGZyb20gJy4vYWN0aW9uRmFjdG9yeS5qcyc7XG5cbi8vIEV4cG9ydCBiYXNlIGFjdGlvbiBmYWN0b3J5XG5leHBvcnQge1xuICBjcmVhdGVCYXNlQWN0aW9ucyxcbiAgdHlwZSBCYXNlQWN0aW9uT3B0aW9uc1xufSBmcm9tICcuL2Jhc2VBY3Rpb25GYWN0b3J5LmpzJztcblxuLy8gRXhwb3J0IHZhbGlkYXRvciBmYWN0b3J5XG5leHBvcnQge1xuICBjcmVhdGVWYWxpZGF0b3JGYWN0b3J5LFxuICBjcmVhdGVWYWxpZGF0b3JNYW5hZ2VyLFxuICB0eXBlIEJhc2VBZGFwdGVyT3B0aW9uc1xufSBmcm9tICcuL3ZhbGlkYXRvckZhY3RvcnkuanMnO1xuXG4vLyBFeHBvcnQgUmVhY3QgaG9va3NcbmV4cG9ydCB7TWV0cm9wb2xpc0NvbnRleHR9IGZyb20gJy4vTWV0cm9wb2xpc0NvbnRleHQuanMnO1xuZXhwb3J0IHtcbiAgUGVybWlzc2lvbkd1YXJkLFxuICBQZXJtaXNzaW9uTGV2ZWwsXG4gIHVzZVBlcm1pc3Npb25zLFxuICB0eXBlIFBlcm1pc3Npb24sXG4gIHR5cGUgUGVybWlzc2lvbkd1YXJkUHJvcHMsXG4gIHR5cGUgVXNlUGVybWlzc2lvbnNSZXR1cm5cbn0gZnJvbSAnLi9wZXJtaXNzaW9uVXRpbHMuanMnO1xuZXhwb3J0IHtcbiAgdXNlQ29udGVudEFjdGlvbnMsXG4gIHVzZUF3c1J1bSxcbiAgdXNlQ3JtQWN0aW9ucyxcbiAgdXNlRXZlbnRBY3Rpb25zLFxuICB1c2VHcm91cEFjdGlvbnMsXG4gIHVzZUltYWdlQWN0aW9ucyxcbiAgdXNlTG9jYXRpb25BY3Rpb25zLFxuICB1c2VNZXNzYWdlQWN0aW9ucyxcbiAgdXNlTWV0cm9wb2xpcyxcbiAgdXNlTWV0cm9wb2xpc0NvbmZpZyxcbiAgdXNlTWV0cm9wb2xpc0ZsdXgsXG4gIHVzZVBlcm1pc3Npb25BY3Rpb25zLFxuICB1c2VQZXJzb25hQWN0aW9ucyxcbiAgdXNlUG9zdEFjdGlvbnMsXG4gIHVzZVJlYWN0aW9uQWN0aW9ucyxcbiAgdXNlUmVzdEFjdGlvbnMsXG4gIHVzZVRhZ0FjdGlvbnMsXG4gIHVzZVRyYW5zbGF0aW9uQWN0aW9ucyxcbiAgdXNlVXNlckFjdGlvbnMsXG4gIHVzZVZpZGVvQWN0aW9ucyxcbiAgdXNlV2Vic29ja2V0QWN0aW9uc1xufSBmcm9tICcuL3VzZU1ldHJvcG9saXMuanMnO1xuZXhwb3J0IHt1c2VDb252ZXJzYXRpb25UeXBpbmcsIHR5cGUgQ29udmVyc2F0aW9uVHlwaW5nT3B0aW9ucywgdHlwZSBVc2VDb252ZXJzYXRpb25UeXBpbmdPcHRpb25zfSBmcm9tICcuL3VzZUNvbnZlcnNhdGlvblR5cGluZy5qcyc7XG5leHBvcnQge3VzZVRyYW5zbGF0aW9uc30gZnJvbSAnLi91c2VUcmFuc2xhdGlvbnMuanMnO1xuXG4vLyBFeHBvcnQgdXRpbGl0eSBmdW5jdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vYXBwLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZVV0aWxzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24uanMnO1xuIl0sIm5hbWVzIjpbImFwcE11dGF0aW9uIiwiYXBwUXVlcnkiLCJnZXRHcmFwaHFsIiwicHVibGljTXV0YXRpb24iLCJwdWJsaWNRdWVyeSIsInJ1bVJlcXVlc3QiLCJyZWZyZXNoU2Vzc2lvbiIsInJlc29sdmVSZXN0RW5kcG9pbnQiLCJyZXN0UmVxdWVzdCIsInVwbG9hZEltYWdlIiwiY3JlYXRlQWN0aW9uIiwiY3JlYXRlQWN0aW9ucyIsImNyZWF0ZUFsbEFjdGlvbnMiLCJjcmVhdGVCYXNlQWN0aW9ucyIsImNyZWF0ZVZhbGlkYXRvckZhY3RvcnkiLCJjcmVhdGVWYWxpZGF0b3JNYW5hZ2VyIiwiTWV0cm9wb2xpc0NvbnRleHQiLCJQZXJtaXNzaW9uR3VhcmQiLCJQZXJtaXNzaW9uTGV2ZWwiLCJ1c2VQZXJtaXNzaW9ucyIsInVzZUNvbnRlbnRBY3Rpb25zIiwidXNlQXdzUnVtIiwidXNlQ3JtQWN0aW9ucyIsInVzZUV2ZW50QWN0aW9ucyIsInVzZUdyb3VwQWN0aW9ucyIsInVzZUltYWdlQWN0aW9ucyIsInVzZUxvY2F0aW9uQWN0aW9ucyIsInVzZU1lc3NhZ2VBY3Rpb25zIiwidXNlTWV0cm9wb2xpcyIsInVzZU1ldHJvcG9saXNDb25maWciLCJ1c2VNZXRyb3BvbGlzRmx1eCIsInVzZVBlcm1pc3Npb25BY3Rpb25zIiwidXNlUGVyc29uYUFjdGlvbnMiLCJ1c2VQb3N0QWN0aW9ucyIsInVzZVJlYWN0aW9uQWN0aW9ucyIsInVzZVJlc3RBY3Rpb25zIiwidXNlVGFnQWN0aW9ucyIsInVzZVRyYW5zbGF0aW9uQWN0aW9ucyIsInVzZVVzZXJBY3Rpb25zIiwidXNlVmlkZW9BY3Rpb25zIiwidXNlV2Vic29ja2V0QWN0aW9ucyIsInVzZUNvbnZlcnNhdGlvblR5cGluZyIsInVzZVRyYW5zbGF0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBRUQsdUJBQXVCO0FBQ3ZCLFNBQ0VBLFdBQVcsRUFDWEMsUUFBUSxFQUNSQyxVQUFVLEVBQ1ZDLGNBQWMsRUFDZEMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLGNBQWMsRUFDZEMsbUJBQW1CLEVBQ25CQyxXQUFXLEVBQ1hDLFdBQVcsUUFNTixXQUFXO0FBRWxCLHdCQUF3QjtBQUN4QixTQUNFQyxZQUFZLEVBQ1pDLGFBQWEsRUFDYkMsZ0JBQWdCLFFBS1gscUJBQXFCO0FBRTVCLDZCQUE2QjtBQUM3QixTQUNFQyxpQkFBaUIsUUFFWix5QkFBeUI7QUFFaEMsMkJBQTJCO0FBQzNCLFNBQ0VDLHNCQUFzQixFQUN0QkMsc0JBQXNCLFFBRWpCLHdCQUF3QjtBQUUvQixxQkFBcUI7QUFDckIsU0FBUUMsaUJBQWlCLFFBQU8seUJBQXlCO0FBQ3pELFNBQ0VDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxjQUFjLFFBSVQsdUJBQXVCO0FBQzlCLFNBQ0VDLGlCQUFpQixFQUNqQkMsU0FBUyxFQUNUQyxhQUFhLEVBQ2JDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxhQUFhLEVBQ2JDLG1CQUFtQixFQUNuQkMsaUJBQWlCLEVBQ2pCQyxvQkFBb0IsRUFDcEJDLGlCQUFpQixFQUNqQkMsY0FBYyxFQUNkQyxrQkFBa0IsRUFDbEJDLGNBQWMsRUFDZEMsYUFBYSxFQUNiQyxxQkFBcUIsRUFDckJDLGNBQWMsRUFDZEMsZUFBZSxFQUNmQyxtQkFBbUIsUUFDZCxxQkFBcUI7QUFDNUIsU0FBUUMscUJBQXFCLFFBQTBFLDZCQUE2QjtBQUNwSSxTQUFRQyxlQUFlLFFBQU8sdUJBQXVCO0FBRXJELDJCQUEyQjtBQUMzQixjQUFjLFdBQVc7QUFDekIsY0FBYyxpQkFBaUI7QUFDL0IsY0FBYyxZQUFZO0FBQzFCLGNBQWMsWUFBWTtBQUMxQixjQUFjLGdCQUFnQjtBQUM5QixjQUFjLGVBQWUifQ==
|
package/lib/utils/session.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
2
|
-
import type { SessionType } from './api.js';
|
|
3
2
|
import type { ConfigAppSessionType } from '../config/index.js';
|
|
3
|
+
import type { SessionType } from './api.js';
|
|
4
4
|
export declare const parseJwtExpiryMs: (token: string) => number;
|
|
5
5
|
export declare const parseJwtIssuedMs: (token: string) => number;
|
|
6
6
|
export declare const normalizeSession: (session?: Record<string, unknown>) => Record<string, unknown>;
|
package/package.json
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/metropolisjs",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "MetropolisJS is a library to connect users to Reaktor",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "lib/index.js",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
+
"types": "./lib/index.d.ts",
|
|
10
11
|
"import": "./lib/index.js",
|
|
11
|
-
"require": "./lib/index.js"
|
|
12
|
-
"types": "./lib/index.d.ts"
|
|
12
|
+
"require": "./lib/index.js"
|
|
13
13
|
},
|
|
14
14
|
"./stores": {
|
|
15
|
+
"types": "./lib/stores/index.d.ts",
|
|
15
16
|
"import": "./lib/stores/index.js",
|
|
16
|
-
"require": "./lib/stores/index.js"
|
|
17
|
-
"types": "./lib/stores/index.d.ts"
|
|
17
|
+
"require": "./lib/stores/index.js"
|
|
18
18
|
},
|
|
19
19
|
"./actions": {
|
|
20
|
+
"types": "./lib/actions/index.d.ts",
|
|
20
21
|
"import": "./lib/actions/index.js",
|
|
21
|
-
"require": "./lib/actions/index.js"
|
|
22
|
-
"types": "./lib/actions/index.d.ts"
|
|
22
|
+
"require": "./lib/actions/index.js"
|
|
23
23
|
},
|
|
24
24
|
"./adapters": {
|
|
25
|
+
"types": "./lib/adapters/index.d.ts",
|
|
25
26
|
"import": "./lib/adapters/index.js",
|
|
26
|
-
"require": "./lib/adapters/index.js"
|
|
27
|
-
"types": "./lib/adapters/index.d.ts"
|
|
27
|
+
"require": "./lib/adapters/index.js"
|
|
28
28
|
},
|
|
29
29
|
"./utils": {
|
|
30
|
+
"types": "./lib/utils/index.d.ts",
|
|
30
31
|
"import": "./lib/utils/index.js",
|
|
31
|
-
"require": "./lib/utils/index.js"
|
|
32
|
-
"types": "./lib/utils/index.d.ts"
|
|
32
|
+
"require": "./lib/utils/index.js"
|
|
33
33
|
},
|
|
34
34
|
"./config": {
|
|
35
|
+
"types": "./lib/config/index.d.ts",
|
|
35
36
|
"import": "./lib/config/index.js",
|
|
36
|
-
"require": "./lib/config/index.js"
|
|
37
|
-
"types": "./lib/config/index.d.ts"
|
|
37
|
+
"require": "./lib/config/index.js"
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"types": "./lib/index.d.ts",
|
|
@@ -45,7 +45,8 @@
|
|
|
45
45
|
"clean": "lex clean",
|
|
46
46
|
"dev": "lex dev --remove",
|
|
47
47
|
"format": "npm run prettier && npm run lint",
|
|
48
|
-
"lint": "lex lint --fix",
|
|
48
|
+
"lint": "lex lint --fix && npm run lint:examples",
|
|
49
|
+
"lint:examples": "eslint --config node_modules/@nlabs/lex/eslint.config.mjs examples/factory-pattern-usage.ts --fix",
|
|
49
50
|
"prettier": "prettier --write ./src",
|
|
50
51
|
"production": "lex build",
|
|
51
52
|
"publish:major": "npm version major && npm run publish:tags && npm publish",
|
|
@@ -54,6 +55,7 @@
|
|
|
54
55
|
"publish:tags": "git push --tags && git push origin HEAD",
|
|
55
56
|
"start": "lex dev -r -o",
|
|
56
57
|
"test": "lex test",
|
|
58
|
+
"typecheck": "tsc -p tsconfig.json && tsc -p tsconfig.test.json --noEmit && tsc -p tsconfig.lint.json --noEmit && tsc -p tsconfig.examples.json",
|
|
57
59
|
"update": "lex update --interactive",
|
|
58
60
|
"watch": "lex compile --watch"
|
|
59
61
|
},
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"noEmit": true,
|
|
5
|
+
"paths": {
|
|
6
|
+
"@nlabs/metropolisjs": [
|
|
7
|
+
"./src/index.tsx"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
"rootDir": ".",
|
|
11
|
+
"types": [
|
|
12
|
+
"node"
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"exclude": [
|
|
16
|
+
"lib",
|
|
17
|
+
"node_modules"
|
|
18
|
+
],
|
|
19
|
+
"include": [
|
|
20
|
+
"examples/**/*.ts",
|
|
21
|
+
"examples/**/*.tsx"
|
|
22
|
+
]
|
|
23
|
+
}
|