@supersoniks/concorde 4.9.9 → 4.9.91

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 (48) hide show
  1. package/build-infos.json +1 -1
  2. package/concorde-core.bundle.js +241 -241
  3. package/concorde-core.es.js +2908 -2845
  4. package/dist/concorde-core.bundle.js +241 -241
  5. package/dist/concorde-core.es.js +2908 -2845
  6. package/dist/js/core/decorators/api.js +92 -2
  7. package/dist/js/core/decorators/api.js.map +1 -1
  8. package/dist/js/decorators.js +4 -0
  9. package/dist/js/decorators.js.map +1 -1
  10. package/dist/types/core/decorators/api.d.ts +82 -60
  11. package/dist/types/core/decorators/api.d.ts.map +1 -1
  12. package/dist/types/decorators.d.ts +3 -1
  13. package/dist/types/decorators.d.ts.map +1 -1
  14. package/docs/assets/index-BL6WVF7g.css +1 -0
  15. package/docs/assets/{index-hElUgV9_.js → index-DVn8AeyA.js} +572 -555
  16. package/docs/crawl/docs/_decorators/get.html +64 -81
  17. package/docs/crawl/docs/_decorators/patch.html +35 -23
  18. package/docs/crawl/docs/_decorators/post.html +72 -72
  19. package/docs/crawl/docs/_decorators/put.html +36 -21
  20. package/docs/crawl/docs/_getting-started/ai-agents.html +45 -6
  21. package/docs/crawl/hubs/decorators.html +141 -69
  22. package/docs/crawl/hubs/remote-data.html +141 -69
  23. package/docs/index.html +2 -2
  24. package/docs/llms-full.txt +203 -149
  25. package/docs/llms.txt +4 -4
  26. package/docs/src/core/components/functional/queue/queue.md +0 -0
  27. package/docs/src/core/components/ui/button/button.md +0 -0
  28. package/docs/src/docs/_decorators/get.md +55 -81
  29. package/docs/src/docs/_decorators/patch.md +36 -25
  30. package/docs/src/docs/_decorators/post.md +71 -62
  31. package/docs/src/docs/_decorators/put.md +37 -24
  32. package/docs/src/docs/_getting-started/ai-agents.md +24 -4
  33. package/docs/src/docs/search/docs-search.json +151 -1
  34. package/docs/src/tsconfig.json +3 -0
  35. package/package.json +1 -1
  36. package/src/core/decorators/api.post.spec.ts +79 -1
  37. package/src/core/decorators/api.spec.ts +100 -1
  38. package/src/core/decorators/api.ts +252 -138
  39. package/src/decorators.ts +7 -0
  40. package/src/docs/_decorators/get.md +81 -80
  41. package/src/docs/_decorators/patch.md +36 -25
  42. package/src/docs/_decorators/post.md +99 -62
  43. package/src/docs/_decorators/put.md +37 -24
  44. package/src/docs/components/docs-demo-sources.ts +1 -6
  45. package/src/docs/example/decorators-demo-geo.ts +0 -21
  46. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +41 -132
  47. package/src/docs/search/docs-search.json +128 -133
  48. package/docs/assets/index-Bnp7gVaA.css +0 -1
@@ -4700,7 +4700,7 @@
4700
4700
  }
4701
4701
  },
4702
4702
  {
4703
- "search": "Loads data through API.getDetailed. The decorated property is ApiResult<T> | null: request, response (or null for dataProvider(...) resolution without HTTP), and typed result.\n",
4703
+ "search": "@get loads data and stores the result in an ApiResult<T> | null property.\n",
4704
4704
  "files": {
4705
4705
  "docs/_decorators/get.md": {
4706
4706
  "title": "@get",
@@ -4715,14 +4715,14 @@
4715
4715
  }
4716
4716
  },
4717
4717
  {
4718
- "search": "Pass an Endpoint<T> as the first argument. Import get and ApiResult from @supersoniks/concorde/decorators, and Endpoint from @supersoniks/concorde/utils/endpoint.\n",
4718
+ "search": "The first argument is always an\nEndpoint<T>. API configuration is read\nfrom the HTML scope (serviceURL, token, etc.), so the component is usually\nplaced below an element that provides this configuration.\n",
4719
4719
  "files": {
4720
4720
  "docs/_decorators/get.md": {
4721
4721
  "title": "@get",
4722
4722
  "hashes": {
4723
- "get": {
4723
+ "minimal-usage": {
4724
4724
  "count": 1,
4725
- "title": "",
4725
+ "title": "Minimal usage",
4726
4726
  "type": "paragraph"
4727
4727
  }
4728
4728
  }
@@ -4730,14 +4730,14 @@
4730
4730
  }
4731
4731
  },
4732
4732
  {
4733
- "search": "${prop} on the endpoint or config key is resolved on the host. While a placeholder is null or undefined, no GET runs. Optional skipEmptyPlaceholder: true also blocks "" (empty string only). Details: Dynamic path placeholders.\n",
4733
+ "search": "Keep the decorator in a constant to access refetch(component). Refetch only\ntargets the instance passed as the argument, even before it has received a\nresult.\n",
4734
4734
  "files": {
4735
4735
  "docs/_decorators/get.md": {
4736
4736
  "title": "@get",
4737
4737
  "hashes": {
4738
- "dynamic-path": {
4738
+ "from-the-component": {
4739
4739
  "count": 1,
4740
- "title": "Dynamic path",
4740
+ "title": "From the component",
4741
4741
  "type": "paragraph"
4742
4742
  }
4743
4743
  }
@@ -4745,14 +4745,14 @@
4745
4745
  }
4746
4746
  },
4747
4747
  {
4748
- "search": "Pass as the second argument (scoped config) or third (with a configuration key). Same shape as send decorators where applicable:\n",
4748
+ "search": "The refetch can decorate a local method. The default is after; if the\nmethod returns a Promise, the GET waits for its resolution.\n",
4749
4749
  "files": {
4750
4750
  "docs/_decorators/get.md": {
4751
4751
  "title": "@get",
4752
4752
  "hashes": {
4753
- "options-getoptions": {
4753
+ "from-a-method-decorator": {
4754
4754
  "count": 1,
4755
- "title": "Options (`GetOptions`)",
4755
+ "title": "From a method decorator",
4756
4756
  "type": "paragraph"
4757
4757
  }
4758
4758
  }
@@ -4760,14 +4760,14 @@
4760
4760
  }
4761
4761
  },
4762
4762
  {
4763
- "search": "Same pattern as @post: a publisher acts as a signal, independent of the response payload.\n",
4763
+ "search": "Use { when: "before" } when the GET must be scheduled before the method:\n",
4764
4764
  "files": {
4765
4765
  "docs/_decorators/get.md": {
4766
4766
  "title": "@get",
4767
4767
  "hashes": {
4768
- "manual-refetch-triggerkey": {
4768
+ "from-a-method-decorator": {
4769
4769
  "count": 1,
4770
- "title": "Manual refetch (`triggerKey`)",
4770
+ "title": "From a method decorator",
4771
4771
  "type": "paragraph"
4772
4772
  }
4773
4773
  }
@@ -4775,14 +4775,14 @@
4775
4775
  }
4776
4776
  },
4777
4777
  {
4778
- "search": "Prefer triggerKey over mutating the API configuration publisher when you only want to reload the same URL — no need to touch serviceURL, tokens, etc.\n",
4778
+ "search": "The method decorator adds an explicit trigger; changes to dynamic endpoint\nproperties and configuration publishers keep their existing automatic behavior.\n",
4779
4779
  "files": {
4780
4780
  "docs/_decorators/get.md": {
4781
4781
  "title": "@get",
4782
4782
  "hashes": {
4783
- "manual-refetch-triggerkey": {
4783
+ "from-a-method-decorator": {
4784
4784
  "count": 1,
4785
- "title": "Manual refetch (`triggerKey`)",
4785
+ "title": "From a method decorator",
4786
4786
  "type": "paragraph"
4787
4787
  }
4788
4788
  }
@@ -4790,14 +4790,14 @@
4790
4790
  }
4791
4791
  },
4792
4792
  {
4793
- "search": "The docs mock adds an X-Fetched-At response header on /docs-mock-api/geo/communes so live demos can show when the last fetch happened (response.headers.get("X-Fetched-At")).\n",
4793
+ "search": "Options are the second argument, or the third argument when an API\nconfiguration key is provided.\n",
4794
4794
  "files": {
4795
4795
  "docs/_decorators/get.md": {
4796
4796
  "title": "@get",
4797
4797
  "hashes": {
4798
- "manual-refetch-triggerkey": {
4798
+ "options-getoptions": {
4799
4799
  "count": 1,
4800
- "title": "Manual refetch (`triggerKey`)",
4800
+ "title": "Options (`GetOptions`)",
4801
4801
  "type": "paragraph"
4802
4802
  }
4803
4803
  }
@@ -4805,14 +4805,14 @@
4805
4805
  }
4806
4806
  },
4807
4807
  {
4808
- "search": "Same demo service as sonic-queue (/docs-mock-api/geo/). Publisher setup lives in decorators-demo-geo.ts and decorators-demo-subscribe-publish-get-demos.ts.\n",
4808
+ "search": "With a configuration key, use:\n",
4809
4809
  "files": {
4810
4810
  "docs/_decorators/get.md": {
4811
4811
  "title": "@get",
4812
4812
  "hashes": {
4813
- "minimal-example": {
4813
+ "options-getoptions": {
4814
4814
  "count": 1,
4815
- "title": "Minimal example",
4815
+ "title": "Options (`GetOptions`)",
4816
4816
  "type": "paragraph"
4817
4817
  }
4818
4818
  }
@@ -4820,29 +4820,24 @@
4820
4820
  }
4821
4821
  },
4822
4822
  {
4823
- "search": "@get with triggerKey — refresh button + X-Fetched-At timestamp in the UI:\n",
4823
+ "search": "See Dynamic path placeholders for\ndynamic path details.\n",
4824
4824
  "files": {
4825
4825
  "docs/_decorators/get.md": {
4826
4826
  "title": "@get",
4827
4827
  "hashes": {
4828
- "live-demos": {
4828
+ "when-the-get-runs-again": {
4829
4829
  "count": 1,
4830
- "title": "Live demos",
4830
+ "title": "When the GET runs again",
4831
4831
  "type": "paragraph"
4832
4832
  }
4833
4833
  }
4834
- }
4835
- }
4836
- },
4837
- {
4838
- "search": "Dynamic config and endpoint path. Manual refetch is triggered from a separate component (same triggerKey publisher):\n",
4839
- "files": {
4840
- "docs/_decorators/get.md": {
4841
- "title": "@get",
4834
+ },
4835
+ "docs/_decorators/post.md": {
4836
+ "title": "@post",
4842
4837
  "hashes": {
4843
- "live-demos": {
4838
+ "options-postoptions": {
4844
4839
  "count": 1,
4845
- "title": "Live demos",
4840
+ "title": "Options (`PostOptions`)",
4846
4841
  "type": "paragraph"
4847
4842
  }
4848
4843
  }
@@ -4850,14 +4845,14 @@
4850
4845
  }
4851
4846
  },
4852
4847
  {
4853
- "search": "Scoped @get with @publish / @subscribe on the payload (see @publish and @subscribe) — wrap under an ancestor with serviceURL="/docs-mock-api/geo/":\n",
4848
+ "search": "See @post,\n@put, and\n@patch for write operations.\n",
4854
4849
  "files": {
4855
4850
  "docs/_decorators/get.md": {
4856
4851
  "title": "@get",
4857
4852
  "hashes": {
4858
- "live-demos": {
4853
+ "demos": {
4859
4854
  "count": 1,
4860
- "title": "Live demos",
4855
+ "title": "Demos",
4861
4856
  "type": "paragraph"
4862
4857
  }
4863
4858
  }
@@ -4865,14 +4860,14 @@
4865
4860
  }
4866
4861
  },
4867
4862
  {
4868
- "search": "Stale responses are ignored if the path or generation changed before the request finished.\n",
4863
+ "search": "External invalidation is currently available through triggerKey; it is kept\nout of the main usage examples.\n",
4869
4864
  "files": {
4870
4865
  "docs/_decorators/get.md": {
4871
4866
  "title": "@get",
4872
4867
  "hashes": {
4873
- "live-demos": {
4868
+ "advanced": {
4874
4869
  "count": 1,
4875
- "title": "Live demos",
4870
+ "title": "Advanced",
4876
4871
  "type": "paragraph"
4877
4872
  }
4878
4873
  }
@@ -4880,9 +4875,9 @@
4880
4875
  "docs/_decorators/post.md": {
4881
4876
  "title": "@post",
4882
4877
  "hashes": {
4883
- "live-demos": {
4878
+ "advanced": {
4884
4879
  "count": 1,
4885
- "title": "Live demos",
4880
+ "title": "Advanced",
4886
4881
  "type": "paragraph"
4887
4882
  }
4888
4883
  }
@@ -5790,7 +5785,7 @@
5790
5785
  }
5791
5786
  },
5792
5787
  {
5793
- "search": "Sends data through API.patchDetailed. Same model as @post: decorated property is ApiResult<T> | null (request, response, result).\n",
5788
+ "search": "@patch applies a partial update with the body from a publisher. It uses the\nsame model as @post:\nEndpoint<T>, DataProviderKey<B>, ApiResult<T>, options, and the\nsend(component) handle.\n",
5794
5789
  "files": {
5795
5790
  "docs/_decorators/patch.md": {
5796
5791
  "title": "@patch",
@@ -5805,14 +5800,24 @@
5805
5800
  }
5806
5801
  },
5807
5802
  {
5808
- "search": "Pass an Endpoint<T> and a DataProviderKey for the request body. Import patch and ApiResult from @supersoniks/concorde/decorators.\n",
5803
+ "search": "To run the operation again from the component:\n",
5809
5804
  "files": {
5810
5805
  "docs/_decorators/patch.md": {
5811
5806
  "title": "@patch",
5812
5807
  "hashes": {
5813
- "patch": {
5808
+ "minimal-usage": {
5814
5809
  "count": 1,
5815
- "title": "",
5810
+ "title": "Minimal usage",
5811
+ "type": "paragraph"
5812
+ }
5813
+ }
5814
+ },
5815
+ "docs/_decorators/put.md": {
5816
+ "title": "@put",
5817
+ "hashes": {
5818
+ "minimal-usage": {
5819
+ "count": 1,
5820
+ "title": "Minimal usage",
5816
5821
  "type": "paragraph"
5817
5822
  }
5818
5823
  }
@@ -5820,14 +5825,29 @@
5820
5825
  }
5821
5826
  },
5822
5827
  {
5823
- "search": "Same as @post / @get: scoped HTML.getApiConfiguration(host) or DataProviderKey<APIConfiguration> as third argument.\n",
5828
+ "search": "The PATCH is also sent automatically when the body mutates, unless\nautoPostOnBodyMutation: false is set. The available options are described in\n@post:\n",
5824
5829
  "files": {
5825
5830
  "docs/_decorators/patch.md": {
5826
5831
  "title": "@patch",
5827
5832
  "hashes": {
5828
- "configuration": {
5833
+ "minimal-usage": {
5829
5834
  "count": 1,
5830
- "title": "Configuration",
5835
+ "title": "Minimal usage",
5836
+ "type": "paragraph"
5837
+ }
5838
+ }
5839
+ }
5840
+ }
5841
+ },
5842
+ {
5843
+ "search": "Pass explicit API configuration as the third argument:\n",
5844
+ "files": {
5845
+ "docs/_decorators/patch.md": {
5846
+ "title": "@patch",
5847
+ "hashes": {
5848
+ "minimal-usage": {
5849
+ "count": 1,
5850
+ "title": "Minimal usage",
5831
5851
  "type": "paragraph"
5832
5852
  }
5833
5853
  }
@@ -5835,9 +5855,9 @@
5835
5855
  "docs/_decorators/put.md": {
5836
5856
  "title": "@put",
5837
5857
  "hashes": {
5838
- "configuration": {
5858
+ "minimal-usage": {
5839
5859
  "count": 1,
5840
- "title": "Configuration",
5860
+ "title": "Minimal usage",
5841
5861
  "type": "paragraph"
5842
5862
  }
5843
5863
  }
@@ -5845,24 +5865,29 @@
5845
5865
  }
5846
5866
  },
5847
5867
  {
5848
- "search": "Same shape as PostOptions on @post (ApiSendOptions): refetchEveryMs, skipIfBodyMissing, autoPostOnBodyMutation, triggerKey, skipEmptyPlaceholder. See Dynamic path placeholders for ${sessionId} and empty-string behaviour.\n",
5868
+ "search": "@post",
5849
5869
  "files": {
5850
- "docs/_decorators/patch.md": {
5851
- "title": "@patch",
5870
+ "docs/_decorators/post.md": {
5871
+ "title": "@post",
5852
5872
  "hashes": {
5853
- "options-patchoptions": {
5873
+ "post": {
5854
5874
  "count": 1,
5855
- "title": "Options (`PatchOptions`)",
5856
- "type": "paragraph"
5875
+ "title": "",
5876
+ "type": "page"
5857
5877
  }
5858
5878
  }
5859
- },
5860
- "docs/_decorators/put.md": {
5861
- "title": "@put",
5879
+ }
5880
+ }
5881
+ },
5882
+ {
5883
+ "search": "@post sends the contents of a publisher and stores the response in an\nApiResult<T> | null property.\n",
5884
+ "files": {
5885
+ "docs/_decorators/post.md": {
5886
+ "title": "@post",
5862
5887
  "hashes": {
5863
- "options-putoptions": {
5888
+ "post": {
5864
5889
  "count": 1,
5865
- "title": "Options (`PutOptions`)",
5890
+ "title": "",
5866
5891
  "type": "paragraph"
5867
5892
  }
5868
5893
  }
@@ -5870,14 +5895,14 @@
5870
5895
  }
5871
5896
  },
5872
5897
  {
5873
- "search": "@patch(\n new Endpoint<Resource, { resourceId: string }>("resources/${resourceId}"),\n patchBodyKey,\n { skipEmptyPlaceholder: true },\n)\n@state()\npayload?: ApiResult<Resource> | null;\n \n\n",
5898
+ "search": "Pass an Endpoint<T> and a DataProviderKey<B> for the request body.\n",
5874
5899
  "files": {
5875
- "docs/_decorators/patch.md": {
5876
- "title": "@patch",
5900
+ "docs/_decorators/post.md": {
5901
+ "title": "@post",
5877
5902
  "hashes": {
5878
- "example": {
5903
+ "minimal-usage": {
5879
5904
  "count": 1,
5880
- "title": "Example",
5905
+ "title": "Minimal usage",
5881
5906
  "type": "paragraph"
5882
5907
  }
5883
5908
  }
@@ -5885,29 +5910,29 @@
5885
5910
  }
5886
5911
  },
5887
5912
  {
5888
- "search": "@post",
5913
+ "search": "The current body is read from userBodyKey. By default, the POST is sent when\nthe component connects and after each body mutation. Mutations in the same\nframe are coalesced into one request.\n",
5889
5914
  "files": {
5890
5915
  "docs/_decorators/post.md": {
5891
5916
  "title": "@post",
5892
5917
  "hashes": {
5893
- "post": {
5918
+ "minimal-usage": {
5894
5919
  "count": 1,
5895
- "title": "",
5896
- "type": "page"
5920
+ "title": "Minimal usage",
5921
+ "type": "paragraph"
5897
5922
  }
5898
5923
  }
5899
5924
  }
5900
5925
  }
5901
5926
  },
5902
5927
  {
5903
- "search": "Sends data through API.postDetailed. The decorated property is ApiResult<T> | null: request, response, and typed result.\n",
5928
+ "search": "API configuration is read from the HTML scope, as with\n@get.\n",
5904
5929
  "files": {
5905
5930
  "docs/_decorators/post.md": {
5906
5931
  "title": "@post",
5907
5932
  "hashes": {
5908
- "post": {
5933
+ "minimal-usage": {
5909
5934
  "count": 1,
5910
- "title": "",
5935
+ "title": "Minimal usage",
5911
5936
  "type": "paragraph"
5912
5937
  }
5913
5938
  }
@@ -5915,14 +5940,14 @@
5915
5940
  }
5916
5941
  },
5917
5942
  {
5918
- "search": "Pass an Endpoint<T> as the first argument and a DataProviderKey for the request body as the second. Import post and ApiResult from @supersoniks/concorde/decorators, and Endpoint from @supersoniks/concorde/utils/endpoint.\n",
5943
+ "search": "Keep the decorator to access send(component). The body is read again when the\noperation runs.\n",
5919
5944
  "files": {
5920
5945
  "docs/_decorators/post.md": {
5921
5946
  "title": "@post",
5922
5947
  "hashes": {
5923
- "post": {
5948
+ "from-the-component": {
5924
5949
  "count": 1,
5925
- "title": "",
5950
+ "title": "From the component",
5926
5951
  "type": "paragraph"
5927
5952
  }
5928
5953
  }
@@ -5930,14 +5955,14 @@
5930
5955
  }
5931
5956
  },
5932
5957
  {
5933
- "search": "Same as @get: scoped HTML.getApiConfiguration(host) by default, or DataProviderKey<APIConfiguration> as third argument. See API configuration for mock demos.\n",
5958
+ "search": "send() is useful for “Save” or “Retry” buttons. It can repeat an operation\nwith side effects.\n",
5934
5959
  "files": {
5935
5960
  "docs/_decorators/post.md": {
5936
5961
  "title": "@post",
5937
5962
  "hashes": {
5938
- "configuration": {
5963
+ "from-the-component": {
5939
5964
  "count": 1,
5940
- "title": "Configuration",
5965
+ "title": "From the component",
5941
5966
  "type": "paragraph"
5942
5967
  }
5943
5968
  }
@@ -5945,14 +5970,14 @@
5945
5970
  }
5946
5971
  },
5947
5972
  {
5948
- "search": "Mock service: POST /docs-mock-api/api/register (same route as sonic-submit demos). Publisher setup lives in decorators-demo-post.ts.\n",
5973
+ "search": "The send action can decorate a local method. It runs after the method by\ndefault and waits for an eventual Promise to resolve:\n",
5949
5974
  "files": {
5950
5975
  "docs/_decorators/post.md": {
5951
5976
  "title": "@post",
5952
5977
  "hashes": {
5953
- "minimal-example": {
5978
+ "from-a-method-decorator": {
5954
5979
  "count": 1,
5955
- "title": "Minimal example",
5980
+ "title": "From a method decorator",
5956
5981
  "type": "paragraph"
5957
5982
  }
5958
5983
  }
@@ -5960,14 +5985,14 @@
5960
5985
  }
5961
5986
  },
5962
5987
  {
5963
- "search": "@post(\n new Endpoint<SyncResponse, { sessionId: string }>("sessions/${sessionId}/sync"),\n syncRequest,\n { triggerKey: syncTrigger },\n)\n@state()\npayload?: ApiResult<SyncResponse> | null;\n \n\n",
5988
+ "search": "Use { when: "before" } when the body must be sent before the method runs:\n",
5964
5989
  "files": {
5965
5990
  "docs/_decorators/post.md": {
5966
5991
  "title": "@post",
5967
5992
  "hashes": {
5968
- "minimal-example": {
5993
+ "from-a-method-decorator": {
5969
5994
  "count": 1,
5970
- "title": "Minimal example",
5995
+ "title": "From a method decorator",
5971
5996
  "type": "paragraph"
5972
5997
  }
5973
5998
  }
@@ -5975,14 +6000,14 @@
5975
6000
  }
5976
6001
  },
5977
6002
  {
5978
- "search": "Dynamic endpoint path — changing sessionId on the host re-runs the POST (POST /docs-mock-api/api/sessions/{id}/sync):\n",
6003
+ "search": "The method decorator adds an explicit send. If the method also mutates the body\npublisher, set autoPostOnBodyMutation: false when the decorated method must\nbe the only trigger.\n",
5979
6004
  "files": {
5980
6005
  "docs/_decorators/post.md": {
5981
6006
  "title": "@post",
5982
6007
  "hashes": {
5983
- "live-demos": {
6008
+ "from-a-method-decorator": {
5984
6009
  "count": 1,
5985
- "title": "Live demos",
6010
+ "title": "From a method decorator",
5986
6011
  "type": "paragraph"
5987
6012
  }
5988
6013
  }
@@ -5990,14 +6015,14 @@
5990
6015
  }
5991
6016
  },
5992
6017
  {
5993
- "search": "@post + @publish on the same property (see @publish):\n",
6018
+ "search": "Options are the third argument, or the fourth argument when a configuration key\nis provided.\n",
5994
6019
  "files": {
5995
6020
  "docs/_decorators/post.md": {
5996
6021
  "title": "@post",
5997
6022
  "hashes": {
5998
- "live-demos": {
6023
+ "options-postoptions": {
5999
6024
  "count": 1,
6000
- "title": "Live demos",
6025
+ "title": "Options (`PostOptions`)",
6001
6026
  "type": "paragraph"
6002
6027
  }
6003
6028
  }
@@ -6005,14 +6030,14 @@
6005
6030
  }
6006
6031
  },
6007
6032
  {
6008
- "search": "Note: plusieurs composants @post sur la même page qui partagent le même bodyKey enverront chacun une requête à chaque mutation du body — utiliser une clé par composant (voir les deux démos live ci-dessus).\n",
6033
+ "search": "With a configuration key:\n",
6009
6034
  "files": {
6010
6035
  "docs/_decorators/post.md": {
6011
6036
  "title": "@post",
6012
6037
  "hashes": {
6013
- "live-demos": {
6038
+ "options-postoptions": {
6014
6039
  "count": 1,
6015
- "title": "Live demos",
6040
+ "title": "Options (`PostOptions`)",
6016
6041
  "type": "paragraph"
6017
6042
  }
6018
6043
  }
@@ -6020,14 +6045,14 @@
6020
6045
  }
6021
6046
  },
6022
6047
  {
6023
- "search": "Path placeholders (${sessionId}, …): Dynamic path placeholders.\n",
6048
+ "search": "See @put and\n@patch: they use the same model with a\ndifferent HTTP method.\n",
6024
6049
  "files": {
6025
6050
  "docs/_decorators/post.md": {
6026
6051
  "title": "@post",
6027
6052
  "hashes": {
6028
- "live-demos": {
6053
+ "demos": {
6029
6054
  "count": 1,
6030
- "title": "Live demos",
6055
+ "title": "Demos",
6031
6056
  "type": "paragraph"
6032
6057
  }
6033
6058
  }
@@ -6110,22 +6135,7 @@
6110
6135
  }
6111
6136
  },
6112
6137
  {
6113
- "search": "Sends data through API.putDetailed. Same model as @post: decorated property is ApiResult<T> | null (request, response, result).\n",
6114
- "files": {
6115
- "docs/_decorators/put.md": {
6116
- "title": "@put",
6117
- "hashes": {
6118
- "put": {
6119
- "count": 1,
6120
- "title": "",
6121
- "type": "paragraph"
6122
- }
6123
- }
6124
- }
6125
- }
6126
- },
6127
- {
6128
- "search": "Pass an Endpoint<T> and a DataProviderKey for the request body. Import put and ApiResult from @supersoniks/concorde/decorators.\n",
6138
+ "search": "@put replaces a resource with the body from a publisher. It uses exactly the\nsame model as @post:\nEndpoint<T>, DataProviderKey<B>, ApiResult<T>, options, and the\nsend(component) handle.\n",
6129
6139
  "files": {
6130
6140
  "docs/_decorators/put.md": {
6131
6141
  "title": "@put",
@@ -6140,29 +6150,14 @@
6140
6150
  }
6141
6151
  },
6142
6152
  {
6143
- "search": "@put(new Endpoint<Resource, { resourceId: string }>("resources/${resourceId}"), bodyKey)\n@state()\npayload?: ApiResult<Resource> | null;\n \n\n",
6153
+ "search": "The PUT is also sent automatically when the body mutates, unless\nautoPostOnBodyMutation: false is set. See\n@post for the option details:\n",
6144
6154
  "files": {
6145
6155
  "docs/_decorators/put.md": {
6146
6156
  "title": "@put",
6147
6157
  "hashes": {
6148
- "example": {
6158
+ "minimal-usage": {
6149
6159
  "count": 1,
6150
- "title": "Example",
6151
- "type": "paragraph"
6152
- }
6153
- }
6154
- }
6155
- }
6156
- },
6157
- {
6158
- "search": "Changing resourceId on the host re-runs the PUT when the path becomes ready — see Dynamic path placeholders.\n",
6159
- "files": {
6160
- "docs/_decorators/put.md": {
6161
- "title": "@put",
6162
- "hashes": {
6163
- "example": {
6164
- "count": 1,
6165
- "title": "Example",
6160
+ "title": "Minimal usage",
6166
6161
  "type": "paragraph"
6167
6162
  }
6168
6163
  }