@wildo-ai/saas-technical-doc 1.1.5 → 1.1.7

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 (156) hide show
  1. package/dist/esm/build/csp-emit.d.ts.map +1 -1
  2. package/dist/esm/build/load-materialized-frontend-providers.d.ts.map +1 -1
  3. package/dist/esm/companion/application-documentation/application-authentication-documentation.d.ts.map +1 -1
  4. package/dist/esm/companion/application-documentation/application-connection-documentation.d.ts.map +1 -1
  5. package/dist/esm/companion/application-documentation/application-documentation-chapters.d.ts.map +1 -1
  6. package/dist/esm/companion/application-documentation/application-organization-role-documentation.d.ts.map +1 -1
  7. package/dist/esm/companion/application-documentation/application-organization-unit-resource-documentation.d.ts.map +1 -1
  8. package/dist/esm/companion/application-documentation/docs-api-origin-substitution.d.ts.map +1 -1
  9. package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.d.ts.map +1 -1
  10. package/dist/esm/companion/application-documentation/technical-documentation-operational-evidence.d.ts.map +1 -1
  11. package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.d.ts.map +1 -1
  12. package/dist/esm/companion/application-documentation/technical-documentation-publication-policy.d.ts.map +1 -1
  13. package/dist/esm/companion/content/application-consumer-documentation-content-loader.d.ts.map +1 -1
  14. package/dist/esm/companion/index.d.ts.map +1 -1
  15. package/dist/esm/companion/manual-controller-route-projection.d.ts.map +1 -1
  16. package/dist/esm/companion/openapi-example-derivation.d.ts +53 -0
  17. package/dist/esm/companion/openapi-example-derivation.d.ts.map +1 -0
  18. package/dist/esm/companion/openapi-example-derivation.js +229 -0
  19. package/dist/esm/companion/openapi-example-derivation.js.map +1 -0
  20. package/dist/esm/companion/openapi-generator.d.ts.map +1 -1
  21. package/dist/esm/companion/openapi-generator.js +284 -16
  22. package/dist/esm/companion/openapi-generator.js.map +1 -1
  23. package/dist/esm/companion/operation-projection.schemas.d.ts +36 -0
  24. package/dist/esm/companion/operation-projection.schemas.d.ts.map +1 -1
  25. package/dist/esm/companion/operation-projection.schemas.js +18 -0
  26. package/dist/esm/companion/operation-projection.schemas.js.map +1 -1
  27. package/dist/esm/companion/publish-result.types.d.ts.map +1 -1
  28. package/dist/esm/companion/rendering/technical-documentation-authorized-bundle-reader.d.ts.map +1 -1
  29. package/dist/esm/companion/rendering/technical-documentation-docusaurus-renderer.d.ts.map +1 -1
  30. package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.d.ts.map +1 -1
  31. package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.js +20 -0
  32. package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.js.map +1 -1
  33. package/dist/esm/companion/rendering/technical-documentation-markdown-links.d.ts.map +1 -1
  34. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.d.ts +2 -0
  35. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.d.ts.map +1 -1
  36. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.js +48 -31
  37. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.js.map +1 -1
  38. package/dist/esm/companion/rendering/technical-documentation-render-model.d.ts.map +1 -1
  39. package/dist/esm/companion/rendering/technical-documentation-search-index-renderer.d.ts.map +1 -1
  40. package/dist/esm/companion/spec-to-operation-doc.d.ts +52 -10
  41. package/dist/esm/companion/spec-to-operation-doc.d.ts.map +1 -1
  42. package/dist/esm/companion/spec-to-operation-doc.js +125 -7
  43. package/dist/esm/companion/spec-to-operation-doc.js.map +1 -1
  44. package/dist/esm/companion/technical-documentation-asset-path.d.ts.map +1 -1
  45. package/dist/esm/companion/technical-documentation-capture-execution-port.d.ts.map +1 -1
  46. package/dist/esm/companion/technical-documentation-diagram-definitions.d.ts.map +1 -1
  47. package/dist/esm/companion/technical-documentation-diagram-materializer.d.ts.map +1 -1
  48. package/dist/esm/companion/technical-documentation-placeholder-materializer.d.ts.map +1 -1
  49. package/dist/esm/companion/zod-to-openapi.d.ts.map +1 -1
  50. package/dist/esm/companion-exports.d.ts.map +1 -1
  51. package/dist/esm/config/define-tech-doc-config.d.ts.map +1 -1
  52. package/dist/esm/config/index.d.ts.map +1 -1
  53. package/dist/esm/config/wildo-tech-doc-config.schemas.d.ts.map +1 -1
  54. package/dist/esm/content/application-consumer-documentation-content-manifest.schemas.d.ts.map +1 -1
  55. package/dist/esm/content/application-consumer-documentation-content.techdoc.d.ts +10 -10
  56. package/dist/esm/content/application-consumer-documentation-content.techdoc.d.ts.map +1 -1
  57. package/dist/esm/content/application-consumer-documentation-content.techdoc.js +43 -28
  58. package/dist/esm/content/application-consumer-documentation-content.techdoc.js.map +1 -1
  59. package/dist/esm/content.exports.d.ts.map +1 -1
  60. package/dist/esm/index.d.ts.map +1 -1
  61. package/dist/esm/openapi/api-reference-link-index.d.ts +3 -0
  62. package/dist/esm/openapi/api-reference-link-index.d.ts.map +1 -1
  63. package/dist/esm/openapi/api-reference-link-index.js +26 -15
  64. package/dist/esm/openapi/api-reference-link-index.js.map +1 -1
  65. package/dist/esm/openapi/api-reference-pages.d.ts +55 -0
  66. package/dist/esm/openapi/api-reference-pages.d.ts.map +1 -0
  67. package/dist/esm/openapi/api-reference-pages.js +229 -0
  68. package/dist/esm/openapi/api-reference-pages.js.map +1 -0
  69. package/dist/esm/openapi/api-reference-search.d.ts +53 -0
  70. package/dist/esm/openapi/api-reference-search.d.ts.map +1 -0
  71. package/dist/esm/openapi/api-reference-search.js +100 -0
  72. package/dist/esm/openapi/api-reference-search.js.map +1 -0
  73. package/dist/esm/openapi/api-reference-targets.d.ts +11 -0
  74. package/dist/esm/openapi/api-reference-targets.d.ts.map +1 -1
  75. package/dist/esm/openapi/api-reference-targets.js +8 -0
  76. package/dist/esm/openapi/api-reference-targets.js.map +1 -1
  77. package/dist/esm/openapi/index.d.ts +2 -0
  78. package/dist/esm/openapi/index.d.ts.map +1 -1
  79. package/dist/esm/openapi/index.js +2 -0
  80. package/dist/esm/openapi/index.js.map +1 -1
  81. package/dist/esm/openapi/openapi-generation-output.schemas.d.ts.map +1 -1
  82. package/dist/esm/openapi-reference-model.exports.d.ts +2 -0
  83. package/dist/esm/openapi-reference-model.exports.d.ts.map +1 -1
  84. package/dist/esm/openapi-reference-model.exports.js +2 -0
  85. package/dist/esm/openapi-reference-model.exports.js.map +1 -1
  86. package/dist/esm/runtime/AuthExchangePage.d.ts +45 -4
  87. package/dist/esm/runtime/AuthExchangePage.d.ts.map +1 -1
  88. package/dist/esm/runtime/AuthExchangePage.js +45 -12
  89. package/dist/esm/runtime/AuthExchangePage.js.map +1 -1
  90. package/dist/esm/runtime/DocsAuthContext.d.ts.map +1 -1
  91. package/dist/esm/runtime/DocsFrontendProviders.d.ts +15 -1
  92. package/dist/esm/runtime/DocsFrontendProviders.d.ts.map +1 -1
  93. package/dist/esm/runtime/DocsFrontendProviders.js +16 -3
  94. package/dist/esm/runtime/DocsFrontendProviders.js.map +1 -1
  95. package/dist/esm/runtime/DocsProviderComponent.d.ts +41 -0
  96. package/dist/esm/runtime/DocsProviderComponent.d.ts.map +1 -0
  97. package/dist/esm/runtime/DocsProviderComponent.js +17 -0
  98. package/dist/esm/runtime/DocsProviderComponent.js.map +1 -0
  99. package/dist/esm/runtime/decode-jwt-claims.d.ts.map +1 -1
  100. package/dist/esm/runtime/docs-auth-client.d.ts.map +1 -1
  101. package/dist/esm/runtime/docs-auth-session.schemas.d.ts.map +1 -1
  102. package/dist/esm/runtime/documentation-site-translator.d.ts +53 -0
  103. package/dist/esm/runtime/documentation-site-translator.d.ts.map +1 -0
  104. package/dist/esm/runtime/documentation-site-translator.js +51 -0
  105. package/dist/esm/runtime/documentation-site-translator.js.map +1 -0
  106. package/dist/esm/runtime/frontend-provider-registry.techdoc.d.ts.map +1 -1
  107. package/dist/esm/runtime/index.d.ts +6 -0
  108. package/dist/esm/runtime/index.d.ts.map +1 -1
  109. package/dist/esm/runtime/index.js +6 -0
  110. package/dist/esm/runtime/index.js.map +1 -1
  111. package/dist/esm/runtime/openapi-reference-conservation.d.ts.map +1 -1
  112. package/dist/esm/runtime/openapi-reference-model.d.ts +25 -0
  113. package/dist/esm/runtime/openapi-reference-model.d.ts.map +1 -1
  114. package/dist/esm/runtime/openapi-reference-model.js +82 -13
  115. package/dist/esm/runtime/openapi-reference-model.js.map +1 -1
  116. package/dist/esm/runtime/openapi-reference-navigation.d.ts +50 -0
  117. package/dist/esm/runtime/openapi-reference-navigation.d.ts.map +1 -0
  118. package/dist/esm/runtime/openapi-reference-navigation.js +46 -0
  119. package/dist/esm/runtime/openapi-reference-navigation.js.map +1 -0
  120. package/dist/esm/runtime/openapi-reference-samples.d.ts +40 -0
  121. package/dist/esm/runtime/openapi-reference-samples.d.ts.map +1 -0
  122. package/dist/esm/runtime/openapi-reference-samples.js +169 -0
  123. package/dist/esm/runtime/openapi-reference-samples.js.map +1 -0
  124. package/dist/esm/runtime/openapi-reference-styles.d.ts +28 -0
  125. package/dist/esm/runtime/openapi-reference-styles.d.ts.map +1 -0
  126. package/dist/esm/runtime/openapi-reference-styles.js +292 -0
  127. package/dist/esm/runtime/openapi-reference-styles.js.map +1 -0
  128. package/dist/esm/runtime/openapi-reference-view.d.ts +40 -5
  129. package/dist/esm/runtime/openapi-reference-view.d.ts.map +1 -1
  130. package/dist/esm/runtime/openapi-reference-view.js +828 -82
  131. package/dist/esm/runtime/openapi-reference-view.js.map +1 -1
  132. package/dist/esm/runtime/openapi-reference-words-context.d.ts +12 -0
  133. package/dist/esm/runtime/openapi-reference-words-context.d.ts.map +1 -0
  134. package/dist/esm/runtime/openapi-reference-words-context.js +30 -0
  135. package/dist/esm/runtime/openapi-reference-words-context.js.map +1 -0
  136. package/dist/esm/runtime/openapi-reference-words.d.ts +205 -0
  137. package/dist/esm/runtime/openapi-reference-words.d.ts.map +1 -0
  138. package/dist/esm/runtime/openapi-reference-words.js +162 -0
  139. package/dist/esm/runtime/openapi-reference-words.js.map +1 -0
  140. package/dist/esm/runtime/provider-component-registry.techdoc.d.ts +31 -0
  141. package/dist/esm/runtime/provider-component-registry.techdoc.d.ts.map +1 -0
  142. package/dist/esm/runtime/provider-component-registry.techdoc.js +35 -0
  143. package/dist/esm/runtime/provider-component-registry.techdoc.js.map +1 -0
  144. package/dist/esm/runtime/use-docs-auth-session.d.ts.map +1 -1
  145. package/dist/esm/runtime/use-docs-frontend-provider-registry.d.ts.map +1 -1
  146. package/dist/esm/runtime/use-docs-provider-component.d.ts +29 -0
  147. package/dist/esm/runtime/use-docs-provider-component.d.ts.map +1 -0
  148. package/dist/esm/runtime/use-docs-provider-component.js +42 -0
  149. package/dist/esm/runtime/use-docs-provider-component.js.map +1 -0
  150. package/dist/esm/runtime/use-docs-provider-scripts.d.ts +12 -5
  151. package/dist/esm/runtime/use-docs-provider-scripts.d.ts.map +1 -1
  152. package/dist/esm/runtime/use-docs-provider-scripts.js +15 -8
  153. package/dist/esm/runtime/use-docs-provider-scripts.js.map +1 -1
  154. package/dist/esm/runtime/use-docs-provider-sdks.d.ts.map +1 -1
  155. package/dist/tsconfig.build.tsbuildinfo +1 -1
  156. package/package.json +6 -6
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Reading provider-contributed components on the documentation site (#1703) — the docs counterpart of
3
+ * the application's `useProviderComponentChoices` / `useProviderComponent`, over the same registry and
4
+ * the same status vocabulary (`ProviderComponentStatus`).
5
+ *
6
+ * **No one is asked for consent here, so the grant is always NONE.** The documentation site has no
7
+ * consent panel and no signed-in person's stored preference to read (a reader may be anonymous, and the
8
+ * auth provider is optional), so a component whose provider rests on a consent purpose never loads on
9
+ * this surface: it reports `CONSENT_REQUIRED` and downloads nothing. That is the same fail-closed default
10
+ * `useDocsProviderSdks` and `useDocsProviderScripts` apply to the provider's SDK and scripts, and it
11
+ * keeps the three halves of one provider — SDK, scripts, component — answering the same question the
12
+ * same way.
13
+ */
14
+ import { useContext, useEffect, useState } from 'react';
15
+ import { idleProviderComponentLoadState, startProviderComponentLoad, } from '@wildo-ai/external-connectors-public/techdoc';
16
+ import { DocsProviderComponentsContext } from './DocsFrontendProviders.js';
17
+ /** The documentation site grants no consent purpose: nobody is asked on this surface. */
18
+ const NO_GRANTED_PURPOSES = Object.freeze([]);
19
+ /**
20
+ * The providers that are BOTH live for this docs service and carry a component for this capability, in
21
+ * the order the service declared them. Empty outside `DocsFrontendProviders`.
22
+ */
23
+ export function useDocsProviderComponentChoices(capability) {
24
+ return useContext(DocsProviderComponentsContext)?.listProviders(capability) ?? [];
25
+ }
26
+ /**
27
+ * Loads one provider's component for a capability. Pass `undefined` for the ref while nothing is chosen.
28
+ * The load runs in an effect, so it never runs during the Docusaurus prerender.
29
+ */
30
+ export function useDocsProviderComponent(capability, providerRef) {
31
+ const registry = useContext(DocsProviderComponentsContext);
32
+ const [state, setState] = useState(() => idleProviderComponentLoadState());
33
+ useEffect(() => startProviderComponentLoad({
34
+ registry,
35
+ capability,
36
+ providerRef,
37
+ grantedConsentPurposes: NO_GRANTED_PURPOSES,
38
+ onState: setState,
39
+ }), [capability, providerRef, registry]);
40
+ return state;
41
+ }
42
+ //# sourceMappingURL=use-docs-provider-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-docs-provider-component.js","sourceRoot":"","sources":["../../../src/runtime/use-docs-provider-component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAE3B,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAMxE,yFAAyF;AACzF,MAAM,mBAAmB,GAA8B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAAC,UAA8B;IAC5E,OAAO,UAAU,CAAC,6BAA6B,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA8B,EAC9B,WAA+B;IAE/B,MAAM,QAAQ,GAAG,UAAU,CAAC,6BAA6B,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAA6B,GAAG,EAAE,CAAC,8BAA8B,EAA6B,CAAC,CAAC;IAElI,SAAS,CACP,GAAG,EAAE,CAAC,0BAA0B,CAAC;QAC/B,QAAQ;QACR,UAAU;QACV,WAAW;QACX,sBAAsB,EAAE,mBAAmB;QAC3C,OAAO,EAAE,QAAQ;KAClB,CAAC,EACF,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CACpC,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Reading provider-contributed components on the documentation site (#1703) — the docs counterpart of\n * the application's `useProviderComponentChoices` / `useProviderComponent`, over the same registry and\n * the same status vocabulary (`ProviderComponentStatus`).\n *\n * **No one is asked for consent here, so the grant is always NONE.** The documentation site has no\n * consent panel and no signed-in person's stored preference to read (a reader may be anonymous, and the\n * auth provider is optional), so a component whose provider rests on a consent purpose never loads on\n * this surface: it reports `CONSENT_REQUIRED` and downloads nothing. That is the same fail-closed default\n * `useDocsProviderSdks` and `useDocsProviderScripts` apply to the provider's SDK and scripts, and it\n * keeps the three halves of one provider — SDK, scripts, component — answering the same question the\n * same way.\n */\n\nimport { useContext, useEffect, useState } from 'react';\nimport {\n idleProviderComponentLoadState,\n startProviderComponentLoad,\n type ProviderComponentLoadState,\n} from '@wildo-ai/external-connectors-public/techdoc';\nimport type { ConsentPurpose, ProviderCapability } from '@wildo-ai/saas-models/public-runtime';\n\nimport { DocsProviderComponentsContext } from './DocsFrontendProviders';\nimport type { DocsProviderComponentType } from './provider-component-registry.techdoc';\n\n/** What `useDocsProviderComponent` returns: the shared load state, holding a React component. */\nexport type DocsProviderComponentState = ProviderComponentLoadState<DocsProviderComponentType>;\n\n/** The documentation site grants no consent purpose: nobody is asked on this surface. */\nconst NO_GRANTED_PURPOSES: readonly ConsentPurpose[] = Object.freeze([]);\n\n/**\n * The providers that are BOTH live for this docs service and carry a component for this capability, in\n * the order the service declared them. Empty outside `DocsFrontendProviders`.\n */\nexport function useDocsProviderComponentChoices(capability: ProviderCapability): ReadonlyArray<string> {\n return useContext(DocsProviderComponentsContext)?.listProviders(capability) ?? [];\n}\n\n/**\n * Loads one provider's component for a capability. Pass `undefined` for the ref while nothing is chosen.\n * The load runs in an effect, so it never runs during the Docusaurus prerender.\n */\nexport function useDocsProviderComponent(\n capability: ProviderCapability,\n providerRef: string | undefined,\n): DocsProviderComponentState {\n const registry = useContext(DocsProviderComponentsContext);\n const [state, setState] = useState<DocsProviderComponentState>(() => idleProviderComponentLoadState<DocsProviderComponentType>());\n\n useEffect(\n () => startProviderComponentLoad({\n registry,\n capability,\n providerRef,\n grantedConsentPurposes: NO_GRANTED_PURPOSES,\n onState: setState,\n }),\n [capability, providerRef, registry],\n );\n\n return state;\n}\n"]}
@@ -20,11 +20,18 @@
20
20
  * inject a SECOND copy of an already-running script. Idempotence by `src` is
21
21
  * the real guard.
22
22
  *
23
- * It injects without awaiting: nothing on the docs surface mounts a component
24
- * that reads a vendor global. A docs component that ever does should await
25
- * `loadProviderScripts` instead, as the SaaS app's provider component registry
26
- * does.
23
+ * It injects without awaiting, and only for providers with NO registered
24
+ * component: a provider that contributes a component has its scripts loaded and
25
+ * AWAITED by the provider-component registry when that component is first shown
26
+ * (#1703), so a component reading a vendor global finds it.
27
27
  */
28
28
  import type { FrontendTechdocProviderRegistry } from './frontend-provider-registry.techdoc';
29
- export declare function useDocsProviderScripts(registry: FrontendTechdocProviderRegistry | undefined): void;
29
+ import type { DocsProviderComponentRegistry } from './provider-component-registry.techdoc';
30
+ export declare function useDocsProviderScripts(registry: FrontendTechdocProviderRegistry | undefined,
31
+ /**
32
+ * The docs provider-component registry (#1703). A provider with a registered component loads its
33
+ * scripts WITH that component, when a page first shows it, rather than on every documentation page —
34
+ * the rule the application follows too. This hook injects the rest.
35
+ */
36
+ componentRegistry?: DocsProviderComponentRegistry): void;
30
37
  //# sourceMappingURL=use-docs-provider-scripts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-docs-provider-scripts.d.ts","sourceRoot":"","sources":["../../../../src/runtime/use-docs-provider-scripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAE5F,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,+BAA+B,GAAG,SAAS,GACpD,IAAI,CASN"}
1
+ {"version":3,"file":"use-docs-provider-scripts.d.ts","sourceRoot":"","sources":["../../../src/runtime/use-docs-provider-scripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAE3F,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,+BAA+B,GAAG,SAAS;AACrD;;;;GAIG;AACH,iBAAiB,CAAC,EAAE,6BAA6B,GAChD,IAAI,CAUN"}
@@ -20,21 +20,28 @@
20
20
  * inject a SECOND copy of an already-running script. Idempotence by `src` is
21
21
  * the real guard.
22
22
  *
23
- * It injects without awaiting: nothing on the docs surface mounts a component
24
- * that reads a vendor global. A docs component that ever does should await
25
- * `loadProviderScripts` instead, as the SaaS app's provider component registry
26
- * does.
23
+ * It injects without awaiting, and only for providers with NO registered
24
+ * component: a provider that contributes a component has its scripts loaded and
25
+ * AWAITED by the provider-component registry when that component is first shown
26
+ * (#1703), so a component reading a vendor global finds it.
27
27
  */
28
28
  import { useEffect } from 'react';
29
- import { collectDeclaredProviderScripts, injectProviderScripts, } from '@wildo-ai/external-connectors-public/techdoc';
30
- export function useDocsProviderScripts(registry) {
29
+ import { collectProviderScriptsWithoutComponents, injectProviderScripts, } from '@wildo-ai/external-connectors-public/techdoc';
30
+ export function useDocsProviderScripts(registry,
31
+ /**
32
+ * The docs provider-component registry (#1703). A provider with a registered component loads its
33
+ * scripts WITH that component, when a page first shows it, rather than on every documentation page —
34
+ * the rule the application follows too. This hook injects the rest.
35
+ */
36
+ componentRegistry) {
31
37
  useEffect(() => {
32
38
  if (typeof document === 'undefined')
33
39
  return;
34
- const scripts = collectDeclaredProviderScripts(registry?.modules.values());
40
+ const withComponents = [...(componentRegistry?.providersWithComponents() ?? [])].map((providerRef) => ({ providerRef }));
41
+ const scripts = collectProviderScriptsWithoutComponents(registry?.modules.values() ?? [], withComponents);
35
42
  if (scripts.length === 0)
36
43
  return;
37
44
  injectProviderScripts(scripts, document);
38
- }, [registry]);
45
+ }, [registry, componentRegistry]);
39
46
  }
40
47
  //# sourceMappingURL=use-docs-provider-scripts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-docs-provider-scripts.js","sourceRoot":"","sources":["../../../../src/runtime/use-docs-provider-scripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AAGtD,MAAM,UAAU,sBAAsB,CACpC,QAAqD;IAErD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAE5C,MAAM,OAAO,GAAG,8BAA8B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC","sourcesContent":["/**\n * Adds the third-party `<script>` tags every live docs provider declares.\n *\n * The techdoc's half of the DATA channel's executable surface (#332), beside\n * `useDocsProviderSdks` for the npm half. Before this, a docs provider's\n * declared `scripts` were read by nothing on this surface: only the website\n * injected them, which is how a declared script became a label elsewhere.\n * The injector itself is the ONE shared copy in\n * `@wildo-ai/external-connectors-public/techdoc` — a second copy of a DOM\n * mutation eventually disagrees about idempotence, and a vendor tag loaded\n * twice initialises twice.\n *\n * Effect-only, and that is not a detail: Docusaurus server-renders every page\n * at build time, where there is no `document` to inject into, and a vendor tag\n * must not run inside the build.\n *\n * Deliberately no teardown, for the same reason as the website hook: a vendor\n * tag installs a global and often starts work immediately. Removing the element\n * undoes neither, so a cleanup that removed it would only make the next mount\n * inject a SECOND copy of an already-running script. Idempotence by `src` is\n * the real guard.\n *\n * It injects without awaiting: nothing on the docs surface mounts a component\n * that reads a vendor global. A docs component that ever does should await\n * `loadProviderScripts` instead, as the SaaS app's provider component registry\n * does.\n */\n\nimport { useEffect } from 'react';\nimport {\n collectDeclaredProviderScripts,\n injectProviderScripts,\n} from '@wildo-ai/external-connectors-public/techdoc';\nimport type { FrontendTechdocProviderRegistry } from './frontend-provider-registry.techdoc';\n\nexport function useDocsProviderScripts(\n registry: FrontendTechdocProviderRegistry | undefined,\n): void {\n useEffect(() => {\n if (typeof document === 'undefined') return;\n\n const scripts = collectDeclaredProviderScripts(registry?.modules.values());\n if (scripts.length === 0) return;\n\n injectProviderScripts(scripts, document);\n }, [registry]);\n}\n"]}
1
+ {"version":3,"file":"use-docs-provider-scripts.js","sourceRoot":"","sources":["../../../src/runtime/use-docs-provider-scripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,uCAAuC,EACvC,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AAItD,MAAM,UAAU,sBAAsB,CACpC,QAAqD;AACrD;;;;GAIG;AACH,iBAAiD;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAE5C,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACzH,MAAM,OAAO,GAAG,uCAAuC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QAC1G,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACpC,CAAC","sourcesContent":["/**\n * Adds the third-party `<script>` tags every live docs provider declares.\n *\n * The techdoc's half of the DATA channel's executable surface (#332), beside\n * `useDocsProviderSdks` for the npm half. Before this, a docs provider's\n * declared `scripts` were read by nothing on this surface: only the website\n * injected them, which is how a declared script became a label elsewhere.\n * The injector itself is the ONE shared copy in\n * `@wildo-ai/external-connectors-public/techdoc` — a second copy of a DOM\n * mutation eventually disagrees about idempotence, and a vendor tag loaded\n * twice initialises twice.\n *\n * Effect-only, and that is not a detail: Docusaurus server-renders every page\n * at build time, where there is no `document` to inject into, and a vendor tag\n * must not run inside the build.\n *\n * Deliberately no teardown, for the same reason as the website hook: a vendor\n * tag installs a global and often starts work immediately. Removing the element\n * undoes neither, so a cleanup that removed it would only make the next mount\n * inject a SECOND copy of an already-running script. Idempotence by `src` is\n * the real guard.\n *\n * It injects without awaiting, and only for providers with NO registered\n * component: a provider that contributes a component has its scripts loaded and\n * AWAITED by the provider-component registry when that component is first shown\n * (#1703), so a component reading a vendor global finds it.\n */\n\nimport { useEffect } from 'react';\nimport {\n collectProviderScriptsWithoutComponents,\n injectProviderScripts,\n} from '@wildo-ai/external-connectors-public/techdoc';\nimport type { FrontendTechdocProviderRegistry } from './frontend-provider-registry.techdoc';\nimport type { DocsProviderComponentRegistry } from './provider-component-registry.techdoc';\n\nexport function useDocsProviderScripts(\n registry: FrontendTechdocProviderRegistry | undefined,\n /**\n * The docs provider-component registry (#1703). A provider with a registered component loads its\n * scripts WITH that component, when a page first shows it, rather than on every documentation page —\n * the rule the application follows too. This hook injects the rest.\n */\n componentRegistry?: DocsProviderComponentRegistry,\n): void {\n useEffect(() => {\n if (typeof document === 'undefined') return;\n\n const withComponents = [...(componentRegistry?.providersWithComponents() ?? [])].map((providerRef) => ({ providerRef }));\n const scripts = collectProviderScriptsWithoutComponents(registry?.modules.values() ?? [], withComponents);\n if (scripts.length === 0) return;\n\n injectProviderScripts(scripts, document);\n }, [registry, componentRegistry]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-docs-provider-sdks.d.ts","sourceRoot":"","sources":["../../../../src/runtime/use-docs-provider-sdks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAE5F,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,+BAA+B,GAAG,SAAS,GACpD,IAAI,CA2BN"}
1
+ {"version":3,"file":"use-docs-provider-sdks.d.ts","sourceRoot":"","sources":["../../../src/runtime/use-docs-provider-sdks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAE5F,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,+BAA+B,GAAG,SAAS,GACpD,IAAI,CA2BN"}