@supersoniks/concorde 4.9.91 → 4.9.92

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 (37) hide show
  1. package/build-infos.json +1 -1
  2. package/concorde-core.bundle.js +156 -156
  3. package/concorde-core.es.js +2348 -2331
  4. package/dist/concorde-core.bundle.js +156 -156
  5. package/dist/concorde-core.es.js +2348 -2331
  6. package/dist/js/core/decorators/api.js +64 -51
  7. package/dist/js/core/decorators/api.js.map +1 -1
  8. package/dist/types/core/decorators/api.d.ts +10 -5
  9. package/dist/types/core/decorators/api.d.ts.map +1 -1
  10. package/docs/assets/{index-BL6WVF7g.css → index-D2Q3JyQ6.css} +1 -1
  11. package/docs/assets/{index-DVn8AeyA.js → index-DURr6O71.js} +466 -568
  12. package/docs/crawl/docs/_decorators/get.html +35 -10
  13. package/docs/crawl/docs/_decorators/patch.html +13 -5
  14. package/docs/crawl/docs/_decorators/post.html +39 -10
  15. package/docs/crawl/docs/_decorators/put.html +13 -5
  16. package/docs/crawl/hubs/decorators.html +43 -40
  17. package/docs/crawl/hubs/remote-data.html +43 -40
  18. package/docs/index.html +2 -2
  19. package/docs/llms-full.txt +98 -23
  20. package/docs/llms.txt +1 -1
  21. package/docs/src/docs/_decorators/get.md +39 -5
  22. package/docs/src/docs/_decorators/patch.md +8 -3
  23. package/docs/src/docs/_decorators/post.md +39 -6
  24. package/docs/src/docs/_decorators/put.md +8 -3
  25. package/docs/src/docs/search/docs-search.json +103 -183
  26. package/docs/src/tsconfig.json +268 -268
  27. package/package.json +1 -1
  28. package/src/core/decorators/api.post.spec.ts +2 -2
  29. package/src/core/decorators/api.spec.ts +47 -6
  30. package/src/core/decorators/api.ts +100 -64
  31. package/src/docs/_decorators/get.md +12 -5
  32. package/src/docs/_decorators/patch.md +7 -2
  33. package/src/docs/_decorators/post.md +12 -7
  34. package/src/docs/_decorators/put.md +7 -2
  35. package/src/docs/components/docs-demo-sources.ts +8 -8
  36. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +2 -2
  37. package/src/docs/search/docs-search.json +2 -2
@@ -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 optional ApiResult<T> property.\nThe property is undefined until a result is available.\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": "The decorator returned by get(...) can be kept as a typed handle. Its refetch(component) action targets only the connected component instance and works even before the first ApiResult exists:\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
- "local-refetch-handle": {
4753
+ "from-a-method-decorator": {
4754
4754
  "count": 1,
4755
- "title": "Local refetch handle",
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": "The inline form remains unchanged:\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
- "local-refetch-handle": {
4768
+ "from-a-method-decorator": {
4769
4769
  "count": 1,
4770
- "title": "Local refetch handle",
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": "For a refetch triggered from another component, keep using triggerKey and invalidate().\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
- "local-refetch-handle": {
4783
+ "from-a-method-decorator": {
4784
4784
  "count": 1,
4785
- "title": "Local refetch handle",
4785
+ "title": "From a method decorator",
4786
4786
  "type": "paragraph"
4787
4787
  }
4788
4788
  }
@@ -4790,7 +4790,7 @@
4790
4790
  }
4791
4791
  },
4792
4792
  {
4793
- "search": "Pass as the second argument (scoped config) or third (with a configuration key). Same shape as send decorators where applicable:\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",
@@ -4805,59 +4805,14 @@
4805
4805
  }
4806
4806
  },
4807
4807
  {
4808
- "search": "Same pattern as @post: a publisher acts as a signal, independent of the response payload.\n",
4809
- "files": {
4810
- "docs/_decorators/get.md": {
4811
- "title": "@get",
4812
- "hashes": {
4813
- "manual-refetch-triggerkey": {
4814
- "count": 1,
4815
- "title": "Manual refetch (`triggerKey`)",
4816
- "type": "paragraph"
4817
- }
4818
- }
4819
- }
4820
- }
4821
- },
4822
- {
4823
- "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",
4808
+ "search": "With a configuration key, use:\n",
4824
4809
  "files": {
4825
4810
  "docs/_decorators/get.md": {
4826
4811
  "title": "@get",
4827
4812
  "hashes": {
4828
- "manual-refetch-triggerkey": {
4829
- "count": 1,
4830
- "title": "Manual refetch (`triggerKey`)",
4831
- "type": "paragraph"
4832
- }
4833
- }
4834
- }
4835
- }
4836
- },
4837
- {
4838
- "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",
4839
- "files": {
4840
- "docs/_decorators/get.md": {
4841
- "title": "@get",
4842
- "hashes": {
4843
- "manual-refetch-triggerkey": {
4844
- "count": 1,
4845
- "title": "Manual refetch (`triggerKey`)",
4846
- "type": "paragraph"
4847
- }
4848
- }
4849
- }
4850
- }
4851
- },
4852
- {
4853
- "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",
4854
- "files": {
4855
- "docs/_decorators/get.md": {
4856
- "title": "@get",
4857
- "hashes": {
4858
- "minimal-example": {
4813
+ "options-getoptions": {
4859
4814
  "count": 1,
4860
- "title": "Minimal example",
4815
+ "title": "Options (`GetOptions`)",
4861
4816
  "type": "paragraph"
4862
4817
  }
4863
4818
  }
@@ -4865,29 +4820,24 @@
4865
4820
  }
4866
4821
  },
4867
4822
  {
4868
- "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",
4869
4824
  "files": {
4870
4825
  "docs/_decorators/get.md": {
4871
4826
  "title": "@get",
4872
4827
  "hashes": {
4873
- "live-demos": {
4828
+ "when-the-get-runs-again": {
4874
4829
  "count": 1,
4875
- "title": "Live demos",
4830
+ "title": "When the GET runs again",
4876
4831
  "type": "paragraph"
4877
4832
  }
4878
4833
  }
4879
- }
4880
- }
4881
- },
4882
- {
4883
- "search": "Dynamic config and endpoint path. Manual refetch is triggered from a separate component (same triggerKey publisher):\n",
4884
- "files": {
4885
- "docs/_decorators/get.md": {
4886
- "title": "@get",
4834
+ },
4835
+ "docs/_decorators/post.md": {
4836
+ "title": "@post",
4887
4837
  "hashes": {
4888
- "live-demos": {
4838
+ "options-postoptions": {
4889
4839
  "count": 1,
4890
- "title": "Live demos",
4840
+ "title": "Options (`PostOptions`)",
4891
4841
  "type": "paragraph"
4892
4842
  }
4893
4843
  }
@@ -4895,14 +4845,14 @@
4895
4845
  }
4896
4846
  },
4897
4847
  {
4898
- "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",
4899
4849
  "files": {
4900
4850
  "docs/_decorators/get.md": {
4901
4851
  "title": "@get",
4902
4852
  "hashes": {
4903
- "live-demos": {
4853
+ "demos": {
4904
4854
  "count": 1,
4905
- "title": "Live demos",
4855
+ "title": "Demos",
4906
4856
  "type": "paragraph"
4907
4857
  }
4908
4858
  }
@@ -4910,14 +4860,14 @@
4910
4860
  }
4911
4861
  },
4912
4862
  {
4913
- "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",
4914
4864
  "files": {
4915
4865
  "docs/_decorators/get.md": {
4916
4866
  "title": "@get",
4917
4867
  "hashes": {
4918
- "live-demos": {
4868
+ "advanced": {
4919
4869
  "count": 1,
4920
- "title": "Live demos",
4870
+ "title": "Advanced",
4921
4871
  "type": "paragraph"
4922
4872
  }
4923
4873
  }
@@ -4925,9 +4875,9 @@
4925
4875
  "docs/_decorators/post.md": {
4926
4876
  "title": "@post",
4927
4877
  "hashes": {
4928
- "live-demos": {
4878
+ "advanced": {
4929
4879
  "count": 1,
4930
- "title": "Live demos",
4880
+ "title": "Advanced",
4931
4881
  "type": "paragraph"
4932
4882
  }
4933
4883
  }
@@ -5835,7 +5785,7 @@
5835
5785
  }
5836
5786
  },
5837
5787
  {
5838
- "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",
5839
5789
  "files": {
5840
5790
  "docs/_decorators/patch.md": {
5841
5791
  "title": "@patch",
@@ -5850,14 +5800,24 @@
5850
5800
  }
5851
5801
  },
5852
5802
  {
5853
- "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",
5854
5804
  "files": {
5855
5805
  "docs/_decorators/patch.md": {
5856
5806
  "title": "@patch",
5857
5807
  "hashes": {
5858
- "patch": {
5808
+ "minimal-usage": {
5859
5809
  "count": 1,
5860
- "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",
5861
5821
  "type": "paragraph"
5862
5822
  }
5863
5823
  }
@@ -5865,24 +5825,14 @@
5865
5825
  }
5866
5826
  },
5867
5827
  {
5868
- "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",
5869
5829
  "files": {
5870
5830
  "docs/_decorators/patch.md": {
5871
5831
  "title": "@patch",
5872
5832
  "hashes": {
5873
- "configuration": {
5833
+ "minimal-usage": {
5874
5834
  "count": 1,
5875
- "title": "Configuration",
5876
- "type": "paragraph"
5877
- }
5878
- }
5879
- },
5880
- "docs/_decorators/put.md": {
5881
- "title": "@put",
5882
- "hashes": {
5883
- "configuration": {
5884
- "count": 1,
5885
- "title": "Configuration",
5835
+ "title": "Minimal usage",
5886
5836
  "type": "paragraph"
5887
5837
  }
5888
5838
  }
@@ -5890,14 +5840,14 @@
5890
5840
  }
5891
5841
  },
5892
5842
  {
5893
- "search": "Same shape as PostOptions on @post (ApiSendOptions): refetchEveryMs, skipIfBodyMissing, autoPostOnBodyMutation, triggerKey, skipEmptyPlaceholder. See Dynamic path placeholders for ${sessionId} and empty-string behaviour.\n",
5843
+ "search": "Pass explicit API configuration as the third argument:\n",
5894
5844
  "files": {
5895
5845
  "docs/_decorators/patch.md": {
5896
5846
  "title": "@patch",
5897
5847
  "hashes": {
5898
- "options-patchoptions": {
5848
+ "minimal-usage": {
5899
5849
  "count": 1,
5900
- "title": "Options (`PatchOptions`)",
5850
+ "title": "Minimal usage",
5901
5851
  "type": "paragraph"
5902
5852
  }
5903
5853
  }
@@ -5905,9 +5855,9 @@
5905
5855
  "docs/_decorators/put.md": {
5906
5856
  "title": "@put",
5907
5857
  "hashes": {
5908
- "options-putoptions": {
5858
+ "minimal-usage": {
5909
5859
  "count": 1,
5910
- "title": "Options (`PutOptions`)",
5860
+ "title": "Minimal usage",
5911
5861
  "type": "paragraph"
5912
5862
  }
5913
5863
  }
@@ -5915,22 +5865,22 @@
5915
5865
  }
5916
5866
  },
5917
5867
  {
5918
- "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",
5868
+ "search": "@post",
5919
5869
  "files": {
5920
- "docs/_decorators/patch.md": {
5921
- "title": "@patch",
5870
+ "docs/_decorators/post.md": {
5871
+ "title": "@post",
5922
5872
  "hashes": {
5923
- "example": {
5873
+ "post": {
5924
5874
  "count": 1,
5925
- "title": "Example",
5926
- "type": "paragraph"
5875
+ "title": "",
5876
+ "type": "page"
5927
5877
  }
5928
5878
  }
5929
5879
  }
5930
5880
  }
5931
5881
  },
5932
5882
  {
5933
- "search": "@post",
5883
+ "search": "@post sends the contents of a publisher and stores the response in an\noptional ApiResult<T> property. The property is undefined until a result\nis available.\n",
5934
5884
  "files": {
5935
5885
  "docs/_decorators/post.md": {
5936
5886
  "title": "@post",
@@ -5938,21 +5888,21 @@
5938
5888
  "post": {
5939
5889
  "count": 1,
5940
5890
  "title": "",
5941
- "type": "page"
5891
+ "type": "paragraph"
5942
5892
  }
5943
5893
  }
5944
5894
  }
5945
5895
  }
5946
5896
  },
5947
5897
  {
5948
- "search": "Sends data through API.postDetailed. The decorated property is ApiResult<T> | null: request, response, and typed result.\n",
5898
+ "search": "Pass an Endpoint<T> and a DataProviderKey<B> for the request body.\n",
5949
5899
  "files": {
5950
5900
  "docs/_decorators/post.md": {
5951
5901
  "title": "@post",
5952
5902
  "hashes": {
5953
- "post": {
5903
+ "minimal-usage": {
5954
5904
  "count": 1,
5955
- "title": "",
5905
+ "title": "Minimal usage",
5956
5906
  "type": "paragraph"
5957
5907
  }
5958
5908
  }
@@ -5960,14 +5910,14 @@
5960
5910
  }
5961
5911
  },
5962
5912
  {
5963
- "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",
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",
5964
5914
  "files": {
5965
5915
  "docs/_decorators/post.md": {
5966
5916
  "title": "@post",
5967
5917
  "hashes": {
5968
- "post": {
5918
+ "minimal-usage": {
5969
5919
  "count": 1,
5970
- "title": "",
5920
+ "title": "Minimal usage",
5971
5921
  "type": "paragraph"
5972
5922
  }
5973
5923
  }
@@ -5975,14 +5925,14 @@
5975
5925
  }
5976
5926
  },
5977
5927
  {
5978
- "search": "Same as @get: scoped HTML.getApiConfiguration(host) by default, or DataProviderKey<APIConfiguration> as third argument. See API configuration for mock demos.\n",
5928
+ "search": "API configuration is read from the HTML scope, as with\n@get.\n",
5979
5929
  "files": {
5980
5930
  "docs/_decorators/post.md": {
5981
5931
  "title": "@post",
5982
5932
  "hashes": {
5983
- "configuration": {
5933
+ "minimal-usage": {
5984
5934
  "count": 1,
5985
- "title": "Configuration",
5935
+ "title": "Minimal usage",
5986
5936
  "type": "paragraph"
5987
5937
  }
5988
5938
  }
@@ -5990,14 +5940,14 @@
5990
5940
  }
5991
5941
  },
5992
5942
  {
5993
- "search": "The decorator returned by post(...) can be kept as a typed handle. Its send(component) action re-runs the POST with the current body publisher:\n",
5943
+ "search": "Keep the decorator to access send(component). The body is read again when the\noperation runs.\n",
5994
5944
  "files": {
5995
5945
  "docs/_decorators/post.md": {
5996
5946
  "title": "@post",
5997
5947
  "hashes": {
5998
- "local-send-handle": {
5948
+ "from-the-component": {
5999
5949
  "count": 1,
6000
- "title": "Local send handle",
5950
+ "title": "From the component",
6001
5951
  "type": "paragraph"
6002
5952
  }
6003
5953
  }
@@ -6005,14 +5955,14 @@
6005
5955
  }
6006
5956
  },
6007
5957
  {
6008
- "search": "send() is an explicit write operation. It is intentionally distinct from GET invalidation because replaying a POST, PUT, or PATCH can have side effects.\n",
5958
+ "search": "send() is useful for “Save” or “Retry” buttons. It can repeat an operation\nwith side effects.\n",
6009
5959
  "files": {
6010
5960
  "docs/_decorators/post.md": {
6011
5961
  "title": "@post",
6012
5962
  "hashes": {
6013
- "local-send-handle": {
5963
+ "from-the-component": {
6014
5964
  "count": 1,
6015
- "title": "Local send handle",
5965
+ "title": "From the component",
6016
5966
  "type": "paragraph"
6017
5967
  }
6018
5968
  }
@@ -6020,14 +5970,14 @@
6020
5970
  }
6021
5971
  },
6022
5972
  {
6023
- "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",
6024
5974
  "files": {
6025
5975
  "docs/_decorators/post.md": {
6026
5976
  "title": "@post",
6027
5977
  "hashes": {
6028
- "minimal-example": {
5978
+ "from-a-method-decorator": {
6029
5979
  "count": 1,
6030
- "title": "Minimal example",
5980
+ "title": "From a method decorator",
6031
5981
  "type": "paragraph"
6032
5982
  }
6033
5983
  }
@@ -6035,14 +5985,14 @@
6035
5985
  }
6036
5986
  },
6037
5987
  {
6038
- "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",
6039
5989
  "files": {
6040
5990
  "docs/_decorators/post.md": {
6041
5991
  "title": "@post",
6042
5992
  "hashes": {
6043
- "minimal-example": {
5993
+ "from-a-method-decorator": {
6044
5994
  "count": 1,
6045
- "title": "Minimal example",
5995
+ "title": "From a method decorator",
6046
5996
  "type": "paragraph"
6047
5997
  }
6048
5998
  }
@@ -6050,14 +6000,14 @@
6050
6000
  }
6051
6001
  },
6052
6002
  {
6053
- "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",
6054
6004
  "files": {
6055
6005
  "docs/_decorators/post.md": {
6056
6006
  "title": "@post",
6057
6007
  "hashes": {
6058
- "live-demos": {
6008
+ "from-a-method-decorator": {
6059
6009
  "count": 1,
6060
- "title": "Live demos",
6010
+ "title": "From a method decorator",
6061
6011
  "type": "paragraph"
6062
6012
  }
6063
6013
  }
@@ -6065,14 +6015,14 @@
6065
6015
  }
6066
6016
  },
6067
6017
  {
6068
- "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",
6069
6019
  "files": {
6070
6020
  "docs/_decorators/post.md": {
6071
6021
  "title": "@post",
6072
6022
  "hashes": {
6073
- "live-demos": {
6023
+ "options-postoptions": {
6074
6024
  "count": 1,
6075
- "title": "Live demos",
6025
+ "title": "Options (`PostOptions`)",
6076
6026
  "type": "paragraph"
6077
6027
  }
6078
6028
  }
@@ -6080,14 +6030,14 @@
6080
6030
  }
6081
6031
  },
6082
6032
  {
6083
- "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",
6084
6034
  "files": {
6085
6035
  "docs/_decorators/post.md": {
6086
6036
  "title": "@post",
6087
6037
  "hashes": {
6088
- "live-demos": {
6038
+ "options-postoptions": {
6089
6039
  "count": 1,
6090
- "title": "Live demos",
6040
+ "title": "Options (`PostOptions`)",
6091
6041
  "type": "paragraph"
6092
6042
  }
6093
6043
  }
@@ -6095,14 +6045,14 @@
6095
6045
  }
6096
6046
  },
6097
6047
  {
6098
- "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",
6099
6049
  "files": {
6100
6050
  "docs/_decorators/post.md": {
6101
6051
  "title": "@post",
6102
6052
  "hashes": {
6103
- "live-demos": {
6053
+ "demos": {
6104
6054
  "count": 1,
6105
- "title": "Live demos",
6055
+ "title": "Demos",
6106
6056
  "type": "paragraph"
6107
6057
  }
6108
6058
  }
@@ -6185,7 +6135,7 @@
6185
6135
  }
6186
6136
  },
6187
6137
  {
6188
- "search": "Sends data through API.putDetailed. Same model as @post: decorated property is ApiResult<T> | null (request, response, result).\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",
6189
6139
  "files": {
6190
6140
  "docs/_decorators/put.md": {
6191
6141
  "title": "@put",
@@ -6200,44 +6150,14 @@
6200
6150
  }
6201
6151
  },
6202
6152
  {
6203
- "search": "Pass an Endpoint<T> and a DataProviderKey for the request body. Import put and ApiResult from @supersoniks/concorde/decorators.\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",
6204
6154
  "files": {
6205
6155
  "docs/_decorators/put.md": {
6206
6156
  "title": "@put",
6207
6157
  "hashes": {
6208
- "put": {
6158
+ "minimal-usage": {
6209
6159
  "count": 1,
6210
- "title": "",
6211
- "type": "paragraph"
6212
- }
6213
- }
6214
- }
6215
- }
6216
- },
6217
- {
6218
- "search": "@put(new Endpoint<Resource, { resourceId: string }>("resources/${resourceId}"), bodyKey)\n@state()\npayload?: ApiResult<Resource> | null;\n \n\n",
6219
- "files": {
6220
- "docs/_decorators/put.md": {
6221
- "title": "@put",
6222
- "hashes": {
6223
- "example": {
6224
- "count": 1,
6225
- "title": "Example",
6226
- "type": "paragraph"
6227
- }
6228
- }
6229
- }
6230
- }
6231
- },
6232
- {
6233
- "search": "Changing resourceId on the host re-runs the PUT when the path becomes ready — see Dynamic path placeholders.\n",
6234
- "files": {
6235
- "docs/_decorators/put.md": {
6236
- "title": "@put",
6237
- "hashes": {
6238
- "example": {
6239
- "count": 1,
6240
- "title": "Example",
6160
+ "title": "Minimal usage",
6241
6161
  "type": "paragraph"
6242
6162
  }
6243
6163
  }