@every-app/sdk 0.2.0 → 0.3.0-rc.2

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 (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +608 -2
  3. package/dist/cloudflare/index.d.ts +22 -0
  4. package/dist/cloudflare/index.d.ts.map +1 -0
  5. package/dist/cloudflare/index.js +21 -0
  6. package/dist/cloudflare/sentinel.d.ts +69 -0
  7. package/dist/cloudflare/sentinel.d.ts.map +1 -0
  8. package/dist/cloudflare/sentinel.js +50 -0
  9. package/dist/cloudflare/worker.d.ts +592 -0
  10. package/dist/cloudflare/worker.d.ts.map +1 -0
  11. package/dist/cloudflare/worker.js +817 -0
  12. package/dist/dev/index.d.ts +8 -0
  13. package/dist/dev/index.d.ts.map +1 -0
  14. package/dist/dev/index.js +7 -0
  15. package/dist/dev/keypair.d.ts +24 -0
  16. package/dist/dev/keypair.d.ts.map +1 -0
  17. package/dist/dev/keypair.js +60 -0
  18. package/dist/internal/aiProviders.d.ts +67 -0
  19. package/dist/internal/aiProviders.d.ts.map +1 -0
  20. package/dist/internal/aiProviders.js +220 -0
  21. package/dist/internal/appSettings.d.ts +237 -0
  22. package/dist/internal/appSettings.d.ts.map +1 -0
  23. package/dist/internal/appSettings.js +374 -0
  24. package/dist/internal/capabilities.d.ts +3249 -0
  25. package/dist/internal/capabilities.d.ts.map +1 -0
  26. package/dist/internal/capabilities.js +1532 -0
  27. package/dist/internal/catalog/commerce.d.ts +394 -0
  28. package/dist/internal/catalog/commerce.d.ts.map +1 -0
  29. package/dist/internal/catalog/commerce.js +477 -0
  30. package/dist/internal/catalog/comms.d.ts +338 -0
  31. package/dist/internal/catalog/comms.d.ts.map +1 -0
  32. package/dist/internal/catalog/comms.js +477 -0
  33. package/dist/internal/catalog/index.d.ts +1899 -0
  34. package/dist/internal/catalog/index.d.ts.map +1 -0
  35. package/dist/internal/catalog/index.js +19 -0
  36. package/dist/internal/catalog/inference.d.ts +356 -0
  37. package/dist/internal/catalog/inference.d.ts.map +1 -0
  38. package/dist/internal/catalog/inference.js +425 -0
  39. package/dist/internal/catalog/infra.d.ts +423 -0
  40. package/dist/internal/catalog/infra.d.ts.map +1 -0
  41. package/dist/internal/catalog/infra.js +543 -0
  42. package/dist/internal/catalog/search.d.ts +400 -0
  43. package/dist/internal/catalog/search.d.ts.map +1 -0
  44. package/dist/internal/catalog/search.js +463 -0
  45. package/dist/internal/devProviders.d.ts +49 -0
  46. package/dist/internal/devProviders.d.ts.map +1 -0
  47. package/dist/internal/devProviders.js +62 -0
  48. package/dist/internal/email.d.ts +280 -0
  49. package/dist/internal/email.d.ts.map +1 -0
  50. package/dist/internal/email.js +613 -0
  51. package/dist/internal/events.d.ts +182 -0
  52. package/dist/internal/events.d.ts.map +1 -0
  53. package/dist/internal/events.js +326 -0
  54. package/dist/internal/gatewaySettings.d.ts +83 -0
  55. package/dist/internal/gatewaySettings.d.ts.map +1 -0
  56. package/dist/internal/gatewaySettings.js +217 -0
  57. package/dist/internal/identity.d.ts +18 -3
  58. package/dist/internal/identity.d.ts.map +1 -1
  59. package/dist/internal/identity.js +53 -14
  60. package/dist/internal/index.d.ts +18 -1
  61. package/dist/internal/index.d.ts.map +1 -1
  62. package/dist/internal/index.js +18 -1
  63. package/dist/internal/members.d.ts +35 -0
  64. package/dist/internal/members.d.ts.map +1 -0
  65. package/dist/internal/members.js +7 -0
  66. package/dist/internal/oauthClient.d.ts +63 -0
  67. package/dist/internal/oauthClient.d.ts.map +1 -0
  68. package/dist/internal/oauthClient.js +194 -0
  69. package/dist/internal/oauthScopes.d.ts +117 -0
  70. package/dist/internal/oauthScopes.d.ts.map +1 -0
  71. package/dist/internal/oauthScopes.js +416 -0
  72. package/dist/internal/organizationName.d.ts +18 -0
  73. package/dist/internal/organizationName.d.ts.map +1 -0
  74. package/dist/internal/organizationName.js +24 -0
  75. package/dist/internal/protocol.d.ts +86 -2
  76. package/dist/internal/protocol.d.ts.map +1 -1
  77. package/dist/internal/protocol.js +112 -1
  78. package/dist/internal/providerApps.d.ts +75 -0
  79. package/dist/internal/providerApps.d.ts.map +1 -0
  80. package/dist/internal/providerApps.js +59 -0
  81. package/dist/internal/providerRegistry.d.ts +147 -0
  82. package/dist/internal/providerRegistry.d.ts.map +1 -0
  83. package/dist/internal/providerRegistry.js +266 -0
  84. package/dist/internal/providerSpec.d.ts +55 -0
  85. package/dist/internal/providerSpec.d.ts.map +1 -0
  86. package/dist/internal/providerSpec.js +758 -0
  87. package/dist/internal/remoteMcp.d.ts +188 -0
  88. package/dist/internal/remoteMcp.d.ts.map +1 -0
  89. package/dist/internal/remoteMcp.js +543 -0
  90. package/dist/internal/signInProviders.d.ts +104 -0
  91. package/dist/internal/signInProviders.d.ts.map +1 -0
  92. package/dist/internal/signInProviders.js +238 -0
  93. package/dist/internal/tools.d.ts +115 -0
  94. package/dist/internal/tools.d.ts.map +1 -0
  95. package/dist/internal/tools.js +80 -0
  96. package/dist/server/attribution.d.ts +39 -0
  97. package/dist/server/attribution.d.ts.map +1 -0
  98. package/dist/server/attribution.js +67 -0
  99. package/dist/server/authorizeUrl.d.ts +43 -0
  100. package/dist/server/authorizeUrl.d.ts.map +1 -0
  101. package/dist/server/authorizeUrl.js +110 -0
  102. package/dist/server/emit.d.ts +63 -0
  103. package/dist/server/emit.d.ts.map +1 -0
  104. package/dist/server/emit.js +101 -0
  105. package/dist/server/everyApp.d.ts +38 -12
  106. package/dist/server/everyApp.d.ts.map +1 -1
  107. package/dist/server/everyApp.js +92 -28
  108. package/dist/server/gatewayFetch.d.ts +24 -8
  109. package/dist/server/gatewayFetch.d.ts.map +1 -1
  110. package/dist/server/gatewayFetch.js +81 -36
  111. package/dist/server/index.d.ts +10 -1
  112. package/dist/server/index.d.ts.map +1 -1
  113. package/dist/server/index.js +8 -1
  114. package/dist/server/integrationFetch.d.ts +131 -0
  115. package/dist/server/integrationFetch.d.ts.map +1 -0
  116. package/dist/server/integrationFetch.js +526 -0
  117. package/dist/server/listMembers.d.ts +32 -0
  118. package/dist/server/listMembers.d.ts.map +1 -0
  119. package/dist/server/listMembers.js +74 -0
  120. package/dist/server/nodeServer.d.ts +48 -0
  121. package/dist/server/nodeServer.d.ts.map +1 -0
  122. package/dist/server/nodeServer.js +45 -0
  123. package/dist/server/sendEmail.d.ts +39 -0
  124. package/dist/server/sendEmail.d.ts.map +1 -0
  125. package/dist/server/sendEmail.js +114 -0
  126. package/dist/server/tools.d.ts +184 -0
  127. package/dist/server/tools.d.ts.map +1 -0
  128. package/dist/server/tools.js +347 -0
  129. package/dist/server/toolsEndpoint.d.ts +32 -0
  130. package/dist/server/toolsEndpoint.d.ts.map +1 -0
  131. package/dist/server/toolsEndpoint.js +231 -0
  132. package/package.json +19 -6
  133. package/dist/server/mcp.d.ts +0 -66
  134. package/dist/server/mcp.d.ts.map +0 -1
  135. package/dist/server/mcp.js +0 -147
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @every-app/sdk/cloudflare — the Worker definition for an app's
3
+ * `cloudflare.config.ts`:
4
+ *
5
+ * import { defineConfig } from "cf/config";
6
+ * import * as entrypoint from "./src/entry.worker.ts" with { type: "cf-worker" };
7
+ * import manifest from "./everyapp.config.ts";
8
+ * import { everyAppWorker } from "@every-app/sdk/cloudflare";
9
+ *
10
+ * export default defineConfig((ctx) => ({
11
+ * worker: everyAppWorker({ manifest, entrypoint, ctx }),
12
+ * }));
13
+ *
14
+ * This runs in Node while cf and the Vite plugin load the config, never in the
15
+ * Worker. Keep it self-contained: the plugin hides every file the config
16
+ * imports from the Worker in dev, so sharing a module with `/server` or
17
+ * `/internal` would break `cf dev` wherever the SDK is linked from source.
18
+ * (The dev keypair it hands the dev Worker is a leaf the Worker never loads.)
19
+ */
20
+ export { EVERYAPP_OBSERVABILITY, everyAppAuxiliaryWorker, everyAppWorker, helperWorkerName, localD1Id, localD1Path, workflowNameFor, } from "./worker.js";
21
+ export { BUILD_SENTINEL, resourceSentinel, sentinelDeployTarget, } from "./sentinel.js";
@@ -0,0 +1,69 @@
1
+ /**
2
+ * What a production build of an Every App app is made of in place of the
3
+ * install's own values. The build is tenant-neutral: whoever builds an
4
+ * app gets the same Build Output, with these placeholders wherever an
5
+ * install's Worker name, organization, gateway, identity key or resource
6
+ * ids belong. The installer rewrites them (`everyapp deploy` for an own
7
+ * Gateway, the hosted gateway's deployer for a hosted one) and refuses an
8
+ * output in which any survives.
9
+ *
10
+ * A leaf module with no imports, so the gateway Worker can read the same
11
+ * values (`@every-app/sdk/cloudflare/sentinel`) without loading the
12
+ * Node-only Worker builder.
13
+ */
14
+ export declare const BUILD_SENTINEL: Readonly<{
15
+ workerName: "every-hosted--sentinel";
16
+ organizationId: "everyapp-hosted-deploy-sentinel";
17
+ /** The gateway's URL, and so the identity issuer. */
18
+ gatewayUrl: "https://every-hosted--sentinel.invalid";
19
+ publicKey: "-----BEGIN PUBLIC KEY-----\nEVERYAPPHOSTEDDEPLOYSENTINEL\n-----END PUBLIC KEY-----\n";
20
+ }>;
21
+ /**
22
+ * A manifest binding's placeholder: a D1 database's name and id, an R2
23
+ * bucket's name, a KV namespace's or Hyperdrive config's id. The installer
24
+ * rewrites each by its binding name; the value only has to be recognizable.
25
+ */
26
+ export declare function resourceSentinel(binding: string): string;
27
+ /** The fields of the manifest a build's placeholders are made for. */
28
+ interface SentinelManifest {
29
+ resources?: {
30
+ d1?: readonly string[];
31
+ kv?: readonly string[];
32
+ r2?: readonly string[];
33
+ hyperdrive?: readonly {
34
+ readonly name: string;
35
+ }[];
36
+ };
37
+ }
38
+ /** Everything install-specific a Worker is built from, by binding. */
39
+ export interface EveryAppDeployTarget {
40
+ /** The Worker name the gateway registry assigned to this app. */
41
+ workerName: string;
42
+ /** The organization that owns the app; scopes the AppGateway binding. */
43
+ organizationId: string;
44
+ /** The gateway's URL, which is also the identity tokens' issuer. */
45
+ gatewayUrl: string;
46
+ /** SPKI PEM public keys (current + next) that verify identity tokens. */
47
+ identityPublicKeys: string[];
48
+ /** Provisioned resources keyed by manifest binding name. */
49
+ resources: {
50
+ d1?: Record<string, {
51
+ name: string;
52
+ id: string;
53
+ }>;
54
+ kv?: Record<string, {
55
+ id: string;
56
+ }>;
57
+ hyperdrive?: Record<string, {
58
+ id: string;
59
+ }>;
60
+ /** R2 buckets by binding, under the names the registry assigned. */
61
+ r2?: Record<string, {
62
+ name: string;
63
+ }>;
64
+ };
65
+ }
66
+ /** The target every production build is made for: placeholders throughout. */
67
+ export declare function sentinelDeployTarget(manifest: SentinelManifest): EveryAppDeployTarget;
68
+ export {};
69
+ //# sourceMappingURL=sentinel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentinel.d.ts","sourceRoot":"","sources":["../../src/cloudflare/sentinel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,cAAc;;;IAKzB,qDAAqD;;;EAIrD,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,sEAAsE;AACtE,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE;QACV,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACvB,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACvB,EAAE,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC,EAAE,SAAS;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACnD,CAAC;CACH;AAED,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,4DAA4D;IAC5D,SAAS,EAAE;QACT,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClD,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5C,oEAAoE;QACpE,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvC,CAAC;CACH;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,GACzB,oBAAoB,CA2BtB"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * What a production build of an Every App app is made of in place of the
3
+ * install's own values. The build is tenant-neutral: whoever builds an
4
+ * app gets the same Build Output, with these placeholders wherever an
5
+ * install's Worker name, organization, gateway, identity key or resource
6
+ * ids belong. The installer rewrites them (`everyapp deploy` for an own
7
+ * Gateway, the hosted gateway's deployer for a hosted one) and refuses an
8
+ * output in which any survives.
9
+ *
10
+ * A leaf module with no imports, so the gateway Worker can read the same
11
+ * values (`@every-app/sdk/cloudflare/sentinel`) without loading the
12
+ * Node-only Worker builder.
13
+ */
14
+ export const BUILD_SENTINEL = Object.freeze({
15
+ // Holds the resource separator, so no registry Worker is ever named so
16
+ // and a string rewrite of it can't hit anything else.
17
+ workerName: "every-hosted--sentinel",
18
+ organizationId: "everyapp-hosted-deploy-sentinel",
19
+ /** The gateway's URL, and so the identity issuer. */
20
+ gatewayUrl: "https://every-hosted--sentinel.invalid",
21
+ publicKey: "-----BEGIN PUBLIC KEY-----\nEVERYAPPHOSTEDDEPLOYSENTINEL\n-----END PUBLIC KEY-----\n",
22
+ });
23
+ /**
24
+ * A manifest binding's placeholder: a D1 database's name and id, an R2
25
+ * bucket's name, a KV namespace's or Hyperdrive config's id. The installer
26
+ * rewrites each by its binding name; the value only has to be recognizable.
27
+ */
28
+ export function resourceSentinel(binding) {
29
+ return `${BUILD_SENTINEL.workerName}--${binding}`;
30
+ }
31
+ /** The target every production build is made for: placeholders throughout. */
32
+ export function sentinelDeployTarget(manifest) {
33
+ const byBinding = (bindings, value) => Object.fromEntries((bindings ?? []).map((binding) => [
34
+ binding,
35
+ value(resourceSentinel(binding)),
36
+ ]));
37
+ const { resources } = manifest;
38
+ return {
39
+ workerName: BUILD_SENTINEL.workerName,
40
+ organizationId: BUILD_SENTINEL.organizationId,
41
+ gatewayUrl: BUILD_SENTINEL.gatewayUrl,
42
+ identityPublicKeys: [BUILD_SENTINEL.publicKey],
43
+ resources: {
44
+ d1: byBinding(resources?.d1, (id) => ({ name: id, id })),
45
+ kv: byBinding(resources?.kv, (id) => ({ id })),
46
+ hyperdrive: byBinding(resources?.hyperdrive?.map((config) => config.name), (id) => ({ id })),
47
+ r2: byBinding(resources?.r2, (name) => ({ name })),
48
+ },
49
+ };
50
+ }