@primate/solid 0.7.1 → 0.9.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.
Files changed (47) hide show
  1. package/lib/app.d.ts +5 -0
  2. package/lib/index.d.ts +2 -0
  3. package/lib/private/Head/ServerChild.d.ts +1 -1
  4. package/lib/private/client/Data.d.ts +5 -0
  5. package/lib/private/client/Data.js +2 -0
  6. package/lib/private/client/Payload.d.ts +7 -0
  7. package/lib/private/client/Payload.js +2 -0
  8. package/lib/private/client/app.d.ts +14 -0
  9. package/lib/private/client/app.js +27 -0
  10. package/lib/private/client/field.d.ts +31 -0
  11. package/lib/private/client/{validate.js → field.js} +5 -5
  12. package/lib/private/client/form.d.ts +22 -0
  13. package/lib/private/client/form.js +42 -0
  14. package/lib/private/client/index.d.ts +47 -10
  15. package/lib/private/client/index.js +4 -28
  16. package/lib/private/client/root.d.ts +21 -0
  17. package/lib/private/client/root.js +20 -0
  18. package/lib/private/context/app.d.ts +1 -1
  19. package/lib/private/create-root.js +8 -6
  20. package/lib/private/default.d.ts +7 -0
  21. package/lib/private/{Default.js → default.js} +13 -15
  22. package/lib/private/init.d.ts +5 -0
  23. package/lib/private/{Runtime.js → init.js} +10 -10
  24. package/lib/private/request/store.d.ts +4 -0
  25. package/lib/private/request/store.js +4 -0
  26. package/lib/private/runtime.d.ts +7 -0
  27. package/lib/private/runtime.js +4 -0
  28. package/lib/public/app.d.ts +2 -0
  29. package/lib/public/app.js +2 -0
  30. package/lib/public/browser.d.ts +1 -1
  31. package/lib/public/browser.js +1 -1
  32. package/lib/public/client.d.ts +2 -0
  33. package/lib/public/client.js +2 -0
  34. package/lib/public/default.d.ts +1 -3
  35. package/lib/public/default.js +1 -2
  36. package/lib/public/runtime.d.ts +1 -3
  37. package/lib/public/runtime.js +1 -2
  38. package/package.json +30 -21
  39. package/lib/private/Default.d.ts +0 -13
  40. package/lib/private/Runtime.d.ts +0 -11
  41. package/lib/private/client/Validated.d.ts +0 -10
  42. package/lib/private/client/Validated.js +0 -2
  43. package/lib/private/client/validate.d.ts +0 -25
  44. package/lib/public/Validated.d.ts +0 -2
  45. package/lib/public/Validated.js +0 -2
  46. package/lib/public/validate.d.ts +0 -2
  47. package/lib/public/validate.js +0 -2
package/lib/app.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ declare module "app:solid" {
2
+ import type { RequestPublic } from "@primate/core";
3
+ import type { Accessor } from "solid-js";
4
+ export const request: Accessor<RequestPublic>;
5
+ }
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import "./app.d.ts";
2
+ export { default } from "./public/default";
@@ -1,4 +1,4 @@
1
- import type Dict from "@rcompat/type/Dict";
1
+ import type { Dict } from "@rcompat/type";
2
2
  type Child = {
3
3
  props: Dict;
4
4
  t: string;
@@ -0,0 +1,5 @@
1
+ import type { Data as CoreData } from "@primate/core/client";
2
+ import type Payload from "#client/Payload";
3
+ type Data = CoreData<Payload>;
4
+ export default Data;
5
+ //# sourceMappingURL=Data.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Data.js.map
@@ -0,0 +1,7 @@
1
+ import type { Dict } from "@rcompat/type";
2
+ type Payload = {
3
+ views: string[];
4
+ props: Dict[];
5
+ };
6
+ export default Payload;
7
+ //# sourceMappingURL=Payload.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Payload.js.map
@@ -0,0 +1,14 @@
1
+ import type Data from "#client/Data";
2
+ declare global {
3
+ interface Window {
4
+ _$HY: {
5
+ completed: WeakSet<object>;
6
+ events: unknown[];
7
+ r: Record<string, unknown>;
8
+ };
9
+ }
10
+ }
11
+ export default class SolidApp {
12
+ static mount(_view: string, data: Data): void;
13
+ }
14
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1,27 @@
1
+ import root from "#client/root";
2
+ import client from "@primate/core/client";
3
+ import SolidHead from "@primate/solid/Head";
4
+ import Root from "solid:root";
5
+ window._$HY = { completed: new WeakSet(), events: [], r: {} };
6
+ const { body } = globalThis.window.document;
7
+ SolidHead.clear();
8
+ export default class SolidApp {
9
+ static mount(_view, data) {
10
+ const mount = () => Root(root.toProps(data));
11
+ let dispose = root[data.ssr ? "ssr" : "csr"](mount, body);
12
+ if (data.spa) {
13
+ const start = () => client.boot((_data, update) => {
14
+ dispose();
15
+ dispose = root.csr(() => Root(root.toProps(_data, update)), body);
16
+ update?.();
17
+ });
18
+ if (document.readyState === "loading") {
19
+ window.addEventListener("DOMContentLoaded", start, { once: true });
20
+ }
21
+ else {
22
+ start();
23
+ }
24
+ }
25
+ }
26
+ }
27
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1,31 @@
1
+ import { type ValidateUpdater, type ValidationError } from "@primate/core/client";
2
+ type Validated<T> = {
3
+ error: () => null | ValidationError;
4
+ loading: () => boolean;
5
+ update: (updater: ValidateUpdater<T>) => Promise<void>;
6
+ value: () => T;
7
+ };
8
+ declare const field: <T>(initial: T) => {
9
+ delete: (url: string, options?: {
10
+ headers?: import("@rcompat/type").Dict<string>;
11
+ map?: ((v: T) => import("@rcompat/type").JSONValue) | undefined;
12
+ path?: import("@rcompat/type").JSONPointer;
13
+ } | undefined) => Validated<T>;
14
+ patch: (url: string, options?: {
15
+ headers?: import("@rcompat/type").Dict<string>;
16
+ map?: ((v: T) => import("@rcompat/type").JSONValue) | undefined;
17
+ path?: import("@rcompat/type").JSONPointer;
18
+ } | undefined) => Validated<T>;
19
+ post: (url: string, options?: {
20
+ headers?: import("@rcompat/type").Dict<string>;
21
+ map?: ((v: T) => import("@rcompat/type").JSONValue) | undefined;
22
+ path?: import("@rcompat/type").JSONPointer;
23
+ } | undefined) => Validated<T>;
24
+ put: (url: string, options?: {
25
+ headers?: import("@rcompat/type").Dict<string>;
26
+ map?: ((v: T) => import("@rcompat/type").JSONValue) | undefined;
27
+ path?: import("@rcompat/type").JSONPointer;
28
+ } | undefined) => Validated<T>;
29
+ };
30
+ export default field;
31
+ //# sourceMappingURL=field.d.ts.map
@@ -1,5 +1,4 @@
1
- import toValidated from "@primate/core/client/toValidated";
2
- import validate from "@primate/core/client/validate";
1
+ import client from "@primate/core/client";
3
2
  import { createSignal } from "solid-js";
4
3
  function useValidate(init) {
5
4
  const [value, setValue] = createSignal(init.initial);
@@ -12,7 +11,7 @@ function useValidate(init) {
12
11
  setLoading(true);
13
12
  setError(null);
14
13
  try {
15
- await validate(init, next);
14
+ await client.validateField(init, next);
16
15
  }
17
16
  catch (e) {
18
17
  // rollback
@@ -25,5 +24,6 @@ function useValidate(init) {
25
24
  }
26
25
  return { error, loading, update, value };
27
26
  }
28
- export default toValidated(useValidate);
29
- //# sourceMappingURL=validate.js.map
27
+ const field = client.toValidated(useValidate);
28
+ export default field;
29
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1,22 @@
1
+ import { type FormInit } from "@primate/core/client";
2
+ import type { Dict } from "@rcompat/type";
3
+ type FormView<Values extends Dict> = {
4
+ id: string;
5
+ submitting: boolean;
6
+ submitted: boolean;
7
+ submit: (event?: Event) => Promise<void>;
8
+ errors: readonly string[];
9
+ field: <K extends keyof Values & string>(name: K) => {
10
+ name: string;
11
+ value: Values[K];
12
+ error: string | null;
13
+ errors: readonly string[];
14
+ };
15
+ };
16
+ type Initial<Values extends Dict> = FormInit & {
17
+ initial?: Values;
18
+ };
19
+ declare function form<Values extends Dict>(init: Initial<Values>): FormView<Values>;
20
+ declare function form(init?: FormInit): FormView<Dict>;
21
+ export default form;
22
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1,42 @@
1
+ import core from "@primate/core/client";
2
+ import { createSignal, onCleanup } from "solid-js";
3
+ function form(init) {
4
+ const { initial, ...form_init } = (init ?? {});
5
+ const controller = core.createForm(form_init);
6
+ const values = (initial ?? {});
7
+ const [snapshot, setSnapshot] = createSignal(controller.read());
8
+ const unsub = controller.subscribe((next) => setSnapshot(next));
9
+ onCleanup(unsub);
10
+ return {
11
+ get id() {
12
+ return snapshot().id;
13
+ },
14
+ get submitting() {
15
+ return snapshot().submitting;
16
+ },
17
+ get submitted() {
18
+ return snapshot().submitted;
19
+ },
20
+ submit(event) {
21
+ return controller.submit(event);
22
+ },
23
+ get errors() {
24
+ return snapshot().errors.form;
25
+ },
26
+ field(name) {
27
+ const key = name;
28
+ return {
29
+ name: key,
30
+ value: values[name],
31
+ get errors() {
32
+ return snapshot().errors.fields[key] ?? [];
33
+ },
34
+ get error() {
35
+ return (snapshot().errors.fields[key] ?? [])[0] ?? null;
36
+ },
37
+ };
38
+ },
39
+ };
40
+ }
41
+ export default form;
42
+ //# sourceMappingURL=form.js.map
@@ -1,11 +1,48 @@
1
- import type ClientData from "@primate/core/client/Data";
2
- import type Dict from "@rcompat/type/Dict";
3
- type Data = ClientData<{
4
- views: string[];
5
- props: Dict[];
6
- }>;
7
- export default class Solid {
8
- static mount(_view: string, data: ClientData<Data>): void;
9
- }
10
- export {};
1
+ import form from "#client/form";
2
+ declare const client: {
3
+ form: typeof form;
4
+ field: <T>(initial: T) => {
5
+ delete: (url: string, options?: {
6
+ headers?: import("@rcompat/type").Dict<string>;
7
+ map?: ((v: T) => import("@rcompat/type").JSONValue) | undefined;
8
+ path?: import("@rcompat/type").JSONPointer;
9
+ } | undefined) => {
10
+ error: () => null | import("@primate/core/client").ValidationError;
11
+ loading: () => boolean;
12
+ update: (updater: import("@primate/core/client").ValidateUpdater<T>) => Promise<void>;
13
+ value: () => T;
14
+ };
15
+ patch: (url: string, options?: {
16
+ headers?: import("@rcompat/type").Dict<string>;
17
+ map?: ((v: T) => import("@rcompat/type").JSONValue) | undefined;
18
+ path?: import("@rcompat/type").JSONPointer;
19
+ } | undefined) => {
20
+ error: () => null | import("@primate/core/client").ValidationError;
21
+ loading: () => boolean;
22
+ update: (updater: import("@primate/core/client").ValidateUpdater<T>) => Promise<void>;
23
+ value: () => T;
24
+ };
25
+ post: (url: string, options?: {
26
+ headers?: import("@rcompat/type").Dict<string>;
27
+ map?: ((v: T) => import("@rcompat/type").JSONValue) | undefined;
28
+ path?: import("@rcompat/type").JSONPointer;
29
+ } | undefined) => {
30
+ error: () => null | import("@primate/core/client").ValidationError;
31
+ loading: () => boolean;
32
+ update: (updater: import("@primate/core/client").ValidateUpdater<T>) => Promise<void>;
33
+ value: () => T;
34
+ };
35
+ put: (url: string, options?: {
36
+ headers?: import("@rcompat/type").Dict<string>;
37
+ map?: ((v: T) => import("@rcompat/type").JSONValue) | undefined;
38
+ path?: import("@rcompat/type").JSONPointer;
39
+ } | undefined) => {
40
+ error: () => null | import("@primate/core/client").ValidationError;
41
+ loading: () => boolean;
42
+ update: (updater: import("@primate/core/client").ValidateUpdater<T>) => Promise<void>;
43
+ value: () => T;
44
+ };
45
+ };
46
+ };
47
+ export default client;
11
48
  //# sourceMappingURL=index.d.ts.map
@@ -1,29 +1,5 @@
1
- import spa from "@primate/core/client/spa";
2
- import SolidHead from "@primate/solid/Head";
3
- import { hydrate, render } from "solid-js/web";
4
- import root_view from "solid:root";
5
- import * as views from "solid:views";
6
- // @ts-expect-error solid hydration
7
- globalThis._$HY = { completed: new WeakSet(), events: [], r: {} };
8
- const { body } = globalThis.window.document;
9
- SolidHead.clear();
10
- const make_props = (data) => ({
11
- views: data.views.map(name => views[name]),
12
- props: data.props,
13
- request: {
14
- ...data.request,
15
- url: new URL(location.href),
16
- },
17
- });
18
- export default class Solid {
19
- static mount(_view, data) {
20
- let dispose = hydrate(() => root_view(make_props(data)), body);
21
- if (data.spa) {
22
- window.addEventListener("DOMContentLoaded", _ => spa(_data => {
23
- dispose();
24
- dispose = render(() => root_view(make_props(_data)), body);
25
- }));
26
- }
27
- }
28
- }
1
+ import field from "#client/field";
2
+ import form from "#client/form";
3
+ const client = { form, field };
4
+ export default client;
29
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,21 @@
1
+ import type Data from "#client/Data";
2
+ import type { Dict } from "@rcompat/type";
3
+ import { type Component } from "solid-js";
4
+ import { render } from "solid-js/web";
5
+ type ViewComponent = Component<any>;
6
+ export type RootProps = {
7
+ views: ViewComponent[];
8
+ props: Dict[];
9
+ request: Data["request"] & {
10
+ url: URL;
11
+ };
12
+ update?: () => void;
13
+ };
14
+ declare function toProps(data: Data, update?: () => void): RootProps;
15
+ declare const root: {
16
+ toProps: typeof toProps;
17
+ csr: typeof render;
18
+ ssr: typeof import("solid-js/web/types/client.js").hydrate;
19
+ };
20
+ export default root;
21
+ //# sourceMappingURL=root.d.ts.map
@@ -0,0 +1,20 @@
1
+ import { hydrate, render } from "solid-js/web";
2
+ import * as Views from "solid:views";
3
+ function toProps(data, update) {
4
+ return {
5
+ views: data.views.map(name => Views[name]),
6
+ props: data.props,
7
+ request: {
8
+ ...data.request,
9
+ url: new URL(data.request.url),
10
+ },
11
+ update,
12
+ };
13
+ }
14
+ const root = {
15
+ toProps,
16
+ csr: render,
17
+ ssr: hydrate,
18
+ };
19
+ export default root;
20
+ //# sourceMappingURL=root.js.map
@@ -1,5 +1,5 @@
1
1
  import type ContextData from "@primate/core/i18n/ContextData";
2
- import type Dict from "@rcompat/type/Dict";
2
+ import type { Dict } from "@rcompat/type";
3
3
  import { type Accessor, type Setter } from "solid-js";
4
4
  type Context = {
5
5
  i18n: ContextData;
@@ -1,11 +1,11 @@
1
1
  export default (length, i18n_active) => {
2
2
  const n = length;
3
- const body = Array.from({ length: n }, (_, i) => i - 1)
4
- .reduceRight((child, _, i) => `views[${i + 1}] !== undefined
5
- ? createComponent(views[${i}], {request, ...props[${i}],
6
- children: ${child}})
7
- : createComponent(views[${i}], {request, ...props[${i}]})
8
- `, `createComponent(views[${n}], {request, ...props[${n}]})`);
3
+ const body = Array.from({ length: n }, (_, i) => i - 1).reduceRight((child, _, i) => `views[${i + 1}] !== undefined
4
+ ? createComponent(views[${i}], { ...props[${i}],
5
+ get children() { return ${child}; }
6
+ })
7
+ : createComponent(views[${i}], props[${i}])
8
+ `, `createComponent(views[${n}], props[${n}])`);
9
9
  const i18n_imports = i18n_active
10
10
  ? `
11
11
  import I18nBridge from "@primate/solid/i18n/Bridge";
@@ -17,10 +17,12 @@ export default (length, i18n_active) => {
17
17
  return `
18
18
  import { createSignal } from "solid-js";
19
19
  import { createComponent } from "solid-js/web";
20
+ import { setRequest } from "@primate/solid/app";
20
21
  import AppContext from "@primate/solid/context/app";
21
22
  import HeadContext from "@primate/solid/context/head";${i18n_imports}
22
23
 
23
24
  export default ({ views, props, request, push_heads: value }) => {
25
+ setRequest(request);
24
26
  const [context, setContext] = createSignal(request.context);
25
27
  const $value = { context, setContext };
26
28
 
@@ -0,0 +1,7 @@
1
+ declare const _default: (input?: {
2
+ extensions?: string[] | undefined;
3
+ spa?: boolean | undefined;
4
+ ssr?: boolean | undefined;
5
+ } | undefined) => import("@primate/core/frontend").Module;
6
+ export default _default;
7
+ //# sourceMappingURL=default.d.ts.map
@@ -1,22 +1,20 @@
1
1
  import create_root from "#create-root";
2
- import Runtime from "#Runtime";
2
+ import init from "#init";
3
3
  import { transformSync } from "@babel/core";
4
- import transform from "@rcompat/build/sync/transform";
4
+ import build_presets from "@primate/core/build/presets";
5
+ import transform from "@primate/core/build/transform";
6
+ import frontend from "@primate/core/frontend";
5
7
  // @ts-expect-error no declaration file
6
8
  import solid from "babel-preset-solid";
7
9
  function compile(text, presets) {
8
- return transformSync(transform(text, {
9
- format: "esm",
10
- jsx: "preserve",
11
- loader: "tsx",
12
- target: "esnext",
13
- }).code, { presets })?.code ?? "";
10
+ return transformSync(transform(text, build_presets.solid).code, { presets })?.code ?? "";
14
11
  }
15
- export default class Default extends Runtime {
16
- root = {
12
+ export default frontend({
13
+ ...init,
14
+ root: {
17
15
  create: create_root,
18
- };
19
- compile = {
16
+ },
17
+ compile: {
20
18
  client: (text) => {
21
19
  const presets = [[solid, { generate: "dom", hydratable: true }]];
22
20
  return { js: compile(text, presets) };
@@ -25,6 +23,6 @@ export default class Default extends Runtime {
25
23
  const presets = [[solid, { generate: "ssr", hydratable: true }]];
26
24
  return compile(text, presets);
27
25
  },
28
- };
29
- }
30
- //# sourceMappingURL=Default.js.map
26
+ },
27
+ });
28
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1,5 @@
1
+ import type { Init } from "@primate/core/frontend";
2
+ import type { Component } from "solid-js";
3
+ declare const module: Init<Component>;
4
+ export default module;
5
+ //# sourceMappingURL=init.d.ts.map
@@ -1,11 +1,10 @@
1
- import FrontendModule from "@primate/core/frontend/Module";
2
1
  import { renderToString } from "solid-js/web";
3
- export default class Runtime extends FrontendModule {
4
- name = "solid";
5
- defaultExtensions = [".jsx", ".tsx"];
6
- client = true;
7
- layouts = true;
8
- render = (view, props) => {
2
+ const module = {
3
+ name: "solid",
4
+ extensions: [".jsx", ".tsx"],
5
+ layouts: true,
6
+ client: true,
7
+ render(view, props) {
9
8
  const heads = [];
10
9
  const push_heads = (sub_heads) => {
11
10
  heads.push(...sub_heads);
@@ -17,6 +16,7 @@ export default class Runtime extends FrontendModule {
17
16
  }
18
17
  const head = heads.join("\n");
19
18
  return { body, head };
20
- };
21
- }
22
- //# sourceMappingURL=Runtime.js.map
19
+ },
20
+ };
21
+ export default module;
22
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1,4 @@
1
+ import type { RequestPublic } from "@primate/core";
2
+ declare const request: import("solid-js").Accessor<RequestPublic>, setRequest: import("solid-js").Setter<RequestPublic>;
3
+ export { request, setRequest };
4
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { createSignal } from "solid-js";
2
+ const [request, setRequest] = createSignal(undefined);
3
+ export { request, setRequest };
4
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1,7 @@
1
+ declare const _default: (input?: {
2
+ extensions?: string[] | undefined;
3
+ spa?: boolean | undefined;
4
+ ssr?: boolean | undefined;
5
+ } | undefined) => import("@primate/core/frontend").Module;
6
+ export default _default;
7
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1,4 @@
1
+ import init from "#init";
2
+ import frontend from "@primate/core/frontend";
3
+ export default frontend(init);
4
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1,2 @@
1
+ export { request, setRequest } from "#request/store";
2
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { request, setRequest } from "#request/store";
2
+ //# sourceMappingURL=app.js.map
@@ -1,2 +1,2 @@
1
- export { default } from "#client/index";
1
+ export { default } from "#client/app";
2
2
  //# sourceMappingURL=browser.d.ts.map
@@ -1,2 +1,2 @@
1
- export { default } from "#client/index";
1
+ export { default } from "#client/app";
2
2
  //# sourceMappingURL=browser.js.map
@@ -0,0 +1,2 @@
1
+ export { default } from "#client/index";
2
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1,2 @@
1
+ export { default } from "#client/index";
2
+ //# sourceMappingURL=client.js.map
@@ -1,4 +1,2 @@
1
- import Default from "#Default";
2
- declare const _default: (options?: typeof Default.input) => Default;
3
- export default _default;
1
+ export { default } from "#default";
4
2
  //# sourceMappingURL=default.d.ts.map
@@ -1,3 +1,2 @@
1
- import Default from "#Default";
2
- export default (options) => new Default(options);
1
+ export { default } from "#default";
3
2
  //# sourceMappingURL=default.js.map
@@ -1,4 +1,2 @@
1
- import Runtime from "#Runtime";
2
- declare const _default: (options?: typeof Runtime.input) => Runtime;
3
- export default _default;
1
+ export { default } from "#runtime";
4
2
  //# sourceMappingURL=runtime.d.ts.map
@@ -1,3 +1,2 @@
1
- import Runtime from "#Runtime";
2
- export default (options) => new Runtime(options);
1
+ export { default } from "#runtime";
3
2
  //# sourceMappingURL=runtime.js.map
package/package.json CHANGED
@@ -1,63 +1,72 @@
1
1
  {
2
2
  "name": "@primate/solid",
3
- "version": "0.7.1",
4
- "description": "Primate Solid frontend",
3
+ "version": "0.9.0",
4
+ "description": "SolidJS for Primate",
5
5
  "homepage": "https://primate.run/docs/frontend/solid",
6
6
  "bugs": "https://github.com/primate-run/primate/issues",
7
7
  "license": "MIT",
8
- "files": [
9
- "/lib/**/*.js",
10
- "/lib/**/*.d.ts",
11
- "!/**/*.spec.*"
12
- ],
8
+ "type": "module",
13
9
  "repository": {
14
10
  "type": "git",
15
11
  "url": "https://github.com/primate-run/primate",
16
12
  "directory": "packages/solid"
17
13
  },
14
+ "files": [
15
+ "/lib/**/*.js",
16
+ "/lib/**/*.d.ts",
17
+ "!/**/*.spec.*"
18
+ ],
19
+ "types": "lib/index.d.ts",
18
20
  "devDependencies": {
19
- "@types/babel__core": "^7.20.5"
21
+ "@rcompat/type": "^0.11.1",
22
+ "@types/babel__core": "^7.20.5",
23
+ "@primate/test": "^0.0.0"
20
24
  },
21
25
  "dependencies": {
22
- "@babel/core": "^7.28.4",
23
- "@rcompat/build": "^0.15.0",
24
- "@rcompat/fs": "^0.22.3",
25
- "@rcompat/runtime": "^0.6.0",
26
- "babel-preset-solid": "^1.9.10",
27
- "@primate/core": "^0.4.1"
26
+ "@babel/core": "^7.28.6",
27
+ "@rcompat/fs": "^0.28.1",
28
+ "@rcompat/runtime": "^0.11.1",
29
+ "babel-preset-solid": "^1.9.12",
30
+ "@primate/core": "^0.6.0"
28
31
  },
29
32
  "peerDependencies": {
30
33
  "solid-js": "1",
31
- "primate": "^0.35.0"
34
+ "primate": "^0.37.0"
32
35
  },
33
- "type": "module",
34
36
  "imports": {
35
37
  "#*": {
36
- "apekit": "./src/private/*.ts",
38
+ "@primate/source": "./src/private/*.ts",
37
39
  "default": "./lib/private/*.js"
38
40
  },
39
41
  "#HeadImpl": {
40
- "apekit": "./src/private/Head/default.ts",
42
+ "@primate/source": "./src/private/Head/default.ts",
41
43
  "browser": "./lib/private/Head/browser.js",
42
44
  "default": "./lib/private/Head/default.js"
43
45
  }
44
46
  },
45
47
  "exports": {
46
48
  ".": {
49
+ "types": "./lib/index.d.ts",
50
+ "@primate/source": "./src/public/default.ts",
47
51
  "browser": "./lib/public/browser.js",
48
52
  "runtime": "./lib/public/runtime.js",
49
53
  "default": "./lib/public/default.js"
50
54
  },
51
- "./*": "./lib/public/*.js",
55
+ "./*": {
56
+ "@primate/source": "./src/public/*.ts",
57
+ "default": "./lib/public/*.js"
58
+ },
52
59
  "./i18n/Bridge": {
60
+ "@primate/source": "./src/public/i18n/Bridge/default.ts",
53
61
  "browser": "./lib/public/i18n/Bridge/browser.js",
54
62
  "default": "./lib/public/i18n/Bridge/default.js"
55
63
  }
56
64
  },
57
65
  "scripts": {
58
- "build": "npm run clean && tsc",
66
+ "build": "npm run clean && tsc && cp src/types/{app,index}.d.ts lib",
59
67
  "postbuild": "node scripts/compile-jsx.js",
60
68
  "clean": "rm -rf ./lib",
61
- "lint": "eslint ."
69
+ "lint": "eslint .",
70
+ "test": "npx proby"
62
71
  }
63
72
  }
@@ -1,13 +0,0 @@
1
- import Runtime from "#Runtime";
2
- export default class Default extends Runtime {
3
- root: {
4
- create: (length: number, i18n_active: boolean) => string;
5
- };
6
- compile: {
7
- client: (text: string) => {
8
- js: string;
9
- };
10
- server: (text: string) => string;
11
- };
12
- }
13
- //# sourceMappingURL=Default.d.ts.map
@@ -1,11 +0,0 @@
1
- import FrontendModule from "@primate/core/frontend/Module";
2
- import type Render from "@primate/core/frontend/Render";
3
- import type { Component } from "solid-js";
4
- export default class Runtime extends FrontendModule<Component> {
5
- name: string;
6
- defaultExtensions: string[];
7
- client: boolean;
8
- layouts: boolean;
9
- render: Render<Component>;
10
- }
11
- //# sourceMappingURL=Runtime.d.ts.map
@@ -1,10 +0,0 @@
1
- import type ValidateUpdater from "@primate/core/client/ValidateUpdater";
2
- import type ValidationError from "@primate/core/client/ValidationError";
3
- type Validated<T> = {
4
- error: () => null | ValidationError;
5
- loading: () => boolean;
6
- update: (updater: ValidateUpdater<T>) => Promise<void>;
7
- value: () => T;
8
- };
9
- export type { Validated as default };
10
- //# sourceMappingURL=Validated.d.ts.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Validated.js.map
@@ -1,25 +0,0 @@
1
- import type Validated from "#client/Validated";
2
- declare const _default: <T>(initial: T) => {
3
- delete: (url: string, options?: {
4
- headers?: import("@rcompat/type/Dict").default<string>;
5
- map?: ((v: T) => import("@rcompat/type/JSONValue").default) | undefined;
6
- path?: import("@rcompat/type/JSONPointer").default;
7
- } | undefined) => Validated<T>;
8
- patch: (url: string, options?: {
9
- headers?: import("@rcompat/type/Dict").default<string>;
10
- map?: ((v: T) => import("@rcompat/type/JSONValue").default) | undefined;
11
- path?: import("@rcompat/type/JSONPointer").default;
12
- } | undefined) => Validated<T>;
13
- post: (url: string, options?: {
14
- headers?: import("@rcompat/type/Dict").default<string>;
15
- map?: ((v: T) => import("@rcompat/type/JSONValue").default) | undefined;
16
- path?: import("@rcompat/type/JSONPointer").default;
17
- } | undefined) => Validated<T>;
18
- put: (url: string, options?: {
19
- headers?: import("@rcompat/type/Dict").default<string>;
20
- map?: ((v: T) => import("@rcompat/type/JSONValue").default) | undefined;
21
- path?: import("@rcompat/type/JSONPointer").default;
22
- } | undefined) => Validated<T>;
23
- };
24
- export default _default;
25
- //# sourceMappingURL=validate.d.ts.map
@@ -1,2 +0,0 @@
1
- export { default } from "#client/Validated";
2
- //# sourceMappingURL=Validated.d.ts.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Validated.js.map
@@ -1,2 +0,0 @@
1
- export { default } from "#client/validate";
2
- //# sourceMappingURL=validate.d.ts.map
@@ -1,2 +0,0 @@
1
- export { default } from "#client/validate";
2
- //# sourceMappingURL=validate.js.map