@absolutejs/absolute 0.19.0-beta.1107 → 0.19.0-beta.1109

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 CHANGED
@@ -59,7 +59,7 @@ const manifest = await build({
59
59
  htmlDirectory: 'example/html',
60
60
  htmxDirectory: 'example/htmx',
61
61
  reactDirectory: 'example/react',
62
- svelteDirectory: 'example/svelte',
62
+ svelteDirectory: 'example/svelte'
63
63
  });
64
64
 
65
65
  if (!manifest) throw new Error('Manifest generation failed');
@@ -116,6 +116,32 @@ Absolute JS piggybacks on the [Elysia plugin API](https://elysiajs.com/plugins).
116
116
  | **`absolute-auth`** | Full OAuth2 flow configured with 66 providers and allows full customizability with event handlers |
117
117
  | **`networkingPlugin`** | Starts your Elysia server with HOST/PORT defaults from environment variables |
118
118
 
119
+ ### Elysia composition contract
120
+
121
+ This contract is written for application authors and coding agents. It avoids
122
+ the runaway TypeScript instantiation cost that can occur when one inferred
123
+ Elysia application is repeatedly extended and re-aliased.
124
+
125
+ - Start every independently owned route surface from a named `new Elysia(...)`.
126
+ - Give each surface its shared context and plugins explicitly. Do not create
127
+ `adminApp` by extending `publicApp`, for example.
128
+ - Prefer one shallow `.use([auth, metrics])` over a long sequence of `.use()`
129
+ calls. `absolute/elysia-composition-boundaries` enforces this and safely
130
+ auto-fixes comment-free chains.
131
+ - Mount independent route surfaces at the platform root. Export each real
132
+ sub-application type for Eden consumers instead of exporting an accumulated
133
+ server alias.
134
+ - Keep `elysia` and `@sinclair/typebox` on one physical installed identity
135
+ across the workspace. Run `absolute doctor`; `absolute doctor --fix` aligns
136
+ root overrides and rebuilds Bun's dependency graph when peer contexts drift.
137
+
138
+ After a dependency change, measure a cold typecheck once. Warm incremental
139
+ checks can hide an unhealthy graph:
140
+
141
+ ```bash
142
+ /usr/bin/time -v bun run tsc --noEmit --incremental false
143
+ ```
144
+
119
145
  ---
120
146
 
121
147
  ## Configuration Philosophy
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-1tyy8v/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-Ndl7R9/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-1tyy8v/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-Ndl7R9/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -48,7 +48,7 @@ var warnMissingStreamingSlotCollector = (primitiveName) => {
48
48
  getWarningController()?.maybeWarn(primitiveName);
49
49
  };
50
50
 
51
- // .angular-partial-tmp-1tyy8v/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-Ndl7R9/src/core/streamingSlotRegistry.ts
52
52
  var STREAMING_SLOT_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotAsyncLocalStorage");
53
53
  var isObjectRecord2 = (value) => Boolean(value) && typeof value === "object";
54
54
  var isAsyncLocalStorage = (value) => isObjectRecord2(value) && ("getStore" in value) && typeof value.getStore === "function" && ("run" in value) && typeof value.run === "function";
@@ -1188,6 +1188,9 @@ var SENTINEL, RISKY_STRING_CONTENT, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c)
1188
1188
  const endOfInterp = (start) => {
1189
1189
  let j = start;
1190
1190
  let depth = 1;
1191
+ let ipChar = "";
1192
+ let ipWord = "";
1193
+ let ipSpace = false;
1191
1194
  while (j < n && depth > 0) {
1192
1195
  const c = src[j];
1193
1196
  if (c === "\\") {
@@ -1196,10 +1199,16 @@ var SENTINEL, RISKY_STRING_CONTENT, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c)
1196
1199
  }
1197
1200
  if (c === "`") {
1198
1201
  j = endOfTemplate(j);
1202
+ ipChar = ")";
1203
+ ipWord = "";
1204
+ ipSpace = false;
1199
1205
  continue;
1200
1206
  }
1201
1207
  if (c === '"' || c === "'") {
1202
1208
  j = endOfString(j);
1209
+ ipChar = '"';
1210
+ ipWord = "";
1211
+ ipSpace = false;
1203
1212
  continue;
1204
1213
  }
1205
1214
  if (c === "/" && src[j + 1] === "/") {
@@ -1213,11 +1222,33 @@ var SENTINEL, RISKY_STRING_CONTENT, isIdentChar = (c) => /[A-Za-z0-9_$]/.test(c)
1213
1222
  j = e < 0 ? n : e + 2;
1214
1223
  continue;
1215
1224
  }
1225
+ if (c === "/" && (ipChar === "" || REGEX_OK_AFTER_CHAR.has(ipChar) || REGEX_OK_AFTER_WORD.has(ipWord))) {
1226
+ const e = endOfRegex(j);
1227
+ if (e > 0) {
1228
+ j = e;
1229
+ ipChar = ")";
1230
+ ipWord = "";
1231
+ ipSpace = false;
1232
+ continue;
1233
+ }
1234
+ }
1216
1235
  if (c === "{")
1217
1236
  depth++;
1218
1237
  else if (c === "}")
1219
1238
  depth--;
1220
1239
  j++;
1240
+ if (c === " " || c === "\t" || c === "\r" || c === `
1241
+ `) {
1242
+ ipSpace = true;
1243
+ continue;
1244
+ }
1245
+ if (isIdentChar(c)) {
1246
+ ipWord = isIdentChar(ipChar) && !ipSpace ? ipWord + c : c;
1247
+ } else {
1248
+ ipWord = "";
1249
+ }
1250
+ ipChar = c;
1251
+ ipSpace = false;
1221
1252
  }
1222
1253
  return j;
1223
1254
  };
@@ -16184,5 +16215,5 @@ export {
16184
16215
  ABSOLUTE_HTTP_TRANSFER_CACHE_SKIP_HEADER
16185
16216
  };
16186
16217
 
16187
- //# debugId=78F77D6279AA5F1B64756E2164756E21
16218
+ //# debugId=3DF09E6C6E9799AD64756E2164756E21
16188
16219
  //# sourceMappingURL=index.js.map