@molecule/app-solid 1.0.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/LICENSE +115 -0
- package/README.md +2543 -0
- package/dist/context.d.ts +82 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +141 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives/async-state.d.ts +46 -0
- package/dist/primitives/async-state.d.ts.map +1 -0
- package/dist/primitives/async-state.js +83 -0
- package/dist/primitives/async-state.js.map +1 -0
- package/dist/primitives/auth.d.ts +85 -0
- package/dist/primitives/auth.d.ts.map +1 -0
- package/dist/primitives/auth.js +147 -0
- package/dist/primitives/auth.js.map +1 -0
- package/dist/primitives/capacitor-app.d.ts +46 -0
- package/dist/primitives/capacitor-app.d.ts.map +1 -0
- package/dist/primitives/capacitor-app.js +57 -0
- package/dist/primitives/capacitor-app.js.map +1 -0
- package/dist/primitives/change-password.d.ts +36 -0
- package/dist/primitives/change-password.d.ts.map +1 -0
- package/dist/primitives/change-password.js +32 -0
- package/dist/primitives/change-password.js.map +1 -0
- package/dist/primitives/device.d.ts +48 -0
- package/dist/primitives/device.d.ts.map +1 -0
- package/dist/primitives/device.js +47 -0
- package/dist/primitives/device.js.map +1 -0
- package/dist/primitives/forms.d.ts +193 -0
- package/dist/primitives/forms.d.ts.map +1 -0
- package/dist/primitives/forms.js +309 -0
- package/dist/primitives/forms.js.map +1 -0
- package/dist/primitives/http.d.ts +176 -0
- package/dist/primitives/http.d.ts.map +1 -0
- package/dist/primitives/http.js +254 -0
- package/dist/primitives/http.js.map +1 -0
- package/dist/primitives/i18n.d.ts +146 -0
- package/dist/primitives/i18n.d.ts.map +1 -0
- package/dist/primitives/i18n.js +223 -0
- package/dist/primitives/i18n.js.map +1 -0
- package/dist/primitives/index.d.ts +27 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +27 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/logger.d.ts +143 -0
- package/dist/primitives/logger.d.ts.map +1 -0
- package/dist/primitives/logger.js +165 -0
- package/dist/primitives/logger.js.map +1 -0
- package/dist/primitives/login.d.ts +37 -0
- package/dist/primitives/login.d.ts.map +1 -0
- package/dist/primitives/login.js +32 -0
- package/dist/primitives/login.js.map +1 -0
- package/dist/primitives/oauth.d.ts +102 -0
- package/dist/primitives/oauth.d.ts.map +1 -0
- package/dist/primitives/oauth.js +232 -0
- package/dist/primitives/oauth.js.map +1 -0
- package/dist/primitives/password-reset.d.ts +46 -0
- package/dist/primitives/password-reset.d.ts.map +1 -0
- package/dist/primitives/password-reset.js +49 -0
- package/dist/primitives/password-reset.js.map +1 -0
- package/dist/primitives/platform.d.ts +48 -0
- package/dist/primitives/platform.d.ts.map +1 -0
- package/dist/primitives/platform.js +47 -0
- package/dist/primitives/platform.js.map +1 -0
- package/dist/primitives/promise.d.ts +46 -0
- package/dist/primitives/promise.d.ts.map +1 -0
- package/dist/primitives/promise.js +104 -0
- package/dist/primitives/promise.js.map +1 -0
- package/dist/primitives/push.d.ts +52 -0
- package/dist/primitives/push.d.ts.map +1 -0
- package/dist/primitives/push.js +72 -0
- package/dist/primitives/push.js.map +1 -0
- package/dist/primitives/router.d.ts +170 -0
- package/dist/primitives/router.d.ts.map +1 -0
- package/dist/primitives/router.js +251 -0
- package/dist/primitives/router.js.map +1 -0
- package/dist/primitives/signup.d.ts +37 -0
- package/dist/primitives/signup.d.ts.map +1 -0
- package/dist/primitives/signup.js +32 -0
- package/dist/primitives/signup.js.map +1 -0
- package/dist/primitives/state.d.ts +132 -0
- package/dist/primitives/state.d.ts.map +1 -0
- package/dist/primitives/state.js +167 -0
- package/dist/primitives/state.js.map +1 -0
- package/dist/primitives/storage.d.ts +132 -0
- package/dist/primitives/storage.d.ts.map +1 -0
- package/dist/primitives/storage.js +275 -0
- package/dist/primitives/storage.js.map +1 -0
- package/dist/primitives/theme.d.ts +106 -0
- package/dist/primitives/theme.d.ts.map +1 -0
- package/dist/primitives/theme.js +187 -0
- package/dist/primitives/theme.js.map +1 -0
- package/dist/primitives/version.d.ts +50 -0
- package/dist/primitives/version.d.ts.map +1 -0
- package/dist/primitives/version.js +62 -0
- package/dist/primitives/version.js.map +1 -0
- package/dist/provider.d.ts +36 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.jsx +71 -0
- package/dist/provider.jsx.map +1 -0
- package/dist/types.d.ts +82 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solid.js primitives for version and update management.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { createSignal, onCleanup } from 'solid-js';
|
|
7
|
+
import { getProvider } from '@molecule/app-version';
|
|
8
|
+
/**
|
|
9
|
+
* Create version primitives for tracking app updates.
|
|
10
|
+
*
|
|
11
|
+
* @returns Version primitives object
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { createVersion } from '@molecule/app-solid'
|
|
16
|
+
*
|
|
17
|
+
* function UpdateBanner() {
|
|
18
|
+
* const { isUpdateAvailable, newVersion, applyUpdate, dismissUpdate } = createVersion()
|
|
19
|
+
*
|
|
20
|
+
* return (
|
|
21
|
+
* <Show when={isUpdateAvailable()}>
|
|
22
|
+
* <div>
|
|
23
|
+
* <span>Version {newVersion()} is available!</span>
|
|
24
|
+
* <button onClick={() => applyUpdate()}>Update</button>
|
|
25
|
+
* <button onClick={() => dismissUpdate()}>Dismiss</button>
|
|
26
|
+
* </div>
|
|
27
|
+
* </Show>
|
|
28
|
+
* )
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function createVersion() {
|
|
33
|
+
const provider = getProvider();
|
|
34
|
+
const [state, setState] = createSignal(provider.getState());
|
|
35
|
+
const events = [
|
|
36
|
+
'update-available',
|
|
37
|
+
'service-worker-waiting',
|
|
38
|
+
'service-worker-activated',
|
|
39
|
+
'check-start',
|
|
40
|
+
'check-complete',
|
|
41
|
+
'check-error',
|
|
42
|
+
];
|
|
43
|
+
const unsubscribes = events.map((event) => provider.on(event, () => {
|
|
44
|
+
setState(provider.getState());
|
|
45
|
+
}));
|
|
46
|
+
onCleanup(() => {
|
|
47
|
+
unsubscribes.forEach((unsub) => unsub());
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
state,
|
|
51
|
+
isUpdateAvailable: () => state().isUpdateAvailable,
|
|
52
|
+
isChecking: () => state().isChecking,
|
|
53
|
+
isServiceWorkerWaiting: () => state().isServiceWorkerWaiting,
|
|
54
|
+
newVersion: () => state().newVersion,
|
|
55
|
+
checkForUpdates: () => provider.checkForUpdates(),
|
|
56
|
+
applyUpdate: (options) => provider.applyUpdate(options),
|
|
57
|
+
dismissUpdate: () => provider.dismissUpdate(),
|
|
58
|
+
startPeriodicChecks: (options) => provider.startPeriodicChecks(options),
|
|
59
|
+
stopPeriodicChecks: () => provider.stopPeriodicChecks(),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/primitives/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAkBnD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,YAAY,CAAe,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEzE,MAAM,MAAM,GAAG;QACb,kBAAkB;QAClB,wBAAwB;QACxB,0BAA0B;QAC1B,aAAa;QACb,gBAAgB;QAChB,aAAa;KACL,CAAA;IAEV,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/B,CAAC,CAAC,CACH,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,KAAK;QACL,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,iBAAiB;QAClD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU;QACpC,sBAAsB,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,sBAAsB;QAC5D,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU;QACpC,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE;QACjD,WAAW,EAAE,CAAC,OAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;QACxD,aAAa,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE;QAC7C,mBAAmB,EAAE,CAAC,OAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC;QACxE,kBAAkB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE;KACxD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MoleculeProvider component for Solid.js framework bindings.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import type { ParentComponent } from 'solid-js';
|
|
7
|
+
import type { MoleculeConfig } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* MoleculeProvider component that provides all molecule services to the component tree.
|
|
10
|
+
*
|
|
11
|
+
* @param props - Component props containing the molecule config.
|
|
12
|
+
* @returns The nested provider tree wrapping children.
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { MoleculeProvider } from '@molecule/app-solid'
|
|
16
|
+
* import { createZustandProvider } from '@molecule/app-state-zustand'
|
|
17
|
+
* import { createJwtAuthClient } from '@molecule/app-auth-jwt'
|
|
18
|
+
*
|
|
19
|
+
* function App() {
|
|
20
|
+
* return (
|
|
21
|
+
* <MoleculeProvider
|
|
22
|
+
* config={{
|
|
23
|
+
* state: createZustandProvider(),
|
|
24
|
+
* auth: createJwtAuthClient({ baseUrl: '/api' }),
|
|
25
|
+
* }}
|
|
26
|
+
* >
|
|
27
|
+
* <MyApp />
|
|
28
|
+
* </MoleculeProvider>
|
|
29
|
+
* )
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const MoleculeProvider: ParentComponent<{
|
|
34
|
+
config: MoleculeConfig;
|
|
35
|
+
}>;
|
|
36
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAO,eAAe,EAAE,MAAM,UAAU,CAAA;AAYpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAyDxE,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MoleculeProvider component for Solid.js framework bindings.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { AuthContext, HttpContext, I18nContext, LoggerContext, RouterContext, StateContext, StorageContext, ThemeContext, } from './context.js';
|
|
7
|
+
/**
|
|
8
|
+
* MoleculeProvider component that provides all molecule services to the component tree.
|
|
9
|
+
*
|
|
10
|
+
* @param props - Component props containing the molecule config.
|
|
11
|
+
* @returns The nested provider tree wrapping children.
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* import { MoleculeProvider } from '@molecule/app-solid'
|
|
15
|
+
* import { createZustandProvider } from '@molecule/app-state-zustand'
|
|
16
|
+
* import { createJwtAuthClient } from '@molecule/app-auth-jwt'
|
|
17
|
+
*
|
|
18
|
+
* function App() {
|
|
19
|
+
* return (
|
|
20
|
+
* <MoleculeProvider
|
|
21
|
+
* config={{
|
|
22
|
+
* state: createZustandProvider(),
|
|
23
|
+
* auth: createJwtAuthClient({ baseUrl: '/api' }),
|
|
24
|
+
* }}
|
|
25
|
+
* >
|
|
26
|
+
* <MyApp />
|
|
27
|
+
* </MoleculeProvider>
|
|
28
|
+
* )
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export const MoleculeProvider = (props) => {
|
|
33
|
+
// Build nested providers lazily — children must NOT be evaluated until all
|
|
34
|
+
// providers are in the component tree, otherwise child components that call
|
|
35
|
+
// useContext will find undefined (Solid evaluates children eagerly).
|
|
36
|
+
let render = () => props.children;
|
|
37
|
+
if (props.config.logger) {
|
|
38
|
+
const inner = render;
|
|
39
|
+
render = () => (<LoggerContext.Provider value={props.config.logger}>{inner()}</LoggerContext.Provider>);
|
|
40
|
+
}
|
|
41
|
+
if (props.config.storage) {
|
|
42
|
+
const inner = render;
|
|
43
|
+
render = () => (<StorageContext.Provider value={props.config.storage}>{inner()}</StorageContext.Provider>);
|
|
44
|
+
}
|
|
45
|
+
if (props.config.http) {
|
|
46
|
+
const inner = render;
|
|
47
|
+
render = () => <HttpContext.Provider value={props.config.http}>{inner()}</HttpContext.Provider>;
|
|
48
|
+
}
|
|
49
|
+
if (props.config.i18n) {
|
|
50
|
+
const inner = render;
|
|
51
|
+
render = () => <I18nContext.Provider value={props.config.i18n}>{inner()}</I18nContext.Provider>;
|
|
52
|
+
}
|
|
53
|
+
if (props.config.router) {
|
|
54
|
+
const inner = render;
|
|
55
|
+
render = () => (<RouterContext.Provider value={props.config.router}>{inner()}</RouterContext.Provider>);
|
|
56
|
+
}
|
|
57
|
+
if (props.config.theme) {
|
|
58
|
+
const inner = render;
|
|
59
|
+
render = () => (<ThemeContext.Provider value={props.config.theme}>{inner()}</ThemeContext.Provider>);
|
|
60
|
+
}
|
|
61
|
+
if (props.config.auth) {
|
|
62
|
+
const inner = render;
|
|
63
|
+
render = () => <AuthContext.Provider value={props.config.auth}>{inner()}</AuthContext.Provider>;
|
|
64
|
+
}
|
|
65
|
+
if (props.config.state) {
|
|
66
|
+
const inner = render;
|
|
67
|
+
render = () => (<StateContext.Provider value={props.config.state}>{inner()}</StateContext.Provider>);
|
|
68
|
+
}
|
|
69
|
+
return render();
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=provider.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.jsx","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solid.js-specific types for molecule.dev framework bindings.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import type { Accessor, Setter } from 'solid-js';
|
|
7
|
+
import type { AuthClient, AuthState } from '@molecule/app-auth';
|
|
8
|
+
import type { FormController, FormOptions } from '@molecule/app-forms';
|
|
9
|
+
import type { HttpClient } from '@molecule/app-http';
|
|
10
|
+
import type { I18nProvider } from '@molecule/app-i18n';
|
|
11
|
+
import type { Logger, LoggerProvider } from '@molecule/app-logger';
|
|
12
|
+
import type { QueryParams, RouteLocation, RouteParams, Router } from '@molecule/app-routing';
|
|
13
|
+
import type { StateProvider, Store as MoleculeStore, StoreConfig } from '@molecule/app-state';
|
|
14
|
+
import type { StorageProvider } from '@molecule/app-storage';
|
|
15
|
+
import type { Theme, ThemeProvider } from '@molecule/app-theme';
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for molecule Solid context.
|
|
18
|
+
*/
|
|
19
|
+
export interface MoleculeConfig {
|
|
20
|
+
state?: StateProvider;
|
|
21
|
+
auth?: AuthClient<unknown>;
|
|
22
|
+
theme?: ThemeProvider;
|
|
23
|
+
router?: Router;
|
|
24
|
+
i18n?: I18nProvider;
|
|
25
|
+
http?: HttpClient;
|
|
26
|
+
storage?: StorageProvider;
|
|
27
|
+
logger?: LoggerProvider;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* State for async HTTP operations.
|
|
31
|
+
*/
|
|
32
|
+
export interface HttpState<T> {
|
|
33
|
+
data: T | null;
|
|
34
|
+
loading: boolean;
|
|
35
|
+
error: Error | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* State for async storage values.
|
|
39
|
+
*/
|
|
40
|
+
export interface StorageValueState<T> {
|
|
41
|
+
value: T | undefined;
|
|
42
|
+
loading: boolean;
|
|
43
|
+
error: Error | null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Auth primitives return type.
|
|
47
|
+
*/
|
|
48
|
+
export interface AuthPrimitives<T = unknown> {
|
|
49
|
+
state: Accessor<AuthState<T>>;
|
|
50
|
+
user: Accessor<T | null>;
|
|
51
|
+
isAuthenticated: Accessor<boolean>;
|
|
52
|
+
isLoading: Accessor<boolean>;
|
|
53
|
+
login: AuthClient<T>['login'];
|
|
54
|
+
logout: AuthClient<T>['logout'];
|
|
55
|
+
register: AuthClient<T>['register'];
|
|
56
|
+
refresh: AuthClient<T>['refresh'];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Theme primitives return type.
|
|
60
|
+
*/
|
|
61
|
+
export interface ThemePrimitives {
|
|
62
|
+
theme: Accessor<Theme>;
|
|
63
|
+
themeName: Accessor<string>;
|
|
64
|
+
mode: Accessor<'light' | 'dark'>;
|
|
65
|
+
setTheme: (name: string) => void;
|
|
66
|
+
toggleTheme: () => void;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Router primitives return type.
|
|
70
|
+
*/
|
|
71
|
+
export interface RouterPrimitives {
|
|
72
|
+
location: Accessor<RouteLocation>;
|
|
73
|
+
params: Accessor<RouteParams>;
|
|
74
|
+
query: Accessor<QueryParams>;
|
|
75
|
+
navigate: Router['navigate'];
|
|
76
|
+
navigateTo: Router['navigateTo'];
|
|
77
|
+
back: Router['back'];
|
|
78
|
+
forward: Router['forward'];
|
|
79
|
+
isActive: Router['isActive'];
|
|
80
|
+
}
|
|
81
|
+
export type { Accessor, AuthClient, AuthState, FormController, FormOptions, HttpClient, I18nProvider, Logger, LoggerProvider, MoleculeStore, QueryParams, RouteLocation, RouteParams, Router, Setter, StateProvider, StorageProvider, StoreConfig, Theme, ThemeProvider, };
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@molecule/app-solid",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Solid.js framework bindings for molecule.dev",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"dev": "tsc --watch",
|
|
15
|
+
"test": "vitest run",
|
|
16
|
+
"test:watch": "vitest"
|
|
17
|
+
},
|
|
18
|
+
"author": "Molecule Dev, Inc. (https://molecule.dev)",
|
|
19
|
+
"license": "Apache-2.0",
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=20"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"@molecule/app-auth": "^1.0.0",
|
|
25
|
+
"@molecule/app-device": "^1.0.0",
|
|
26
|
+
"@molecule/app-forms": "^1.0.0",
|
|
27
|
+
"@molecule/app-http": "^1.0.0",
|
|
28
|
+
"@molecule/app-i18n": "^1.0.0",
|
|
29
|
+
"@molecule/app-logger": "^1.0.0",
|
|
30
|
+
"@molecule/app-platform": "^1.0.0",
|
|
31
|
+
"@molecule/app-push": "^1.0.0",
|
|
32
|
+
"@molecule/app-routing": "^1.0.0",
|
|
33
|
+
"@molecule/app-state": "^1.0.0",
|
|
34
|
+
"@molecule/app-storage": "^1.0.0",
|
|
35
|
+
"@molecule/app-theme": "^1.0.0",
|
|
36
|
+
"@molecule/app-ui": "^1.0.0",
|
|
37
|
+
"@molecule/app-utilities": "^1.0.0",
|
|
38
|
+
"@molecule/app-version": "^1.0.0",
|
|
39
|
+
"solid-js": "^1.8.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@molecule/app-utilities": "1.0.0",
|
|
43
|
+
"@types/node": "26.1.2",
|
|
44
|
+
"solid-js": "1.9.14",
|
|
45
|
+
"typescript": "6.0.3",
|
|
46
|
+
"vitest": "4.1.10"
|
|
47
|
+
},
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "https://github.com/molecule-dev/molecule.git",
|
|
51
|
+
"directory": "packages/app/frameworks/solid"
|
|
52
|
+
},
|
|
53
|
+
"homepage": "https://github.com/molecule-dev/molecule/tree/main/packages/app/frameworks/solid",
|
|
54
|
+
"bugs": "https://github.com/molecule-dev/molecule/issues",
|
|
55
|
+
"publishConfig": {
|
|
56
|
+
"access": "public"
|
|
57
|
+
}
|
|
58
|
+
}
|