@pyric/cli 0.1.0-alpha.30 → 0.1.0-alpha.30.1

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 (87) hide show
  1. package/dist/assurance/.generated/conformance-verdicts.d.ts +4 -0
  2. package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
  3. package/dist/assurance/.generated/conformance-verdicts.js +4 -0
  4. package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
  5. package/dist/cli/serve.d.ts +2 -0
  6. package/dist/cli/serve.d.ts.map +1 -1
  7. package/dist/cli/serve.js +13 -2
  8. package/dist/cli/serve.js.map +1 -1
  9. package/dist/conformance/.generated/can-i-use-browser.js +2 -2
  10. package/dist/conformance/.generated/can-i-use-browser.js.map +1 -1
  11. package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
  12. package/dist/conformance/.generated/can-i-use.js +1 -1
  13. package/dist/conformance/.generated/can-i-use.js.map +1 -1
  14. package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -1
  15. package/dist/conformance/.generated/conformance-docs.js +1 -1
  16. package/dist/conformance/.generated/conformance-docs.js.map +1 -1
  17. package/dist/register/app-bridge-admin-app-check.d.ts +3 -0
  18. package/dist/register/app-bridge-admin-app-check.d.ts.map +1 -0
  19. package/dist/register/app-bridge-admin-app-check.js +43 -0
  20. package/dist/register/app-bridge-admin-app-check.js.map +1 -0
  21. package/dist/register/app-bridge-app-check.d.ts +4 -0
  22. package/dist/register/app-bridge-app-check.d.ts.map +1 -1
  23. package/dist/register/app-bridge-app-check.js +4 -0
  24. package/dist/register/app-bridge-app-check.js.map +1 -1
  25. package/dist/register/app-bridge-shadow.d.ts +4 -2
  26. package/dist/register/app-bridge-shadow.d.ts.map +1 -1
  27. package/dist/register/app-bridge-shadow.js +29 -5
  28. package/dist/register/app-bridge-shadow.js.map +1 -1
  29. package/dist/register/index.d.ts.map +1 -1
  30. package/dist/register/index.js +21 -0
  31. package/dist/register/index.js.map +1 -1
  32. package/dist/serve/bundler.d.ts +40 -0
  33. package/dist/serve/bundler.d.ts.map +1 -1
  34. package/dist/serve/bundler.js +133 -2
  35. package/dist/serve/bundler.js.map +1 -1
  36. package/dist/serve/entries/app-ai-passthrough.d.ts +4 -4
  37. package/dist/serve/entries/app-ai-passthrough.d.ts.map +1 -1
  38. package/dist/serve/entries/app-ai-passthrough.js +8 -52
  39. package/dist/serve/entries/app-ai-passthrough.js.map +1 -1
  40. package/dist/serve/firebase-module-swap.d.ts +22 -0
  41. package/dist/serve/firebase-module-swap.d.ts.map +1 -1
  42. package/dist/serve/firebase-module-swap.js +51 -3
  43. package/dist/serve/firebase-module-swap.js.map +1 -1
  44. package/dist/serve/hosted/method-protocol.d.ts +4 -4
  45. package/dist/serve/html-injection.d.ts +2 -0
  46. package/dist/serve/html-injection.d.ts.map +1 -1
  47. package/dist/serve/html-injection.js +4 -2
  48. package/dist/serve/html-injection.js.map +1 -1
  49. package/dist/serve/namespace.d.ts.map +1 -1
  50. package/dist/serve/namespace.js +5 -1
  51. package/dist/serve/namespace.js.map +1 -1
  52. package/dist/serve/site-ui/docs/ai-compat/index.html +9 -9
  53. package/dist/serve/site-ui/docs/ai-compat.md +9 -9
  54. package/dist/serve/site-ui/docs/app-check-compat/index.html +42 -18
  55. package/dist/serve/site-ui/docs/app-check-compat.md +42 -18
  56. package/dist/serve/site-ui/docs/auth-compat/index.html +4 -4
  57. package/dist/serve/site-ui/docs/auth-compat.md +4 -4
  58. package/dist/serve/site-ui/docs/build/ai-logic/index.html +2 -0
  59. package/dist/serve/site-ui/docs/build/ai-logic.md +4 -0
  60. package/dist/serve/site-ui/docs/database-compat/index.html +4 -4
  61. package/dist/serve/site-ui/docs/database-compat.md +4 -4
  62. package/dist/serve/site-ui/docs/firestore-compat/index.html +4 -4
  63. package/dist/serve/site-ui/docs/firestore-compat.md +4 -4
  64. package/dist/serve/site-ui/docs/messaging-compat/index.html +4 -4
  65. package/dist/serve/site-ui/docs/messaging-compat.md +4 -4
  66. package/dist/serve/site-ui/docs/pyric-admin-app-reference-api/index.html +4 -0
  67. package/dist/serve/site-ui/docs/pyric-admin-app-reference-api.md +5 -0
  68. package/dist/serve/site-ui/docs/pyric-cli-register-app-bridge-app-check-reference-api/index.html +2 -0
  69. package/dist/serve/site-ui/docs/pyric-cli-register-app-bridge-app-check-reference-api.md +3 -0
  70. package/dist/serve/site-ui/docs/storage-compat/index.html +5 -5
  71. package/dist/serve/site-ui/docs/storage-compat.md +5 -5
  72. package/dist/serve/site-ui/examples/chess/index.html +1 -1
  73. package/package.json +4 -4
  74. package/src/assurance/.generated/conformance-verdicts.ts +4 -0
  75. package/src/cli/serve.ts +14 -2
  76. package/src/conformance/.generated/can-i-use-browser.ts +2 -2
  77. package/src/conformance/.generated/can-i-use.ts +1 -1
  78. package/src/conformance/.generated/conformance-docs.ts +1 -1
  79. package/src/register/app-bridge-admin-app-check.ts +46 -0
  80. package/src/register/app-bridge-app-check.ts +4 -0
  81. package/src/register/app-bridge-shadow.ts +35 -5
  82. package/src/register/index.ts +23 -0
  83. package/src/serve/bundler.ts +163 -2
  84. package/src/serve/entries/app-ai-passthrough.ts +8 -58
  85. package/src/serve/firebase-module-swap.ts +52 -3
  86. package/src/serve/html-injection.ts +4 -2
  87. package/src/serve/namespace.ts +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"conformance-docs.js","sourceRoot":"","sources":["../../../src/conformance/.generated/conformance-docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conformance-docs.js","sourceRoot":"","sources":["../../../src/conformance/.generated/conformance-docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** firebase-admin's `verifyToken(token)` for an app scoped to `projectId`, with no options. */
2
+ export declare function verifyFirebaseAppCheckToken(token: string, projectId: string): Promise<unknown>;
3
+ //# sourceMappingURL=app-bridge-admin-app-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-bridge-admin-app-check.d.ts","sourceRoot":"","sources":["../../src/register/app-bridge-admin-app-check.ts"],"names":[],"mappings":"AA0CA,+FAA+F;AAC/F,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE9F"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Production AI mode's App Check verifier for a registered Node process
3
+ * (#1552): firebase-admin's own `verifyToken`, for the tokens the page gets
4
+ * from Firebase.
5
+ *
6
+ * The register installs it behind `pyric.admin.appCheck.firebaseVerifier` in
7
+ * production AI mode only, and loads this module on the first token whose
8
+ * `kid` is not the sandbox's, so a server that never sees one never loads
9
+ * firebase-admin. `firebase-admin/app` and `firebase-admin/app-check` reach
10
+ * the real package from here (`isBypassedBridgeImport`).
11
+ *
12
+ * Each project gets one firebase-admin app whose credential refuses to mint an
13
+ * access token, so the app cannot fall back to Application Default
14
+ * Credentials, the metadata server, or Google's OAuth endpoints. Verifying a
15
+ * token needs none of them: firebase-admin fetches Firebase's public keys from
16
+ * `https://firebaseappcheck.googleapis.com/v1/jwks` without credentials and
17
+ * caches them for six hours. `consume` is never passed here; the mirror
18
+ * records it in the process.
19
+ *
20
+ * The export is typed loosely on purpose: the published declarations of
21
+ * @pyric/cli carry no Firebase SDK edge. pyric-admin types the result.
22
+ */
23
+ import { initializeApp } from 'firebase-admin/app';
24
+ import { getAppCheck } from 'firebase-admin/app-check';
25
+ const NO_CREDENTIALS = "Pyric's App Check verifier holds no credentials.";
26
+ /** A credential that never mints an access token. */
27
+ const noCredentials = {
28
+ getAccessToken: () => Promise.reject(new Error(NO_CREDENTIALS)),
29
+ };
30
+ const appsByProject = new Map();
31
+ function verifierApp(projectId) {
32
+ const existing = appsByProject.get(projectId);
33
+ if (existing !== undefined)
34
+ return existing;
35
+ const app = initializeApp({ projectId, credential: noCredentials }, `[pyric] app-check verifier ${projectId}`);
36
+ appsByProject.set(projectId, app);
37
+ return app;
38
+ }
39
+ /** firebase-admin's `verifyToken(token)` for an app scoped to `projectId`, with no options. */
40
+ export function verifyFirebaseAppCheckToken(token, projectId) {
41
+ return getAppCheck(verifierApp(projectId)).verifyToken(token);
42
+ }
43
+ //# sourceMappingURL=app-bridge-admin-app-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-bridge-admin-app-check.js","sourceRoot":"","sources":["../../src/register/app-bridge-admin-app-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,aAAa,EAA6B,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,cAAc,GAAG,kDAAkD,CAAC;AAE1E,qDAAqD;AACrD,MAAM,aAAa,GAAe;IAChC,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAe,CAAC;AAE7C,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,8BAA8B,SAAS,EAAE,CAAC,CAAC;IAC/G,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,2BAA2B,CAAC,KAAa,EAAE,SAAiB;IAC1E,OAAO,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * `shadowAppOf` throws when the shadow app could not be created, so that
3
+ * cause surfaces here before the SDK would fail on a missing container.
4
+ */
1
5
  export declare function initializeAppCheck(app: {
2
6
  name: string;
3
7
  } | undefined, options: unknown): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"app-bridge-app-check.d.ts","sourceRoot":"","sources":["../../src/register/app-bridge-app-check.ts"],"names":[],"mappings":"AAsBA,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAG/F;AAED,eAAO,MAAM,cAAc,EAAE,OAAqC,CAAC;AACnE,eAAO,MAAM,2BAA2B,EAAE,OAAkD,CAAC;AAC7F,eAAO,MAAM,mBAAmB,EAAE,OAA0C,CAAC;AAC7E,eAAO,MAAM,kBAAkB,EAAE,OAAyC,CAAC;AAC3E,eAAO,MAAM,QAAQ,EAAE,OAA+B,CAAC;AACvD,eAAO,MAAM,cAAc,EAAE,OAAqC,CAAC;AACnE,eAAO,MAAM,0BAA0B,EAAE,OAAiD,CAAC"}
1
+ {"version":3,"file":"app-bridge-app-check.d.ts","sourceRoot":"","sources":["../../src/register/app-bridge-app-check.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAG/F;AAED,eAAO,MAAM,cAAc,EAAE,OAAqC,CAAC;AACnE,eAAO,MAAM,2BAA2B,EAAE,OAAkD,CAAC;AAC7F,eAAO,MAAM,mBAAmB,EAAE,OAA0C,CAAC;AAC7E,eAAO,MAAM,kBAAkB,EAAE,OAAyC,CAAC;AAC3E,eAAO,MAAM,QAAQ,EAAE,OAA+B,CAAC;AACvD,eAAO,MAAM,cAAc,EAAE,OAAqC,CAAC;AACnE,eAAO,MAAM,0BAA0B,EAAE,OAAiD,CAAC"}
@@ -17,6 +17,10 @@
17
17
  */
18
18
  import * as realAppCheck from 'firebase/app-check';
19
19
  import { shadowAppOf } from './app-bridge-shadow.js';
20
+ /**
21
+ * `shadowAppOf` throws when the shadow app could not be created, so that
22
+ * cause surfaces here before the SDK would fail on a missing container.
23
+ */
20
24
  export function initializeAppCheck(app, options) {
21
25
  const shadow = app === undefined ? undefined : shadowAppOf(app);
22
26
  return realAppCheck.initializeAppCheck(shadow, options);
@@ -1 +1 @@
1
- {"version":3,"file":"app-bridge-app-check.js","sourceRoot":"","sources":["../../src/register/app-bridge-app-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,MAAM,UAAU,kBAAkB,CAAC,GAAiC,EAAE,OAAgB;IACpF,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChE,OAAO,YAAY,CAAC,kBAAkB,CAAC,MAAuC,EAAE,OAAwC,CAAC,CAAC;AAC5H,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAY,YAAY,CAAC,cAAc,CAAC;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAY,YAAY,CAAC,2BAA2B,CAAC;AAC7F,MAAM,CAAC,MAAM,mBAAmB,GAAY,YAAY,CAAC,mBAAmB,CAAC;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAY,YAAY,CAAC,kBAAkB,CAAC;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAY,YAAY,CAAC,QAAQ,CAAC;AACvD,MAAM,CAAC,MAAM,cAAc,GAAY,YAAY,CAAC,cAAc,CAAC;AACnE,MAAM,CAAC,MAAM,0BAA0B,GAAY,YAAY,CAAC,0BAA0B,CAAC"}
1
+ {"version":3,"file":"app-bridge-app-check.js","sourceRoot":"","sources":["../../src/register/app-bridge-app-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAiC,EAAE,OAAgB;IACpF,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChE,OAAO,YAAY,CAAC,kBAAkB,CAAC,MAAuC,EAAE,OAAwC,CAAC,CAAC;AAC5H,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAY,YAAY,CAAC,cAAc,CAAC;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAY,YAAY,CAAC,2BAA2B,CAAC;AAC7F,MAAM,CAAC,MAAM,mBAAmB,GAAY,YAAY,CAAC,mBAAmB,CAAC;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAY,YAAY,CAAC,kBAAkB,CAAC;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAY,YAAY,CAAC,QAAQ,CAAC;AACvD,MAAM,CAAC,MAAM,cAAc,GAAY,YAAY,CAAC,cAAc,CAAC;AACnE,MAAM,CAAC,MAAM,0BAA0B,GAAY,YAAY,CAAC,0BAA0B,CAAC"}
@@ -6,8 +6,10 @@ export interface PyricAppRegistry {
6
6
  deleteApp(app: FirebaseApp): Promise<void>;
7
7
  }
8
8
  /**
9
- * The shadow Firebase app for a Pyric app, by name. A Firebase app passed in
10
- * directly, or a Pyric app with no shadow yet, is returned unchanged.
9
+ * The shadow Firebase app for a Pyric app, by name. When creating it failed,
10
+ * throws an error that names the app and keeps the failure as `cause`. A
11
+ * Firebase app passed in directly, or a Pyric app with no attempt yet, is
12
+ * returned unchanged.
11
13
  */
12
14
  export declare function shadowAppOf(app: {
13
15
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"app-bridge-shadow.d.ts","sourceRoot":"","sources":["../../src/register/app-bridge-shadow.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,WAAW,CAAC;IAClG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACnC,OAAO,IAAI,WAAW,EAAE,CAAC;IACzB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAgCD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAMzD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAyBhF"}
1
+ {"version":3,"file":"app-bridge-shadow.d.ts","sourceRoot":"","sources":["../../src/register/app-bridge-shadow.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,WAAW,CAAC;IAClG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACnC,OAAO,IAAI,WAAW,EAAE,CAAC;IACzB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAwDD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAQzD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CA0BhF"}
@@ -2,9 +2,24 @@
2
2
  * Production AI pass-through for canonical `firebase/app` in a registered Node
3
3
  * process: each Pyric app gets a shadow real Firebase app whose container the
4
4
  * real `firebase/ai` reads. Shared by the in-process adapter
5
- * (`./app-bridge.ts`) and the Node host client (`./client/app-bridge.ts`).
5
+ * (`./app-bridge.ts`), the Node host client (`./client/app-bridge.ts`), and
6
+ * the served `firebase/app` entry (`serve/entries/app-ai-passthrough.ts`).
6
7
  */
7
8
  import * as realApp from 'firebase/app';
9
+ /**
10
+ * Why the shadow app for a name could not be created, kept until a later
11
+ * attempt succeeds or the app is deleted. It sits behind `Symbol.for` so every
12
+ * bundle or module record of this file on a page or in a process shares it.
13
+ */
14
+ const SHADOW_FAILURES = Symbol.for('pyric.ai.shadowAppFailures');
15
+ const shadowFailures = (globalThis[SHADOW_FAILURES] ??= new Map());
16
+ function causeText(cause) {
17
+ const text = cause instanceof Error ? cause.message : String(cause);
18
+ return text.replace(/\.$/, '');
19
+ }
20
+ function shadowFailedError(name, cause) {
21
+ return new Error(`Pyric could not create the Firebase app that firebase/app-check and firebase/ai attach to in production AI mode, for app "${name}": ${causeText(cause)}.`, { cause });
22
+ }
8
23
  function decorateApp(app, options, rawSettings) {
9
24
  try {
10
25
  let shadow;
@@ -23,25 +38,33 @@ function decorateApp(app, options, rawSettings) {
23
38
  shadow = realApp.initializeApp(initOptions, objectSettings);
24
39
  }
25
40
  }
41
+ shadowFailures.delete(app.name);
26
42
  const hasShadowContainer = shadow.container !== undefined && shadow.container !== null;
27
43
  if (hasShadowContainer) {
28
44
  Object.defineProperty(app, 'container', { value: shadow.container, configurable: true });
29
45
  }
30
46
  }
31
- catch {
32
- // Observational/best-effort: do not break Pyric initialization if shadow initialization fails.
47
+ catch (error) {
48
+ // Pyric's initializeApp still succeeds; shadowAppOf reports the cause
49
+ // when firebase/app-check or firebase/ai needs the shadow.
50
+ shadowFailures.set(app.name, error);
33
51
  }
34
52
  return app;
35
53
  }
36
54
  /**
37
- * The shadow Firebase app for a Pyric app, by name. A Firebase app passed in
38
- * directly, or a Pyric app with no shadow yet, is returned unchanged.
55
+ * The shadow Firebase app for a Pyric app, by name. When creating it failed,
56
+ * throws an error that names the app and keeps the failure as `cause`. A
57
+ * Firebase app passed in directly, or a Pyric app with no attempt yet, is
58
+ * returned unchanged.
39
59
  */
40
60
  export function shadowAppOf(app) {
41
61
  try {
42
62
  return realApp.getApp(app.name);
43
63
  }
44
64
  catch {
65
+ const hasFailure = shadowFailures.has(app.name);
66
+ if (hasFailure)
67
+ throw shadowFailedError(app.name, shadowFailures.get(app.name));
45
68
  return app;
46
69
  }
47
70
  }
@@ -58,6 +81,7 @@ export function shadowedAppRegistry(pyricApp) {
58
81
  return pyricApp.getApps().map((app) => decorateApp(app));
59
82
  },
60
83
  async deleteApp(app) {
84
+ shadowFailures.delete(app.name);
61
85
  try {
62
86
  const shadow = realApp.getApp(app.name);
63
87
  const hasShadow = shadow !== undefined && shadow !== null;
@@ -1 +1 @@
1
- {"version":3,"file":"app-bridge-shadow.js","sourceRoot":"","sources":["../../src/register/app-bridge-shadow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAUxC,SAAS,WAAW,CAClB,GAAgB,EAChB,OAAyB,EACzB,WAA0C;IAE1C,IAAI,CAAC;QACH,IAAI,MAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAA4B,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,WAAW,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAA4B,CAAC;YACxE,MAAM,YAAY,GAAG,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC;YAC7C,MAAM,gBAAgB,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC;YAC1D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,CAA4B,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,GAAG,YAA2C,CAAC;gBACnE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,cAAc,CAA4B,CAAC;YACzF,CAAC;QACH,CAAC;QACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC;QACvF,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+FAA+F;IACjG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAqB;IAC/C,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA0B;IAC5D,OAAO;QACL,aAAa,CAAC,OAAO,EAAE,WAAW;YAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACzD,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,CAAC,IAAI;YACT,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO;YACL,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC;gBAC1D,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+DAA+D;YACjE,CAAC;YACD,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"app-bridge-shadow.js","sourceRoot":"","sources":["../../src/register/app-bridge-shadow.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/register/index.ts"],"names":[],"mappings":"AA2MA;;yEAEyE;AACzE,eAAO,IAAI,MAAM,SAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/register/index.ts"],"names":[],"mappings":"AAkOA;;yEAEyE;AACzE,eAAO,IAAI,MAAM,SAAQ,CAAC"}
@@ -38,10 +38,13 @@ import { resolveEsmOnlySubpath } from './esm-exports.js';
38
38
  import { NET_GUARD_GLOBAL, installNetGuard, parseGuardMode } from './net-guard.js';
39
39
  import { emitBeacon } from './beacon.js';
40
40
  import { remoteSandbox } from '../remote/index.js';
41
+ import { resolveAiMode } from '../serve/firebase-module-swap.js';
41
42
  /** The shared seam with pyric-admin's ambient init: a synchronous factory
42
43
  * returning the lazy branded handle. `Symbol.for` so both packages agree
43
44
  * without importing each other's types. */
44
45
  const SANDBOX_FACTORY = Symbol.for('pyric.remote.sandboxFactory');
46
+ /** The seam with pyric-admin's App Check mirror: firebase-admin's verifier for tokens from Firebase (#1552). */
47
+ const APP_CHECK_FIREBASE_VERIFIER = Symbol.for('pyric.admin.appCheck.firebaseVerifier');
45
48
  /** `module.registerHooks` landed in Node 22.15 / 23.5 — feature-detect
46
49
  * (typed locally: the repo's ambient node types predate it). */
47
50
  const moduleApi = Module;
@@ -147,6 +150,7 @@ function activate() {
147
150
  // this project's host. A launcher that sets the url also pins the identity
148
151
  // of the host it started, so that url holds from any working directory.
149
152
  globalThis[SANDBOX_FACTORY] = (opts) => remoteSandbox({ configuredUrl: opts?.url, instanceId: process.env.PYRIC_SANDBOX_INSTANCE });
153
+ installAppCheckVerifier();
150
154
  process.stderr.write(`@pyric/cli/register: active. firebase-admin/firebase imports now resolve to the ` +
151
155
  `pyric sandbox (PYRIC_SANDBOX=${process.env.PYRIC_SANDBOX}).\n`);
152
156
  // LAST: the handshake beacon, after the guard, the hooks and the factory
@@ -160,6 +164,23 @@ function activate() {
160
164
  sandbox: process.env.PYRIC_SANDBOX ?? '',
161
165
  });
162
166
  }
167
+ /**
168
+ * Production AI mode only: the page's App Check tokens come from Firebase, so
169
+ * pyric-admin's mirror hands them to firebase-admin's own verifier (#1552).
170
+ * The bridge, and firebase-admin with it, loads on the first such token, so a
171
+ * server that never verifies one never loads firebase-admin. In sandbox AI
172
+ * mode nothing is installed, and the mirror refuses such a token with a
173
+ * message that says why.
174
+ */
175
+ function installAppCheckVerifier() {
176
+ const isProductionAiMode = resolveAiMode(undefined, process.env) === 'production';
177
+ if (!isProductionAiMode)
178
+ return;
179
+ globalThis[APP_CHECK_FIREBASE_VERIFIER] = async (token, projectId) => {
180
+ const bridge = await import('./app-bridge-admin-app-check.js');
181
+ return bridge.verifyFirebaseAppCheckToken(token, projectId);
182
+ };
183
+ }
163
184
  /**
164
185
  * The net-guard mode actually in force, for the beacon to report.
165
186
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/register/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/register/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE;;4CAE4C;AAC5C,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAElE,gHAAgH;AAChH,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAiBxF;iEACiE;AACjE,MAAM,SAAS,GAAG,MAIjB,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,wBAAwB,CAAC,MAAc;IAC9C,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACjE,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/D,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACH,WAAW,GAAG,SAAS,CAAC,eAAe,CACrC,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAA0B,CAAC;QACnF,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IACf,uDAAuD;IACvD,EAAE;IACF,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,iEAAiE;IACjE,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,+BAA+B;IAC/B,EAAE;IACF,0EAA0E;IAC1E,0EAA0E;IAC1E,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,sEAAsE;IACtE,sEAAsE;IACtE,IAAI,KAAK,KAAK,IAAI;QAAG,UAAiD,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;IAEjG,yEAAyE;IACzE,4EAA4E;IAC5E,kEAAkE;IAClE,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,IAAI,OAAO,SAAS,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QAClD,cAAc,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,aAAa,CAAC;YACtB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW;gBACrC,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAClE,IAAI,MAAM,KAAK,IAAI;oBAAE,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC5D,IAAI,CAAC;oBACH,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,mEAAmE;oBACnE,kEAAkE;oBAClE,kEAAkE;oBAClE,oCAAoC;oBACpC,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,CAAC;oBAC7C,IAAI,IAAI,KAAK,+BAA+B,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;wBAC5E,MAAM,GAAG,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;wBAC7C,IAAI,GAAG;4BAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;oBAC9C,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sFAAsF;YACpF,yFAAyF;YACzF,qGAAqG,CACxG,CAAC;QACF,cAAc,GAAG,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC;QAC1D,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACvE,UAAsC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAuB,EAAE,EAAE,CACrF,aAAa,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAE9F,uBAAuB,EAAE,CAAC;IAE1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kFAAkF;QAChF,gCAAgC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAClE,CAAC;IAEF,yEAAyE;IACzE,4EAA4E;IAC5E,mEAAmE;IACnE,0EAA0E;IAC1E,UAAU,CAAC;QACT,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAChC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;KACzC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB;IAC9B,MAAM,kBAAkB,GAAG,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC;IAClF,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAC/B,UAAsC,CAAC,2BAA2B,CAAC,GAAG,KAAK,EAAE,KAAa,EAAE,SAAiB,EAAE,EAAE;QAChH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,2BAA2B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,KAAiC;IAC3D,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACtC,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjD,CAAC;AAED;;yEAEyE;AACzE,MAAM,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC;AAE1B,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,EAAE,CAAC;QACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wEAAwE;YACtE,qDAAqD;YACrD,wDAAwD,CAC3D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,QAAQ,EAAE,CAAC;QACX,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AACD,8EAA8E"}
@@ -20,6 +20,38 @@ export declare const NODE_BUILTIN_RE: RegExp;
20
20
  * through its own resolveId/load + optimizeDeps esbuild pass, instead of
21
21
  * re-deriving them. */
22
22
  export declare const NODE_BUILTIN_SHIMS: Record<string, string>;
23
+ /** The project's resolved `firebase` package. */
24
+ export interface ProjectFirebase {
25
+ /** The package directory, as resolved from the project. */
26
+ root: string;
27
+ version: string;
28
+ }
29
+ /**
30
+ * Find the `firebase` package the project's own code resolves, walking up
31
+ * `node_modules` directories from `projectDir` as Node does. Throws a message
32
+ * that tells the user to install it when there is none.
33
+ */
34
+ export declare function resolveProjectFirebase(projectDir: string): ProjectFirebase;
35
+ /**
36
+ * The environment setting that turned production AI mode on, for messages.
37
+ * `PYRIC_AI_MODE=production` wins; otherwise the passthrough switch did it.
38
+ */
39
+ export declare function productionModeSetting(env: NodeJS.ProcessEnv): string;
40
+ export interface ProjectFirebasePlan {
41
+ /** Pass to `bundleSdk`; absent when the real-SDK build is skipped. */
42
+ projectFirebase?: {
43
+ projectDir: string;
44
+ };
45
+ /** One line to log when the build is skipped. */
46
+ warning?: string;
47
+ }
48
+ /**
49
+ * Decide whether production AI mode builds the Firebase SDK. Plain
50
+ * `pyric sandbox` serves the page itself, so a missing `firebase` throws.
51
+ * With a child command the child resolves `firebase` on its own, so a
52
+ * missing one only skips the build and warns.
53
+ */
54
+ export declare function planProjectFirebase(projectDir: string, hasChildCommand: boolean, env?: NodeJS.ProcessEnv): ProjectFirebasePlan;
23
55
  export interface BundleOptions {
24
56
  /** Entry files (the wrapper modules in `entries/`), keyed by the served
25
57
  * basename (`auth` → `/__pyric/sdk/auth.js`). */
@@ -29,6 +61,14 @@ export interface BundleOptions {
29
61
  /** Override the cache root (tests). Default `~/.pyric/serve-cache`. */
30
62
  cacheRoot?: string;
31
63
  minify?: boolean;
64
+ /**
65
+ * Production AI mode: also build the Firebase SDK from this project's own
66
+ * `firebase` install (`/__pyric/sdk/firebase-sdk-*.js`). Absent in sandbox
67
+ * AI mode, which neither builds nor serves it.
68
+ */
69
+ projectFirebase?: {
70
+ projectDir: string;
71
+ };
32
72
  }
33
73
  export interface BundleResult {
34
74
  outDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../src/serve/bundler.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA8B1D;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAC9B,UAAU,GAAE,SAAS,MAAM,EAG1B,GACA,MAAM,GAAG,IAAI,CAKf;AAID;mEACmE;AACnE,wBAAgB,gBAAgB,IAAI,MAAM,CAYzC;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAA2B,GAAG,MAAM,CAGtE;AAmBD;uDACuD;AACvD,eAAO,MAAM,eAAe,QAA4B,CAAC;AAEzD;;;;wBAIwB;AACxB,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAarD,CAAC;AAoBF,MAAM,WAAW,aAAa;IAC5B;sDACkD;IAClD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB;qEACiE;IACjE,OAAO,IAAI,IAAI,CAAC;CACjB;AA2DD,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,SAAmD,EAC5D,SAAS,SAAqB,GAC7B,MAAM,CAkBR;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAmE1E;AAID;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAED,MAAM,WAAW,mBAAmB;IAClC;+EAC2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,SAAqB,EAC9B,SAAS,SAAmD,GAC3D,MAAM,CAQR;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBnD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsDzF"}
1
+ {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../src/serve/bundler.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ import { homedir } from 'node:os';
27
27
  import { dirname, join, relative, sep } from 'node:path';
28
28
  import { fileURLToPath } from 'node:url';
29
29
  import * as esbuild from 'esbuild';
30
+ import { bridgeImportEntryKey, REAL_SDK_ENTRIES } from './firebase-module-swap.js';
30
31
  export { SDK_MODULES } from './firebase-module-swap.js';
31
32
  /**
32
33
  * The wrapper entries shipped with @pyric/cli, located relative to this
@@ -149,8 +150,124 @@ function nodeShimPlugin() {
149
150
  },
150
151
  };
151
152
  }
153
+ /**
154
+ * Send the shadow-app wrappers' own `firebase/app` and `firebase/app-check`
155
+ * imports to the Firebase SDK bundle `pyric sandbox` builds in production AI
156
+ * mode (`/__pyric/sdk/firebase-sdk-*.js`). Left bare, the import map would
157
+ * send them back to the wrappers themselves. The rule is
158
+ * `isBypassedBridgeImport`, which the Vite and register planes read too.
159
+ */
160
+ function bridgeImportPlugin() {
161
+ return {
162
+ name: 'pyric-serve-bridge-imports',
163
+ setup(build) {
164
+ build.onResolve({ filter: /^firebase\// }, (args) => {
165
+ const key = bridgeImportEntryKey(args.path, args.importer);
166
+ if (key === undefined)
167
+ return undefined;
168
+ return { path: `/__pyric/sdk/${key}.js`, external: true };
169
+ });
170
+ },
171
+ };
172
+ }
173
+ /**
174
+ * Find the `firebase` package the project's own code resolves, walking up
175
+ * `node_modules` directories from `projectDir` as Node does. Throws a message
176
+ * that tells the user to install it when there is none.
177
+ */
178
+ export function resolveProjectFirebase(projectDir) {
179
+ let dir = projectDir;
180
+ while (true) {
181
+ const manifest = join(dir, 'node_modules', 'firebase', 'package.json');
182
+ if (existsSync(manifest)) {
183
+ const pkg = JSON.parse(readFileSync(manifest, 'utf8'));
184
+ return { root: dirname(manifest), version: pkg.version ?? '0.0.0' };
185
+ }
186
+ const parent = dirname(dir);
187
+ if (parent === dir)
188
+ break;
189
+ dir = parent;
190
+ }
191
+ throw new Error(`pyric sandbox: production AI mode (${productionModeSetting(process.env)}) serves the Firebase SDK from this project, ` +
192
+ `but no firebase package resolves from ${projectDir}. Install it with \`npm install firebase\`, ` +
193
+ `or unset ${productionModeSetting(process.env).split('=')[0]} to answer firebase/ai from the Pyric sandbox.`);
194
+ }
195
+ /**
196
+ * The environment setting that turned production AI mode on, for messages.
197
+ * `PYRIC_AI_MODE=production` wins; otherwise the passthrough switch did it.
198
+ */
199
+ export function productionModeSetting(env) {
200
+ const isModeSet = env.PYRIC_AI_MODE === 'production';
201
+ return isModeSet ? 'PYRIC_AI_MODE=production' : 'PYRIC_AI_PASSTHROUGH=1';
202
+ }
203
+ /**
204
+ * Decide whether production AI mode builds the Firebase SDK. Plain
205
+ * `pyric sandbox` serves the page itself, so a missing `firebase` throws.
206
+ * With a child command the child resolves `firebase` on its own, so a
207
+ * missing one only skips the build and warns.
208
+ */
209
+ export function planProjectFirebase(projectDir, hasChildCommand, env = process.env) {
210
+ try {
211
+ resolveProjectFirebase(projectDir);
212
+ }
213
+ catch (error) {
214
+ if (!hasChildCommand)
215
+ throw error;
216
+ return {
217
+ warning: ` ⚠ production AI mode (${productionModeSetting(env)}): no firebase package resolves from ${projectDir}, ` +
218
+ `so the Firebase SDK is not built. Pages the sandbox serves itself (import map) need firebase installed where pyric starts; ` +
219
+ `your command resolves firebase on its own.`,
220
+ };
221
+ }
222
+ return { projectFirebase: { projectDir } };
223
+ }
224
+ const REAL_SDK_NAMESPACE = 'pyric-firebase-sdk';
225
+ /**
226
+ * Build `firebase/app`, `firebase/ai` and `firebase/app-check` from the
227
+ * project's `firebase` install into `outDir`, in one pass with splitting so
228
+ * the three share one `@firebase/app` component registry, as Vite's
229
+ * dependency optimizer does.
230
+ */
231
+ async function bundleProjectFirebase(outDir, projectDir, firebase, minify) {
232
+ const entryPoints = {};
233
+ for (const [specifier, key] of REAL_SDK_ENTRIES)
234
+ entryPoints[key] = `${REAL_SDK_NAMESPACE}:${specifier}`;
235
+ const result = await esbuild.build({
236
+ entryPoints,
237
+ outdir: outDir,
238
+ bundle: true,
239
+ format: 'esm',
240
+ platform: 'browser',
241
+ splitting: true,
242
+ sourcemap: 'linked',
243
+ minify,
244
+ logLevel: 'silent',
245
+ chunkNames: 'firebase-sdk-[hash]',
246
+ banner: {
247
+ js: `/* The Firebase JS SDK, firebase@${firebase.version} from this project, built by pyric sandbox for production AI mode. */`,
248
+ },
249
+ plugins: [{
250
+ name: 'pyric-serve-project-firebase',
251
+ setup(build) {
252
+ build.onResolve({ filter: new RegExp(`^${REAL_SDK_NAMESPACE}:`) }, (args) => ({
253
+ path: args.path.slice(REAL_SDK_NAMESPACE.length + 1),
254
+ namespace: REAL_SDK_NAMESPACE,
255
+ }));
256
+ build.onLoad({ filter: /.*/, namespace: REAL_SDK_NAMESPACE }, (args) => ({
257
+ contents: `export * from ${JSON.stringify(args.path)};`,
258
+ resolveDir: projectDir,
259
+ loader: 'js',
260
+ }));
261
+ },
262
+ }],
263
+ });
264
+ const hasBuildErrors = result.errors.length > 0;
265
+ if (hasBuildErrors) {
266
+ throw new Error(`pyric sandbox: building firebase@${firebase.version} for production AI mode failed:\n${result.errors.map((e) => e.text).join('\n')}`);
267
+ }
268
+ }
152
269
  /** Bump when bundler logic changes in a way that must invalidate caches. */
153
- const BUNDLER_REV = 9; // 9: cache keys also cover dependency-resolution metadata
270
+ const BUNDLER_REV = 10; // 10: wrappers import the project's Firebase SDK by URL; production keys cover it
154
271
  const RESOLUTION_FILES = [
155
272
  'bun.lock',
156
273
  'bun.lockb',
@@ -224,10 +341,21 @@ export function cacheKey(opts, version, graphRoot = dirname(dirname(fileURLToPat
224
341
  h.update(name);
225
342
  h.update(readFileSync(file, 'utf8'));
226
343
  }
344
+ // Production AI mode also serves the project's Firebase SDK, so upgrading
345
+ // `firebase`, or a project resolving another copy, rebuilds it.
346
+ const projectFirebase = opts.projectFirebase;
347
+ if (projectFirebase) {
348
+ const firebase = resolveProjectFirebase(projectFirebase.projectDir);
349
+ h.update(`firebase-sdk\0${firebase.root}\0${firebase.version}`);
350
+ }
227
351
  return `${version}-${h.digest('hex').slice(0, 12)}`;
228
352
  }
229
353
  // ─── the bundle step ──────────────────────────────────────────────────
230
354
  export async function bundleSdk(opts) {
355
+ // Resolved first, so a project without `firebase` fails before any build.
356
+ const projectFirebase = opts.projectFirebase
357
+ ? { ...opts.projectFirebase, firebase: resolveProjectFirebase(opts.projectFirebase.projectDir) }
358
+ : undefined;
231
359
  const root = pyricPackageRoot();
232
360
  const version = pyricVersion(root);
233
361
  const key = cacheKey(opts, version);
@@ -273,12 +401,15 @@ export async function bundleSdk(opts) {
273
401
  js: '/* pyric sandbox shim serving firebase/*. This is not the real Firebase SDK. */',
274
402
  },
275
403
  external: ['firebase/*'],
276
- plugins: [pyricResolvePlugin(), nodeShimPlugin()],
404
+ plugins: [pyricResolvePlugin(), nodeShimPlugin(), bridgeImportPlugin()],
277
405
  });
278
406
  const hasBuildErrors = result.errors.length > 0;
279
407
  if (hasBuildErrors) {
280
408
  throw new Error(`pyric sandbox: SDK bundle failed:\n${result.errors.map((e) => e.text).join('\n')}`);
281
409
  }
410
+ if (projectFirebase) {
411
+ await bundleProjectFirebase(outDir, projectFirebase.projectDir, projectFirebase.firebase, opts.minify ?? true);
412
+ }
282
413
  writeFileSync(join(outDir, '.complete'), new Date().toISOString());
283
414
  const files = readdirSync(outDir)
284
415
  .filter((f) => f.endsWith('.js'))
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../src/serve/bundler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,CAAC,IAAY,EAAU,EAAE;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,gBAAgB;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,cAAc;YAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,aAAa,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC;IACF,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;QACd,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAChB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC;QAChD,8BAA8B,EAAE,IAAI,CAAC,8BAA8B,CAAC;QACpE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;QAC1B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC;QACpC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAChC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC;QACtC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;KACnB,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAC9B,aAAgC;IAC9B,aAAa,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,aAAa,CAAC,IAAI,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACpE;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AAEzE;mEACmE;AACnE,MAAM,UAAU,gBAAgB;IAC9B,qEAAqE;IACrE,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpE,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAsB,CAAC;IAC7F,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gEAAgE,GAAG,CAAC,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,gBAAgB,EAAE;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC;IACjG,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;AAChC,CAAC;AAED,yEAAyE;AAEzE;;;sEAGsE;AACtE,SAAS,kBAAkB;IACzB,OAAO;QACL,IAAI,EAAE,2BAA2B;QACjC,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpD,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC;AAED;uDACuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAEzD;;;;wBAIwB;AACxB,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,EAAE,EAAE;;;oFAG8E;IAClF,GAAG,EAAE;;iDAE0C;IAC/C,IAAI,EAAE;;;;qDAI6C;CACpD,CAAC;AAEF,SAAS,cAAc;IACrB,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACrC,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC,CAAC;YACJ,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtE,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAE;gBACxC,MAAM,EAAE,IAAI;aACb,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC;AAyBD,4EAA4E;AAC5E,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,0DAA0D;AAEjF,MAAM,gBAAgB,GAAG;IACvB,UAAU;IACV,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;CACH,CAAC;AAEX,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,SAAiB,EAAE,SAAiB;IACjE,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI;QAC1B,CAAC,KAAK,EAAE,OAAO,CAAC;QAChB,CAAC,OAAO,EAAE,SAAS,CAAC;KACZ,EAAE,CAAC;QACX,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QACpC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,GAAG,GAAG,OAAO,IAAI,SAAS,CAAC;IAC/B,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,IAAmB,EACnB,OAAe,EACf,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAC5D,SAAS,GAAG,gBAAgB,EAAE;IAE9B,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,2CAA2C;IAC3C,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,yEAAyE;AAEzE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAmB;IACjD,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC7E,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,qEAAqE;IACrE,4EAA4E;IAC5E,yEAAyE;IACzE,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IAC/C,MAAM,cAAc,GAAG,gBAAgB;QACrC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB;QAC9B,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAChE,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;IAEb,MAAM,eAAe,GAAG,CAAC,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACnF,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACjE;YACD,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,QAAQ,EAAE,QAAQ;YAClB,4EAA4E;YAC5E,UAAU,EAAE,sBAAsB;YAClC,MAAM,EAAE;gBACN,EAAE,EAAE,iFAAiF;aACtF;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,CAAC,kBAAkB,EAAE,EAAE,cAAc,EAAE,CAAC;SAClD,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC;AAeD,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AACpD,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,6EAA6E;AAC7E,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAS,GAAG,gBAAgB,EAAE,EAC9B,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5D,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,GAAW,EAAQ,EAAE;QAClC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC;iBAChC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AA6BD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAyB;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;QACzB,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3F,CAAC,CAAC,UAAU,CAAC;IACf,IACE,CAAC,IAAI,CAAC,OAAO;QACb,UAAU,CAAC,OAAO,CAAC;QACnB,UAAU,CAAC,MAAM,CAAC;QAClB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAChD,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EACrC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,eAAe,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;QAC3B,QAAQ,EAAE,QAAQ;QAClB,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,EAAE,EAAE,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE;QAC9E,MAAM,EAAE;YACN,EAAE,EAAE,8FAA8F;SACnG;QACD,OAAO,EAAE,CAAC,kBAAkB,EAAE,EAAE,cAAc,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,+CAA+C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,SAAS;QAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3D,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../src/serve/bundler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,CAAC,IAAY,EAAU,EAAE;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,gBAAgB;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,cAAc;YAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,aAAa,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC;IACF,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;QACd,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAChB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC;QAChD,8BAA8B,EAAE,IAAI,CAAC,8BAA8B,CAAC;QACpE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;QAClB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;QAC1B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC;QACpC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAChC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC;QACtC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;KACnB,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAC9B,aAAgC;IAC9B,aAAa,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,aAAa,CAAC,IAAI,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACpE;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AAEzE;mEACmE;AACnE,MAAM,UAAU,gBAAgB;IAC9B,qEAAqE;IACrE,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpE,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAsB,CAAC;IAC7F,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gEAAgE,GAAG,CAAC,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,gBAAgB,EAAE;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC;IACjG,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;AAChC,CAAC;AAED,yEAAyE;AAEzE;;;sEAGsE;AACtE,SAAS,kBAAkB;IACzB,OAAO;QACL,IAAI,EAAE,2BAA2B;QACjC,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpD,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC;AAED;uDACuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAEzD;;;;wBAIwB;AACxB,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,EAAE,EAAE;;;oFAG8E;IAClF,GAAG,EAAE;;iDAE0C;IAC/C,IAAI,EAAE;;;;qDAI6C;CACpD,CAAC;AAEF,SAAS,cAAc;IACrB,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACrC,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC,CAAC;YACJ,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtE,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAE;gBACxC,MAAM,EAAE,IAAI;aACb,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB;IACzB,OAAO;QACL,IAAI,EAAE,4BAA4B;QAClC,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClD,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,GAAG,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAC;gBACxC,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAWD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,IAAI,GAAG,GAAG,UAAU,CAAC;IACrB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACvE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAyB,CAAC;YAC/E,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;QACtE,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CACb,sCAAsC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,+CAA+C;QACrH,yCAAyC,UAAU,8CAA8C;QACjG,YAAY,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAC/G,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAsB;IAC1D,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,KAAK,YAAY,CAAC;IACrD,OAAO,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,wBAAwB,CAAC;AAC3E,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,eAAwB,EAAE,MAAyB,OAAO,CAAC,GAAG;IACpH,IAAI,CAAC;QACH,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,eAAe;YAAE,MAAM,KAAK,CAAC;QAClC,OAAO;YACL,OAAO,EACL,2BAA2B,qBAAqB,CAAC,GAAG,CAAC,wCAAwC,UAAU,IAAI;gBAC3G,6HAA6H;gBAC7H,4CAA4C;SAC/C,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC;AAC7C,CAAC;AAGD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEhD;;;;;GAKG;AACH,KAAK,UAAU,qBAAqB,CAAC,MAAc,EAAE,UAAkB,EAAE,QAAyB,EAAE,MAAe;IACjH,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,gBAAgB;QAAE,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,kBAAkB,IAAI,SAAS,EAAE,CAAC;IACzG,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QACjC,WAAW;QACX,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,QAAQ;QACnB,MAAM;QACN,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,qBAAqB;QACjC,MAAM,EAAE;YACN,EAAE,EAAE,oCAAoC,QAAQ,CAAC,OAAO,uEAAuE;SAChI;QACD,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,8BAA8B;gBACpC,KAAK,CAAC,KAAK;oBACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,kBAAkB,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC5E,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;wBACpD,SAAS,EAAE,kBAAkB;qBAC9B,CAAC,CAAC,CAAC;oBACJ,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACvE,QAAQ,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;wBACvD,UAAU,EAAE,UAAU;wBACtB,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC,CAAC;gBACN,CAAC;aACF,CAAC;KACH,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,oCAAoC,QAAQ,CAAC,OAAO,oCAAoC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtI,CAAC;IACJ,CAAC;AACH,CAAC;AA+BD,4EAA4E;AAC5E,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,kFAAkF;AAE1G,MAAM,gBAAgB,GAAG;IACvB,UAAU;IACV,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;CACH,CAAC;AAEX,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACrC,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,SAAiB,EAAE,SAAiB;IACjE,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI;QAC1B,CAAC,KAAK,EAAE,OAAO,CAAC;QAChB,CAAC,OAAO,EAAE,SAAS,CAAC;KACZ,EAAE,CAAC;QACX,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QACpC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,GAAG,GAAG,OAAO,IAAI,SAAS,CAAC;IAC/B,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,IAAmB,EACnB,OAAe,EACf,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAC5D,SAAS,GAAG,gBAAgB,EAAE;IAE9B,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,2CAA2C;IAC3C,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC7C,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpE,CAAC,CAAC,MAAM,CAAC,iBAAiB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,yEAAyE;AAEzE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAmB;IACjD,0EAA0E;IAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe;QAC1C,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;QAChG,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC7E,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,qEAAqE;IACrE,4EAA4E;IAC5E,yEAAyE;IACzE,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IAC/C,MAAM,cAAc,GAAG,gBAAgB;QACrC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,gBAAgB;QAC9B,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAChE,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;IAEb,MAAM,eAAe,GAAG,CAAC,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACnF,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACjE;YACD,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,QAAQ,EAAE,QAAQ;YAClB,4EAA4E;YAC5E,UAAU,EAAE,sBAAsB;YAClC,MAAM,EAAE;gBACN,EAAE,EAAE,iFAAiF;aACtF;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,CAAC,kBAAkB,EAAE,EAAE,cAAc,EAAE,EAAE,kBAAkB,EAAE,CAAC;SACxE,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,qBAAqB,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;QACjH,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC;AAeD,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AACpD,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,6EAA6E;AAC7E,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAS,GAAG,gBAAgB,EAAE,EAC9B,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5D,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,GAAW,EAAQ,EAAE;QAClC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC;iBAChC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AA6BD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAyB;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;QACzB,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3F,CAAC,CAAC,UAAU,CAAC;IACf,IACE,CAAC,IAAI,CAAC,OAAO;QACb,UAAU,CAAC,OAAO,CAAC;QACnB,UAAU,CAAC,MAAM,CAAC;QAClB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAChD,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,EACrC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QACjC,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,eAAe,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;QAC3B,QAAQ,EAAE,QAAQ;QAClB,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,EAAE,EAAE,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE;QAC9E,MAAM,EAAE;YACN,EAAE,EAAE,8FAA8F;SACnG;QACD,OAAO,EAAE,CAAC,kBAAkB,EAAE,EAAE,cAAc,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,+CAA+C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,SAAS;QAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC;IACpF,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3D,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import * as pyricApp from 'pyric/app';
2
- export declare function initializeApp(options?: pyricApp.FirebaseOptions, rawSettings?: string | pyricApp.FirebaseAppSettings): pyricApp.FirebaseApp;
3
- export declare function getApp(name?: string): pyricApp.FirebaseApp;
4
- export declare function getApps(): pyricApp.FirebaseApp[];
5
- export declare function deleteApp(app: pyricApp.FirebaseApp): Promise<void>;
2
+ export declare const initializeApp: (options?: pyricApp.FirebaseOptions, rawSettings?: string | pyricApp.FirebaseAppSettings) => pyricApp.FirebaseApp;
3
+ export declare const getApp: (name?: string) => pyricApp.FirebaseApp;
4
+ export declare const getApps: () => pyricApp.FirebaseApp[];
5
+ export declare const deleteApp: (app: pyricApp.FirebaseApp) => Promise<void>;
6
6
  export { FirebaseError, SDK_VERSION, onLog, registerVersion, setLogLevel, } from 'pyric/app';
7
7
  export type { FirebaseApp, FirebaseAppSettings, FirebaseOptions, LogCallback, LogEntry, LogLevel, LogOptions, } from 'pyric/app';
8
8
  //# sourceMappingURL=app-ai-passthrough.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-ai-passthrough.d.ts","sourceRoot":"","sources":["../../../src/serve/entries/app-ai-passthrough.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAmCtC,wBAAgB,aAAa,CAC3B,OAAO,CAAC,EAAE,QAAQ,CAAC,eAAe,EAClC,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,mBAAmB,GAClD,QAAQ,CAAC,WAAW,CAGtB;AAED,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,WAAW,CAE1D;AAED,wBAAgB,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,CAEhD;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxE;AAED,OAAO,EACL,aAAa,EACb,WAAW,EACX,KAAK,EACL,eAAe,EACf,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"app-ai-passthrough.d.ts","sourceRoot":"","sources":["../../../src/serve/entries/app-ai-passthrough.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAStC,eAAO,MAAM,aAAa,mHAAyB,CAAC;AACpD,eAAO,MAAM,MAAM,yCAAkB,CAAC;AACtC,eAAO,MAAM,OAAO,8BAAmB,CAAC;AACxC,eAAO,MAAM,SAAS,8CAAqB,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,WAAW,EACX,KAAK,EACL,eAAe,EACf,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC"}