@fireproof/core 0.20.5-dev-preview-7 → 0.20.5-dev-preview-8

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 (83) hide show
  1. package/blockstore/loader.d.ts +2 -1
  2. package/blockstore/loader.d.ts.map +1 -1
  3. package/blockstore/loader.js +38 -8
  4. package/blockstore/loader.js.map +1 -1
  5. package/blockstore/store.js +1 -1
  6. package/blockstore/store.js.map +1 -1
  7. package/database.d.ts +0 -1
  8. package/database.d.ts.map +1 -1
  9. package/database.js +0 -1
  10. package/database.js.map +1 -1
  11. package/deno.json +2 -2
  12. package/ledger.d.ts +3 -2
  13. package/ledger.d.ts.map +1 -1
  14. package/ledger.js +7 -4
  15. package/ledger.js.map +1 -1
  16. package/package.json +3 -3
  17. package/protocols/cloud/msg-types.d.ts.map +1 -1
  18. package/protocols/cloud/msg-types.js.map +1 -1
  19. package/protocols/dashboard/index.d.ts +4 -0
  20. package/protocols/dashboard/index.d.ts.map +1 -0
  21. package/protocols/dashboard/index.js +4 -0
  22. package/protocols/dashboard/index.js.map +1 -0
  23. package/protocols/dashboard/msg-api.d.ts +11 -0
  24. package/protocols/dashboard/msg-api.d.ts.map +1 -0
  25. package/protocols/dashboard/msg-api.js +55 -0
  26. package/protocols/dashboard/msg-api.js.map +1 -0
  27. package/protocols/dashboard/msg-is.d.ts +39 -0
  28. package/protocols/dashboard/msg-is.d.ts.map +1 -0
  29. package/protocols/dashboard/msg-is.js +57 -0
  30. package/protocols/dashboard/msg-is.js.map +1 -0
  31. package/protocols/dashboard/msg-types.d.ts +404 -0
  32. package/protocols/dashboard/msg-types.d.ts.map +1 -0
  33. package/protocols/dashboard/msg-types.js +4 -0
  34. package/protocols/dashboard/msg-types.js.map +1 -0
  35. package/protocols/index.d.ts +1 -0
  36. package/protocols/index.d.ts.map +1 -1
  37. package/protocols/index.js +1 -0
  38. package/protocols/index.js.map +1 -1
  39. package/react/types.d.ts +20 -8
  40. package/react/types.d.ts.map +1 -1
  41. package/react/use-attach.d.ts +9 -4
  42. package/react/use-attach.d.ts.map +1 -1
  43. package/react/use-attach.js +143 -43
  44. package/react/use-attach.js.map +1 -1
  45. package/react/use-fireproof.js +2 -2
  46. package/react/use-fireproof.js.map +1 -1
  47. package/runtime/gateways/cloud/to-cloud.d.ts +19 -9
  48. package/runtime/gateways/cloud/to-cloud.d.ts.map +1 -1
  49. package/runtime/gateways/cloud/to-cloud.js +70 -59
  50. package/runtime/gateways/cloud/to-cloud.js.map +1 -1
  51. package/runtime/gateways/file/key-bag-file.d.ts +1 -0
  52. package/runtime/gateways/file/key-bag-file.d.ts.map +1 -1
  53. package/runtime/gateways/file/key-bag-file.js +12 -0
  54. package/runtime/gateways/file/key-bag-file.js.map +1 -1
  55. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +1 -1
  56. package/runtime/gateways/indexeddb/gateway-impl.js.map +1 -1
  57. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +1 -0
  58. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +1 -1
  59. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +6 -0
  60. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +1 -1
  61. package/runtime/key-bag-memory.d.ts +1 -0
  62. package/runtime/key-bag-memory.d.ts.map +1 -1
  63. package/runtime/key-bag-memory.js +7 -0
  64. package/runtime/key-bag-memory.js.map +1 -1
  65. package/runtime/key-bag.d.ts +3 -0
  66. package/runtime/key-bag.d.ts.map +1 -1
  67. package/runtime/key-bag.js +6 -0
  68. package/runtime/key-bag.js.map +1 -1
  69. package/tests/fireproof/attachable.test.ts +1 -1
  70. package/types.d.ts +1 -2
  71. package/types.d.ts.map +1 -1
  72. package/use-fireproof/iframe-strategy.d.ts +5 -4
  73. package/use-fireproof/iframe-strategy.d.ts.map +1 -1
  74. package/use-fireproof/iframe-strategy.js +4 -11
  75. package/use-fireproof/iframe-strategy.js.map +1 -1
  76. package/use-fireproof/index.d.ts +6 -2
  77. package/use-fireproof/index.d.ts.map +1 -1
  78. package/use-fireproof/index.js +21 -3
  79. package/use-fireproof/index.js.map +1 -1
  80. package/use-fireproof/redirect-strategy.d.ts +6 -4
  81. package/use-fireproof/redirect-strategy.d.ts.map +1 -1
  82. package/use-fireproof/redirect-strategy.js +103 -20
  83. package/use-fireproof/redirect-strategy.js.map +1 -1
@@ -1,31 +1,114 @@
1
- import { BuildURI, URI } from "@adviser/cement";
2
- import { sleep } from "@fireproof/core";
1
+ import { BuildURI } from "@adviser/cement";
2
+ import { ps } from "@fireproof/core";
3
3
  import { WebCtx } from "@fireproof/core/react";
4
+ import { decodeJwt } from "jose";
5
+ function overlayHtml(redirectLink) {
6
+ return `
7
+ <div class="fpOverlayContent">
8
+ <div class="fpCloseButton">&times;</div>
9
+ <a href="${redirectLink}" target="_blank">Redirect to Fireproof</a>
10
+ </div>
11
+ `;
12
+ }
13
+ const overlayCss = `
14
+ .fpContainer {
15
+ position: relative; /* Needed for absolute positioning of the overlay */
16
+ }
17
+
18
+ .fpOverlay {
19
+ display: none; /* Initially hidden */
20
+ position: fixed; /* Covers the whole viewport */
21
+ top: 0;
22
+ left: 0;
23
+ width: 100%;
24
+ height: 100%;
25
+ background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */
26
+ z-index: 1; /* Ensure it's on top of other content */
27
+ }
28
+
29
+ .fpOverlayContent {
30
+ position: absolute;
31
+ top: 50%;
32
+ left: 50%;
33
+ transform: translate(-50%, -50%); /* Center the content */
34
+ background-color: white;
35
+ color: black;
36
+ padding: 20px;
37
+ border-radius: 5px;
38
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
39
+ }
40
+
41
+ .fpCloseButton {
42
+ position: absolute;
43
+ top: 10px;
44
+ right: 15px;
45
+ font-size: 20px;
46
+ cursor: pointer;
47
+ }
48
+ `;
4
49
  export class RedirectStrategy {
5
- open(logger, deviceId, opts) {
50
+ open(sthis, logger, deviceId, opts) {
6
51
  const redirectCtx = opts.context.get(WebCtx);
7
52
  logger.Debug().Url(redirectCtx.dashboardURI).Msg("open redirect");
53
+ this.resultId = sthis.nextId().str;
8
54
  const url = BuildURI.from(redirectCtx.dashboardURI)
9
55
  .setParam("back_url", window.location.href)
10
- .setParam("local_ledger_name", deviceId)
11
- .toString();
12
- window.location.href = url;
13
- }
14
- async gatherToken(logger, opts) {
15
- const redirectCtx = opts.context.get(WebCtx);
16
- const uri = URI.from(window.location.href);
17
- const uriFpToken = uri.getParam(redirectCtx.tokenKey);
18
- if (uriFpToken) {
19
- redirectCtx.setToken(uriFpToken);
20
- logger.Debug().Any({ uriFpToken }).Msg("Token set");
21
- window.location.href = uri.build().delParam(redirectCtx.tokenKey).toString();
56
+ .setParam("result_id", this.resultId)
57
+ .setParam("local_ledger_name", deviceId);
58
+ if (opts.ledger) {
59
+ url.setParam("ledger", opts.ledger);
60
+ }
61
+ if (opts.tenant) {
62
+ url.setParam("tenant", opts.tenant);
63
+ }
64
+ let overlayNode = document.body.querySelector("#fpOverlay");
65
+ if (!overlayNode) {
66
+ const styleNode = document.createElement("style");
67
+ styleNode.innerHTML = overlayCss;
68
+ document.head.appendChild(styleNode);
69
+ overlayNode = document.createElement("div");
70
+ overlayNode.id = "fpOverlay";
71
+ overlayNode.className = "fpOverlay";
72
+ overlayNode.innerHTML = overlayHtml(url.toString());
73
+ document.body.appendChild(overlayNode);
74
+ overlayNode.querySelector(".fpCloseButton")?.addEventListener("click", () => {
75
+ if (overlayNode) {
76
+ overlayNode.style.display = overlayNode.style.display === "block" ? "none" : "block";
77
+ }
78
+ });
22
79
  }
23
- return redirectCtx.token();
80
+ overlayNode.style.display = "block";
24
81
  }
25
- async waitForToken(logger) {
26
- logger.Warn().Msg("waitForToken should not be called -- using redirect strategy");
27
- await sleep(100000);
28
- throw new Error("waitForToken not working on redirect strategy");
82
+ async tryToken(sthis, logger, opts) {
83
+ return this.currentToken;
84
+ }
85
+ async waitForToken(sthis, logger, deviceId, opts) {
86
+ if (!this.resultId) {
87
+ throw new Error("waitForToken not working on redirect strategy");
88
+ }
89
+ const webCtx = opts.context.get(WebCtx);
90
+ const resultId = this.resultId;
91
+ const dashApi = new ps.dashboard.Api(webCtx.tokenApiURI);
92
+ async function getTokenAndClaimsByResultId(resolve) {
93
+ const rWaitForToken = await dashApi.waitForToken({ resultId }, logger);
94
+ if (rWaitForToken.isErr()) {
95
+ return logger.Error().Err(rWaitForToken).Msg("Error fetching token").ResultError();
96
+ }
97
+ const waitedTokenByResultId = rWaitForToken.unwrap();
98
+ if (waitedTokenByResultId.status === "found" && waitedTokenByResultId.token) {
99
+ const token = waitedTokenByResultId.token;
100
+ const claims = decodeJwt(token);
101
+ resolve({ token, claims });
102
+ return;
103
+ }
104
+ setTimeout(getTokenAndClaimsByResultId, opts.interval);
105
+ }
106
+ return new Promise((resolve) => {
107
+ getTokenAndClaimsByResultId((tokenAndClaims) => {
108
+ this.currentToken = tokenAndClaims;
109
+ resolve(tokenAndClaims);
110
+ });
111
+ });
29
112
  }
30
113
  }
31
114
  //# sourceMappingURL=redirect-strategy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redirect-strategy.js","sourceRoot":"","sources":["../../../../src/use-fireproof/redirect-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAU,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAM,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAE9D,MAAM,OAAO,gBAAgB;IAC3B,IAAI,CAAC,MAAc,EAAE,QAAgB,EAAE,IAA6B;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAkB,CAAC;QAC9D,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;aAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC1C,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC;aACvC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAA6B;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAkB,CAAC;QAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/E,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAClF,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;CACF"}
1
+ {"version":3,"file":"redirect-strategy.js","sourceRoot":"","sources":["../../../../src/use-fireproof/redirect-strategy.ts"],"names":[],"mappings":"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"}