reactivated 0.50.1 → 0.51.0-a3383

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/dist/rpc.d.ts CHANGED
@@ -17,6 +17,6 @@ export type RequesterResult = {
17
17
  type JSONValue = string | number | boolean | null | JSONValue[] | {
18
18
  [key: string]: JSONValue;
19
19
  };
20
- export type Requester = (url: string, payload: JSONValue | null) => Promise<RequesterResult>;
20
+ export type Requester = (url: string, payload: JSONValue | null, method: "GET" | "POST") => Promise<RequesterResult>;
21
21
  export declare const defaultRequester: Requester;
22
22
  export {};
package/dist/rpc.js CHANGED
@@ -15,14 +15,20 @@ export function getCookieFromCookieString(name, cookieString) {
15
15
  }
16
16
  return cookieValue;
17
17
  }
18
- export const defaultRequester = async (url, payload) => {
18
+ export const defaultRequester = async (url, payload, method) => {
19
19
  try {
20
+ // The method is authoritative (it comes from the server's RPC
21
+ // declaration), not inferred from whether a payload is present. A POST
22
+ // serializes the payload exactly as given — including a literal `null` when
23
+ // the RPC's input is omitted — so the server receives the typed value it
24
+ // expects (e.g. `null` for an optional `Form | None` input).
25
+ const isGet = method === "GET";
20
26
  const response = await fetch(url, {
21
- method: payload == null ? "GET" : "POST",
22
- body: payload == null ? null : JSON.stringify(payload),
27
+ method,
28
+ body: isGet ? null : JSON.stringify(payload),
23
29
  headers: {
24
30
  Accept: "application/json",
25
- ...(payload != null ? { "Content-Type": "application/json" } : {}),
31
+ ...(isGet ? {} : { "Content-Type": "application/json" }),
26
32
  "X-CSRFToken": getCookieFromCookieString("csrftoken", document.cookie) ?? "",
27
33
  },
28
34
  });
package/dist/rpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.tsx"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,mBAAmB;AACnB,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,YAAoB;IACxE,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,YAAY,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEjC,uDAAuD;YACvD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;gBACrD,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAsBD,MAAM,CAAC,MAAM,gBAAgB,GAAc,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAC9D,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YACxC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACtD,OAAO,EAAE;gBACL,MAAM,EAAE,kBAAkB;gBAC1B,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAC,cAAc,EAAE,kBAAkB,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,aAAa,EACT,yBAAyB,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;aACpE;SACJ,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO;gBACH,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;aAC9B,CAAC;QACN,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO;gBACH,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;aAChC,CAAC;QACN,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO;gBACH,IAAI,EAAE,cAAc;aACvB,CAAC;QACN,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO;gBACH,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;aAC1B,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,KAAK;SACnB,CAAC;IACN,CAAC;IAED,OAAO;QACH,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;KAClB,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.tsx"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,mBAAmB;AACnB,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,YAAoB;IACxE,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,YAAY,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEjC,uDAAuD;YACvD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;gBACrD,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAuBD,MAAM,CAAC,MAAM,gBAAgB,GAAc,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IACtE,IAAI,CAAC;QACD,8DAA8D;QAC9D,uEAAuE;QACvE,4EAA4E;QAC5E,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,KAAK,GAAG,MAAM,KAAK,KAAK,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC9B,MAAM;YACN,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5C,OAAO,EAAE;gBACL,MAAM,EAAE,kBAAkB;gBAC1B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,cAAc,EAAE,kBAAkB,EAAC,CAAC;gBACtD,aAAa,EACT,yBAAyB,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;aACpE;SACJ,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO;gBACH,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;aAC9B,CAAC;QACN,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO;gBACH,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;aAChC,CAAC;QACN,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO;gBACH,IAAI,EAAE,cAAc;aACvB,CAAC;QACN,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO;gBACH,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;aAC1B,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,KAAK;SACnB,CAAC;IACN,CAAC;IAED,OAAO;QACH,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;KAClB,CAAC;AACN,CAAC,CAAC"}
package/dist/vite.mjs CHANGED
@@ -53,6 +53,17 @@ const rendererConfig = {
53
53
  base,
54
54
  };
55
55
  export const vite = await createServer(rendererConfig);
56
+ // Pre-warm SSR modules
57
+ console.log("[warmup] Pre-loading SSR modules...");
58
+ const ssrWarmupStart = Date.now();
59
+ try {
60
+ await vite.ssrLoadModule("reactivated/dist/render.mjs");
61
+ await vite.ssrLoadModule("@reactivated/template");
62
+ console.log(`[warmup] SSR modules loaded in ${Date.now() - ssrWarmupStart}ms`);
63
+ }
64
+ catch (e) {
65
+ console.log(`[warmup] SSR warmup error (non-fatal): ${e.message}`);
66
+ }
56
67
  app.use(vite.middlewares);
57
68
  app.use(express.json({ limit: "200mb" }));
58
69
  app.use("/_reactivated/", async (req, res) => {
package/dist/vite.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.mjs","sourceRoot":"","sources":["../src/vite.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.mjs","sourceRoot":"","sources":["../src/vite.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reactivated",
3
- "version": "0.50.1",
3
+ "version": "0.51.0-a3383",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "exports": {
@@ -23,6 +23,7 @@
23
23
  "author": "",
24
24
  "bin": {
25
25
  "setup_environment.sh": "./scripts/setup_environment.sh",
26
+ "build_subtree.sh": "./scripts/build_subtree.sh",
26
27
  "generate_client_assets": "./dist/generator.mjs",
27
28
  "generate_client_constants": "./dist/generator/constants.mjs",
28
29
  "build.client": "./dist/build.client.mjs",
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env bash
2
+ # Builds the vendored reactivated subtree in a project that consumes it at
3
+ # upstream/reactivated/ (see docs/subtree.md). Run from the project root,
4
+ # after `npm install` and `uv sync`.
5
+ set -euo pipefail
6
+
7
+ ROOT="$PWD"
8
+ SUBTREE="$ROOT/upstream/reactivated"
9
+
10
+ if [ ! -d "$SUBTREE" ]; then
11
+ echo "No upstream/reactivated/ found. Run from the root of a project that vendors reactivated." >&2
12
+ exit 1
13
+ fi
14
+
15
+ # Generate packages/reactivated/src/generated.tsx from the Python types.
16
+ (cd "$SUBTREE" && PATH="$ROOT/node_modules/.bin:$PATH" python scripts/generate_types.py)
17
+
18
+ # Compile the TypeScript package to dist/.
19
+ "$ROOT/node_modules/.bin/tsc" --project "$SUBTREE/packages/reactivated/tsconfig.json"
20
+
21
+ # Re-link the file: dependency: its bin entries point into dist/, which only
22
+ # now exists.
23
+ npm install ./upstream/reactivated/packages/reactivated
24
+
25
+ # The framework is now built. Regenerate your app's schemas against it:
26
+ # python manage.py generate_client_assets
27
+ # That call belongs to the consumer (it runs with your app's settings), so it
28
+ # is intentionally not made here.
package/src/rpc.tsx CHANGED
@@ -36,16 +36,23 @@ type JSONValue =
36
36
  export type Requester = (
37
37
  url: string,
38
38
  payload: JSONValue | null,
39
+ method: "GET" | "POST",
39
40
  ) => Promise<RequesterResult>;
40
41
 
41
- export const defaultRequester: Requester = async (url, payload) => {
42
+ export const defaultRequester: Requester = async (url, payload, method) => {
42
43
  try {
44
+ // The method is authoritative (it comes from the server's RPC
45
+ // declaration), not inferred from whether a payload is present. A POST
46
+ // serializes the payload exactly as given — including a literal `null` when
47
+ // the RPC's input is omitted — so the server receives the typed value it
48
+ // expects (e.g. `null` for an optional `Form | None` input).
49
+ const isGet = method === "GET";
43
50
  const response = await fetch(url, {
44
- method: payload == null ? "GET" : "POST",
45
- body: payload == null ? null : JSON.stringify(payload),
51
+ method,
52
+ body: isGet ? null : JSON.stringify(payload),
46
53
  headers: {
47
54
  Accept: "application/json",
48
- ...(payload != null ? {"Content-Type": "application/json"} : {}),
55
+ ...(isGet ? {} : {"Content-Type": "application/json"}),
49
56
  "X-CSRFToken":
50
57
  getCookieFromCookieString("csrftoken", document.cookie) ?? "",
51
58
  },
package/src/vite.mts CHANGED
@@ -63,6 +63,17 @@ const rendererConfig: InlineConfig = {
63
63
 
64
64
  export const vite = await createServer(rendererConfig);
65
65
 
66
+ // Pre-warm SSR modules
67
+ console.log("[warmup] Pre-loading SSR modules...");
68
+ const ssrWarmupStart = Date.now();
69
+ try {
70
+ await vite.ssrLoadModule("reactivated/dist/render.mjs");
71
+ await vite.ssrLoadModule("@reactivated/template");
72
+ console.log(`[warmup] SSR modules loaded in ${Date.now() - ssrWarmupStart}ms`);
73
+ } catch (e: any) {
74
+ console.log(`[warmup] SSR warmup error (non-fatal): ${e.message}`);
75
+ }
76
+
66
77
  app.use(vite.middlewares);
67
78
  app.use(express.json({limit: "200mb"}));
68
79