stroid 0.1.1 → 0.1.2
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/CHANGELOG.md +210 -119
- package/README.md +104 -431
- package/dist/async.d.ts +42 -9
- package/dist/async.js +26 -26
- package/dist/async.js.map +1 -1
- package/dist/cache.d.ts +12 -0
- package/dist/computed.d.ts +40 -7
- package/dist/computed.js +11 -11
- package/dist/computed.js.map +1 -1
- package/dist/core.d.ts +5 -15
- package/dist/core.js +14 -15
- package/dist/core.js.map +1 -1
- package/dist/devtools.d.ts +30 -5
- package/dist/devtools.js +1 -1
- package/dist/devtools.js.map +1 -1
- package/dist/feature.d.ts +92 -14
- package/dist/feature.js +1 -1
- package/dist/feature.js.map +1 -1
- package/dist/helpers.d.ts +37 -3
- package/dist/helpers.js +14 -15
- package/dist/helpers.js.map +1 -1
- package/dist/index-internal.d.ts +44 -0
- package/dist/index.d.cts +169 -33
- package/dist/index.d.ts +169 -33
- package/dist/index.js +24 -23
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +6 -4
- package/dist/install.js +1 -1
- package/dist/install.js.map +1 -1
- package/dist/options.d.ts +295 -0
- package/dist/persist.d.ts +1 -1
- package/dist/persist.js +1 -1
- package/dist/persist.js.map +1 -1
- package/dist/react/index.d.ts +70 -0
- package/dist/react/index.js +38 -0
- package/dist/react/index.js.map +1 -0
- package/dist/registry.d.ts +117 -0
- package/dist/runtime-admin.d.ts +4 -2
- package/dist/runtime-admin.js +1 -1
- package/dist/runtime-admin.js.map +1 -1
- package/dist/runtime-tools.d.ts +66 -9
- package/dist/runtime-tools.js +2 -2
- package/dist/runtime-tools.js.map +1 -1
- package/dist/selectors.d.ts +4 -2
- package/dist/selectors.js +1 -1
- package/dist/selectors.js.map +1 -1
- package/dist/server.d.ts +30 -2
- package/dist/server.js +11 -10
- package/dist/server.js.map +1 -1
- package/dist/store-registry.d.ts +80 -0
- package/dist/sync.d.ts +1 -1
- package/dist/sync.js +1 -1
- package/dist/sync.js.map +1 -1
- package/dist/testing.d.ts +16 -4
- package/dist/testing.js +14 -15
- package/dist/testing.js.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/types/adapters/options.d.ts +335 -0
- package/dist/types/async/cache.d.ts +39 -0
- package/dist/types/async/clone.d.ts +10 -0
- package/dist/types/async/errors.d.ts +3 -0
- package/dist/types/async/fetch.d.ts +37 -0
- package/dist/types/async/inflight.d.ts +13 -0
- package/dist/types/async/rate.d.ts +5 -0
- package/dist/types/async/registry.d.ts +116 -0
- package/dist/types/async/request.d.ts +11 -0
- package/dist/types/async/retry.d.ts +10 -0
- package/dist/types/async.d.ts +10 -0
- package/dist/types/computed/computed-graph.d.ts +29 -0
- package/dist/types/computed/index.d.ts +16 -0
- package/dist/types/config.d.ts +10 -0
- package/dist/types/core/index.d.ts +11 -0
- package/dist/types/core/lifecycle-hooks.d.ts +16 -0
- package/dist/types/core/store-admin-impl.d.ts +9 -0
- package/dist/types/core/store-admin.d.ts +9 -0
- package/dist/types/core/store-core.d.ts +13 -0
- package/dist/types/core/store-create.d.ts +16 -0
- package/dist/types/core/store-hydrate-impl.d.ts +35 -0
- package/dist/types/core/store-hydrate.d.ts +9 -0
- package/dist/types/core/store-lifecycle/hooks.d.ts +19 -0
- package/dist/types/core/store-lifecycle/identity.d.ts +23 -0
- package/dist/types/core/store-lifecycle/registry.d.ts +53 -0
- package/dist/types/core/store-lifecycle/types.d.ts +67 -0
- package/dist/types/core/store-lifecycle/validation.d.ts +53 -0
- package/dist/types/core/store-name.d.ts +28 -0
- package/dist/types/core/store-notify.d.ts +12 -0
- package/dist/types/core/store-read.d.ts +18 -0
- package/dist/types/core/store-registry.d.ts +108 -0
- package/dist/types/core/store-replace-impl.d.ts +11 -0
- package/dist/types/core/store-replace.d.ts +9 -0
- package/dist/types/core/store-set-impl.d.ts +13 -0
- package/dist/types/core/store-set.d.ts +9 -0
- package/dist/types/core/store-shared/core.d.ts +13 -0
- package/dist/types/core/store-shared/notify.d.ts +12 -0
- package/dist/types/core/store-transaction.d.ts +26 -0
- package/dist/types/core/store-write-shared.d.ts +19 -0
- package/dist/types/core/store-write.d.ts +13 -0
- package/dist/types/features/feature-registry.d.ts +91 -0
- package/dist/types/features/lifecycle.d.ts +40 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/integrations/query.d.ts +8 -0
- package/dist/types/internals/computed-order.d.ts +3 -0
- package/dist/types/internals/config.d.ts +116 -0
- package/dist/types/internals/diagnostics.d.ts +21 -0
- package/dist/types/internals/reporting.d.ts +9 -0
- package/dist/types/internals/store-admin.d.ts +7 -0
- package/dist/types/internals/store-ops.d.ts +13 -0
- package/dist/types/internals/test-reset.d.ts +2 -0
- package/dist/types/internals/write-context.d.ts +15 -0
- package/dist/types/notification/delivery.d.ts +3 -0
- package/dist/types/notification/index.d.ts +10 -0
- package/dist/types/notification/metrics.d.ts +12 -0
- package/dist/types/notification/priority.d.ts +9 -0
- package/dist/types/notification/scheduler.d.ts +11 -0
- package/dist/types/notification/snapshot.d.ts +8 -0
- package/dist/types/runtime-admin/index.d.ts +2 -0
- package/dist/types/runtime-tools/index.d.ts +58 -0
- package/dist/types/store.d.ts +16 -0
- package/dist/types/types/utility.d.ts +17 -0
- package/dist/types/utils/clone.d.ts +4 -0
- package/dist/types/utils/devfreeze.d.ts +2 -0
- package/dist/types/utils/hash.d.ts +8 -0
- package/dist/types/utils/path.d.ts +5 -0
- package/dist/types/utils/validation.d.ts +14 -0
- package/dist/types/utils.d.ts +13 -0
- package/dist/types.d.ts +65 -0
- package/dist/utility.d.ts +15 -0
- package/package.json +26 -11
- package/dist/_tsup-dts-rollup.d.cts +0 -2411
- package/dist/_tsup-dts-rollup.d.ts +0 -2411
- package/dist/async.cjs +0 -34
- package/dist/async.cjs.map +0 -1
- package/dist/async.d.cts +0 -9
- package/dist/computed.cjs +0 -13
- package/dist/computed.cjs.map +0 -1
- package/dist/computed.d.cts +0 -7
- package/dist/core.cjs +0 -24
- package/dist/core.cjs.map +0 -1
- package/dist/core.d.cts +0 -15
- package/dist/devtools.cjs +0 -2
- package/dist/devtools.cjs.map +0 -1
- package/dist/devtools.d.cts +0 -5
- package/dist/feature.cjs +0 -2
- package/dist/feature.cjs.map +0 -1
- package/dist/feature.d.cts +0 -14
- package/dist/helpers.cjs +0 -24
- package/dist/helpers.cjs.map +0 -1
- package/dist/helpers.d.cts +0 -3
- package/dist/index.cjs +0 -35
- package/dist/index.cjs.map +0 -1
- package/dist/install.cjs +0 -2
- package/dist/install.cjs.map +0 -1
- package/dist/install.d.cts +0 -4
- package/dist/persist.cjs +0 -2
- package/dist/persist.cjs.map +0 -1
- package/dist/persist.d.cts +0 -1
- package/dist/react.cjs +0 -36
- package/dist/react.cjs.map +0 -1
- package/dist/react.d.cts +0 -7
- package/dist/react.d.ts +0 -7
- package/dist/react.js +0 -36
- package/dist/react.js.map +0 -1
- package/dist/runtime-admin.cjs +0 -2
- package/dist/runtime-admin.cjs.map +0 -1
- package/dist/runtime-admin.d.cts +0 -2
- package/dist/runtime-tools.cjs +0 -4
- package/dist/runtime-tools.cjs.map +0 -1
- package/dist/runtime-tools.d.cts +0 -9
- package/dist/selectors.cjs +0 -2
- package/dist/selectors.cjs.map +0 -1
- package/dist/selectors.d.cts +0 -2
- package/dist/server.cjs +0 -12
- package/dist/server.cjs.map +0 -1
- package/dist/server.d.cts +0 -2
- package/dist/sync.cjs +0 -2
- package/dist/sync.cjs.map +0 -1
- package/dist/sync.d.cts +0 -1
- package/dist/testing.cjs +0 -24
- package/dist/testing.cjs.map +0 -1
- package/dist/testing.d.cts +0 -4
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module store-lifecycle/types
|
|
3
|
+
*
|
|
4
|
+
* LAYER: Store lifecycle
|
|
5
|
+
* OWNS: Module-level behavior and exports for store-lifecycle/types.
|
|
6
|
+
*
|
|
7
|
+
* Consumers: Internal imports and public API.
|
|
8
|
+
*/
|
|
9
|
+
type Primitive = string | number | boolean | bigint | symbol | null | undefined;
|
|
10
|
+
type PrevDepth = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
11
|
+
type PathInternal<T, Depth extends number> = Depth extends 0 ? never : T extends Primitive ? never : {
|
|
12
|
+
[K in keyof T & (string | number)]: T[K] extends Primitive | Array<unknown> ? `${K}` : `${K}` | `${K}.${PathInternal<T[K], PrevDepth[Depth]>}`;
|
|
13
|
+
}[keyof T & (string | number)];
|
|
14
|
+
type Path<T, Depth extends number = 10> = PathInternal<T, Depth>;
|
|
15
|
+
type PathValue<T, P extends Path<T>> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? Rest extends Path<T[K]> ? PathValue<T[K], Rest> : never : never : P extends keyof T ? T[P] : never;
|
|
16
|
+
type PartialDeep<T> = T extends Primitive ? T : unknown extends T ? T : {
|
|
17
|
+
[K in keyof T]?: PartialDeep<T[K]>;
|
|
18
|
+
};
|
|
19
|
+
type StoreValue = unknown;
|
|
20
|
+
type HydrateSnapshotFor<Map extends object> = Partial<{
|
|
21
|
+
[K in keyof Map & string]: Map[K];
|
|
22
|
+
}>;
|
|
23
|
+
type HydrationFailureReason = "invalid-name" | "create-failed" | "merge-failed";
|
|
24
|
+
type HydrationFailure = {
|
|
25
|
+
name: string;
|
|
26
|
+
reason: HydrationFailureReason;
|
|
27
|
+
cause?: unknown;
|
|
28
|
+
received?: unknown;
|
|
29
|
+
};
|
|
30
|
+
type HydrationBlockReason = "transaction" | "untrusted" | "validation-error" | "validation-failed";
|
|
31
|
+
type HydrationResult = {
|
|
32
|
+
hydrated: string[];
|
|
33
|
+
created: string[];
|
|
34
|
+
failed: HydrationFailure[];
|
|
35
|
+
blocked?: {
|
|
36
|
+
reason: HydrationBlockReason;
|
|
37
|
+
cause?: unknown;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
interface StoreStateMap {
|
|
41
|
+
}
|
|
42
|
+
interface StrictStoreMap {
|
|
43
|
+
}
|
|
44
|
+
type RegisteredStoreMap = StoreStateMap & StrictStoreMap;
|
|
45
|
+
declare const storeNameBrand: unique symbol;
|
|
46
|
+
type BrandedStoreName = string & {
|
|
47
|
+
readonly [storeNameBrand]: true;
|
|
48
|
+
};
|
|
49
|
+
type StoreName = (keyof RegisteredStoreMap & string) | BrandedStoreName;
|
|
50
|
+
type StateFor<Name extends string> = Name extends keyof RegisteredStoreMap ? RegisteredStoreMap[Name] : StoreValue;
|
|
51
|
+
type StoreKey<Name extends string = string, State = StoreValue> = StoreDefinition<Name, State> & {
|
|
52
|
+
__store?: true;
|
|
53
|
+
};
|
|
54
|
+
interface StoreDefinition<Name extends string = string, State = StoreValue> {
|
|
55
|
+
name: Name;
|
|
56
|
+
state?: State;
|
|
57
|
+
}
|
|
58
|
+
type WriteResult = {
|
|
59
|
+
ok: true;
|
|
60
|
+
} | {
|
|
61
|
+
ok: false;
|
|
62
|
+
reason: "not-found" | "validate" | "path" | "middleware" | "ssr" | "invalid-args" | "lazy-uninitialized";
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export type { HydrateSnapshotFor as H, PartialDeep as P, StoreStateMap as S, WriteResult as W, StoreDefinition as a, StoreKey as b, StoreName as c, StoreValue as d, StateFor as e, StrictStoreMap as f, HydrationResult as g, HydrationFailure as h, Path as i, PathValue as j };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module types/utility
|
|
3
|
+
*
|
|
4
|
+
* LAYER: Types
|
|
5
|
+
* OWNS: Shared utility types for cross-module reuse.
|
|
6
|
+
*
|
|
7
|
+
* Consumers: store-create.ts, store-name.ts, computed.ts, testing.ts.
|
|
8
|
+
*/
|
|
9
|
+
type NonFunction<T> = T extends Function ? never : T;
|
|
10
|
+
type TraceContext = {
|
|
11
|
+
traceId: string;
|
|
12
|
+
spanId: string;
|
|
13
|
+
} & Record<string, unknown>;
|
|
14
|
+
|
|
15
|
+
export type { NonFunction as N, TraceContext as T };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stroid",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Named-store state engine for JavaScript/React with optional persistence, async caching, sync, and devtools.",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "SSR-Safe, Named-store state engine for JavaScript/React with optional persistence, async caching, sync, and devtools.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"state-management",
|
|
7
7
|
"state",
|
|
@@ -77,8 +77,16 @@
|
|
|
77
77
|
"import": "./dist/devtools.js"
|
|
78
78
|
},
|
|
79
79
|
"./react": {
|
|
80
|
-
"types": "./dist/react.d.ts",
|
|
81
|
-
"import": "./dist/react.js"
|
|
80
|
+
"types": "./dist/react/index.d.ts",
|
|
81
|
+
"import": "./dist/react/index.js"
|
|
82
|
+
},
|
|
83
|
+
"./vue": {
|
|
84
|
+
"types": "./dist/vue/index.d.ts",
|
|
85
|
+
"import": "./dist/vue/index.js"
|
|
86
|
+
},
|
|
87
|
+
"./svelte": {
|
|
88
|
+
"types": "./dist/svelte/index.d.ts",
|
|
89
|
+
"import": "./dist/svelte/index.js"
|
|
82
90
|
},
|
|
83
91
|
"./testing": {
|
|
84
92
|
"types": "./dist/testing.d.ts",
|
|
@@ -104,19 +112,26 @@
|
|
|
104
112
|
"sideEffects": [
|
|
105
113
|
"./src/persist.ts",
|
|
106
114
|
"./src/sync.ts",
|
|
107
|
-
"./src/devtools.ts",
|
|
115
|
+
"./src/devtools/index.ts",
|
|
116
|
+
"./src/core/store-notify.ts",
|
|
108
117
|
"./dist/persist.js",
|
|
109
118
|
"./dist/sync.js",
|
|
110
119
|
"./dist/devtools.js"
|
|
111
120
|
],
|
|
112
121
|
"scripts": {
|
|
113
|
-
"test": "node --import ./tests/preload.mjs --import tsx --import ./tests/setup.ts --test
|
|
114
|
-
"test:coverage": "c8
|
|
115
|
-
"test:
|
|
116
|
-
"test:
|
|
122
|
+
"test": "node --import ./tests/preload.mjs --import tsx --import ./tests/setup.ts --test-concurrency=1 --test tests/unit/**/*.test.ts tests/unit/**/*.test.tsx tests/integration/**/*.test.ts tests/integration/**/*.test.tsx tests/regression/**/*.test.ts tests/ssr/**/*.test.ts tests/utils/**/*.test.ts",
|
|
123
|
+
"test:coverage": "c8 node --import ./tests/preload.mjs --import tsx --import ./tests/setup.ts --test tests/unit/**/*.test.ts tests/unit/**/*.test.tsx tests/integration/**/*.test.ts tests/integration/**/*.test.tsx tests/regression/**/*.test.ts tests/ssr/**/*.test.ts tests/utils/**/*.test.ts",
|
|
124
|
+
"test:performance": "node --import ./tests/preload.mjs --import tsx --import ./tests/setup.ts --test-concurrency=1 --test tests/performance/**/*.test.ts",
|
|
125
|
+
"test:heavy": "npm run test:performance",
|
|
126
|
+
"check:react-types": "node scripts/check-react-types.mjs",
|
|
127
|
+
"docs:api": "api-extractor run --local",
|
|
128
|
+
"test:dts": "tsc -p tsconfig.dtscheck.json --noEmit",
|
|
129
|
+
"test:types": "npm run build && npm run check:react-types && npm run docs:api && npm run test:dts && tsc -p tsconfig.typetests.json",
|
|
117
130
|
"typecheck": "tsc -p tsconfig.types.json",
|
|
118
|
-
"
|
|
119
|
-
"
|
|
131
|
+
"typecheck:layers": "tsc -b tsconfig.layers.json",
|
|
132
|
+
"build": "tsup && node scripts/normalize-dts.mjs",
|
|
133
|
+
"test:all": "npm test && npm run test:types",
|
|
134
|
+
"test:full": "npm run test:coverage && npm run test:types"
|
|
120
135
|
},
|
|
121
136
|
"engines": {
|
|
122
137
|
"node": ">=18"
|