apps 0.0.1-beta.7 → 0.0.1-beta.73
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.
- package/README.md +25 -22
- package/framework-reference.json +1 -1
- package/js/{chunk-RJDDBDSN.js → chunk-3CVQ3VPP.js} +762 -171
- package/js/chunk-3R3KFCDU.js +426 -0
- package/js/chunk-5FHWNLCI.js +88 -0
- package/js/{chunk-M3B3DE4K.js → chunk-74YVXBKY.js} +463 -218
- package/js/chunk-7LMU3ER3.js +274 -0
- package/js/chunk-CDXQDN7W.js +92 -0
- package/js/{chunk-RFVIONFX.js → chunk-ECCWT5GJ.js} +79 -41
- package/js/{chunk-UK573G7W.js → chunk-EOPQ727L.js} +87 -51
- package/js/{chunk-CMYUWAX7.js → chunk-G7L5DHQX.js} +126 -31
- package/js/{chunk-27F7W2LG.js → chunk-H2CJWXA3.js} +2 -2
- package/js/{chunk-JU7VHODU.js → chunk-H72MEDMN.js} +65 -10
- package/js/{chunk-CDL5PM2Q.js → chunk-IFJU5SYQ.js} +19082 -18402
- package/js/{chunk-VFZKSM3T.js → chunk-JPEUKEV4.js} +3 -3
- package/js/{chunk-WLE7WX2U.js → chunk-JW5LYSER.js} +2262 -474
- package/js/{chunk-5T57N25Q.js → chunk-KGCTYL2S.js} +511 -63
- package/js/{chunk-KUMBKVJD.js → chunk-KLYSEHUD.js} +2 -2
- package/js/chunk-LTF4TLMO.js +347 -0
- package/js/chunk-MHB7IFG7.js +49 -0
- package/js/{chunk-FL2QR3XW.js → chunk-OBYMFSWA.js} +333 -69
- package/js/chunk-OD3KFKZD.js +1617 -0
- package/js/{chunk-57RKNWL2.js → chunk-PD6I2SDG.js} +4 -4
- package/js/{chunk-72JNVHPK.js → chunk-QGHGYH5V.js} +4 -3
- package/js/{chunk-NKLWZJLE.js → chunk-RUP4JMKO.js} +25 -14
- package/js/{chunk-IJX4CYZO.js → chunk-TUMGL2OC.js} +228 -264
- package/js/{chunk-UESPOTUI.js → chunk-WCVV4PPS.js} +899 -190
- package/js/{chunk-IPI4MFSN.js → chunk-XBG7HHXC.js} +2 -2
- package/js/{chunk-Z5M2LQOZ.js → chunk-ZEJ3IKEC.js} +67 -55
- package/js/chunk-ZR7QAG67.js +171 -0
- package/js/client.js +142 -94
- package/js/contracts.js +125 -26
- package/js/effect.js +19 -19
- package/js/{es-APDZKREY.js → es-DIULA3ZF.js} +62 -1659
- package/js/graphql.js +50 -40
- package/js/host.js +83 -58
- package/js/index.js +131 -46
- package/js/mcp/effect.js +23 -21
- package/js/mcp/stdio.js +44 -34
- package/js/mcp.js +76 -53
- package/js/openapi.js +4071 -1357
- package/js/react.js +2 -3
- package/js/skills/effect.js +6 -3
- package/js/skills.js +208 -81
- package/js/storage/facet.js +1 -540
- package/js/ui/auth/contracts.js +2 -2
- package/js/ui/auth.js +5 -5
- package/js/ui/contracts.js +5 -4
- package/js/ui/serving.js +8517 -214
- package/package.json +3 -4
- package/runtime.json +1 -1
- package/types/app-cache/src/contracts/cache.d.ts +2 -0
- package/types/app-cache/src/index.d.ts +10 -1
- package/types/apps/src/contracts/api-response-error.d.ts +4 -0
- package/types/apps/src/contracts/app.d.ts +7 -3
- package/types/apps/src/contracts/cache.d.ts +20 -0
- package/types/apps/src/contracts/context.d.ts +19 -11
- package/types/apps/src/contracts/elicitation.d.ts +6 -6
- package/types/apps/src/contracts/events.d.ts +93 -0
- package/types/apps/src/contracts/failure.d.ts +30 -1
- package/types/apps/src/contracts/graphql.d.ts +2 -1
- package/types/apps/src/contracts/host.d.ts +641 -16
- package/types/apps/src/contracts/live.d.ts +2 -0
- package/types/apps/src/contracts/mcp.d.ts +80 -10
- package/types/apps/src/contracts/network.d.ts +120 -0
- package/types/apps/src/contracts/openapi-compile.d.ts +82 -3
- package/types/apps/src/contracts/openapi.d.ts +41 -9
- package/types/apps/src/contracts/operations.d.ts +8 -4
- package/types/apps/src/contracts/placement.d.ts +102 -0
- package/types/apps/src/contracts/protocol-version.d.ts +2 -2
- package/types/apps/src/contracts/protocols/1.d.ts +733 -81
- package/types/apps/src/contracts/protocols/10.d.ts +1450 -0
- package/types/apps/src/contracts/protocols/2.d.ts +69 -26
- package/types/apps/src/contracts/protocols/3.d.ts +133 -33
- package/types/apps/src/contracts/protocols/4.d.ts +122 -45
- package/types/apps/src/contracts/protocols/5.d.ts +157 -47
- package/types/apps/src/contracts/protocols/6.d.ts +1629 -0
- package/types/apps/src/contracts/protocols/7.d.ts +1785 -0
- package/types/apps/src/contracts/protocols/8.d.ts +1182 -0
- package/types/apps/src/contracts/protocols/9.d.ts +1104 -0
- package/types/apps/src/contracts/protocols/current.d.ts +3842 -0
- package/types/apps/src/contracts/protocols/oauth-6.d.ts +74 -0
- package/types/apps/src/contracts/protocols/oauth.d.ts +134 -0
- package/types/apps/src/contracts/provider-error.d.ts +9 -0
- package/types/apps/src/contracts/provider.d.ts +90 -6
- package/types/apps/src/contracts/skills.d.ts +50 -13
- package/types/apps/src/contracts/sql.d.ts +63 -0
- package/types/apps/src/contracts/ui.d.ts +19 -1
- package/types/apps/src/contracts/workflows.d.ts +6 -0
- package/types/apps/src/facet.d.ts +4 -5
- package/types/apps/src/host.d.ts +5 -0
- package/types/apps/src/implementation/account-router.d.ts +4 -3
- package/types/apps/src/implementation/authoring.d.ts +25 -5
- package/types/apps/src/implementation/browser-scripts.gen.d.ts +6 -0
- package/types/apps/src/implementation/cache.d.ts +4 -0
- package/types/apps/src/implementation/catalog-cache.d.ts +35 -4
- package/types/apps/src/implementation/elicitation.d.ts +18 -15
- package/types/apps/src/implementation/events.d.ts +59 -0
- package/types/apps/src/implementation/failure-detail.d.ts +25 -3
- package/types/apps/src/implementation/graphql-catalog.d.ts +3 -3
- package/types/apps/src/implementation/graphql.d.ts +4 -3
- package/types/apps/src/implementation/input-problems.d.ts +6 -2
- package/types/apps/src/implementation/invocation-timing.d.ts +16 -0
- package/types/apps/src/implementation/live.d.ts +2 -2
- package/types/apps/src/implementation/mcp-call.d.ts +6 -5
- package/types/apps/src/implementation/mcp-catalog.d.ts +6 -4
- package/types/apps/src/implementation/mcp-client.d.ts +17 -9
- package/types/apps/src/implementation/mcp-stdio.d.ts +1 -1
- package/types/apps/src/implementation/mcp-tools.d.ts +2 -1
- package/types/apps/src/implementation/mcp.d.ts +20 -9
- package/types/apps/src/implementation/network.d.ts +16 -0
- package/types/apps/src/implementation/openapi-compile.d.ts +26 -6
- package/types/apps/src/implementation/openapi-document.d.ts +46 -19
- package/types/apps/src/implementation/openapi-names.d.ts +9 -4
- package/types/apps/src/implementation/openapi-request.d.ts +10 -2
- package/types/apps/src/implementation/openapi-source.d.ts +18 -0
- package/types/apps/src/implementation/openapi-upgrade.d.ts +4 -0
- package/types/apps/src/implementation/operations.d.ts +17 -2
- package/types/apps/src/implementation/optimistic.d.ts +1 -1
- package/types/apps/src/implementation/placement.d.ts +60 -0
- package/types/apps/src/implementation/protocol-operations.d.ts +3 -0
- package/types/apps/src/implementation/provider-error.d.ts +28 -1
- package/types/apps/src/implementation/provider.d.ts +18 -3
- package/types/apps/src/implementation/query-commit.d.ts +1 -1
- package/types/apps/src/implementation/router-catalog.d.ts +11 -13
- package/types/apps/src/implementation/router.d.ts +16 -5
- package/types/apps/src/implementation/runtime-yield.d.ts +7 -0
- package/types/apps/src/implementation/schema.d.ts +90 -10
- package/types/apps/src/implementation/skills.d.ts +18 -24
- package/types/apps/src/implementation/sql.d.ts +71 -0
- package/types/apps/src/implementation/ui-account-notice.d.ts +9 -0
- package/types/apps/src/implementation/ui-auth.d.ts +1 -1
- package/types/apps/src/implementation/ui-client.d.ts +2 -2
- package/types/apps/src/implementation/ui-document.d.ts +5 -0
- package/types/apps/src/implementation/ui-errors.d.ts +1 -1
- package/types/apps/src/implementation/ui-serving.d.ts +11 -5
- package/types/apps/src/implementation/ui-watch.d.ts +1 -1
- package/types/apps/src/implementation/upstream-error.d.ts +7 -0
- package/types/apps/src/implementation/webhooks.d.ts +1 -1
- package/types/apps/src/implementation/workflows.d.ts +1 -1
- package/types/apps/src/index.d.ts +55 -13
- package/types/apps/src/mcp.d.ts +20 -1
- package/types/apps/src/openapi.d.ts +1 -1
- package/types/apps/src/react.d.ts +1 -1
- package/types/apps/src/skills.d.ts +10 -8
- package/types/telemetry/src/app-records.d.ts +42 -0
- package/types/telemetry/src/browser-operations.d.ts +7 -4
- package/types/telemetry/src/browser.d.ts +8 -3
- package/types/telemetry/src/config.d.ts +2 -2
- package/types/telemetry/src/index.d.ts +2 -1
- package/types/telemetry/src/layer.d.ts +2 -2
- package/types/telemetry/src/measurements.d.ts +1 -1
- package/types/telemetry/src/ownership.d.ts +56 -0
- package/types/telemetry/src/recorded-failure.d.ts +29 -0
- package/types/telemetry/src/relay.d.ts +16 -6
- package/types/telemetry/src/span-attributes.d.ts +17 -1
- package/types/telemetry/src/transport.d.ts +8 -1
- package/types/utils/src/api-error.d.ts +55 -0
- package/types/utils/src/connection-failure.d.ts +33 -0
- package/types/utils/src/recorded-message.d.ts +18 -0
- package/types/utils/src/user-facing-error.d.ts +83 -0
- package/js/chunk-MKWZPDR6.js +0 -63
- package/js/chunk-N7YDVXYJ.js +0 -186
- package/js/chunk-OCYUEU47.js +0 -224
- package/js/chunk-PJJ24GU7.js +0 -877
- package/js/chunk-PZB6T6KU.js +0 -19
- package/js/chunk-R3EV5FTO.js +0 -97
- package/js/chunk-YXQHV65J.js +0 -242
- package/js/chunk-ZQINWV4W.js +0 -630
- package/types/app-data/src/implementation/cursor.d.ts +0 -10
- package/types/app-data/src/implementation/index-key.d.ts +0 -7
- package/types/app-data/src/implementation/promise.d.ts +0 -68
- package/types/app-data/src/implementation/range.d.ts +0 -8
- package/types/app-data/src/implementation/schema.d.ts +0 -18
- package/types/app-data/src/implementation/sqlite.d.ts +0 -11
- package/types/app-data/src/index.d.ts +0 -4
- package/types/apps/src/contracts/storage.d.ts +0 -68
- package/types/apps/src/implementation/storage.d.ts +0 -15
package/js/chunk-PZB6T6KU.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Schema_exports
|
|
3
|
-
} from "./chunk-CDL5PM2Q.js";
|
|
4
|
-
|
|
5
|
-
// src/contracts/storage.ts
|
|
6
|
-
var StorageName = Schema_exports.NonEmptyString.check(Schema_exports.isMaxLength(200));
|
|
7
|
-
var AppStorageUnavailable = class extends Schema_exports.TaggedError()(
|
|
8
|
-
"AppStorageUnavailable",
|
|
9
|
-
{}
|
|
10
|
-
) {
|
|
11
|
-
};
|
|
12
|
-
var AppStorageError = class extends Schema_exports.TaggedError()("AppStorageError", {}) {
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export {
|
|
16
|
-
StorageName,
|
|
17
|
-
AppStorageUnavailable,
|
|
18
|
-
AppStorageError
|
|
19
|
-
};
|
package/js/chunk-R3EV5FTO.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AccountId
|
|
3
|
-
} from "./chunk-27F7W2LG.js";
|
|
4
|
-
import {
|
|
5
|
-
Schema_exports
|
|
6
|
-
} from "./chunk-CDL5PM2Q.js";
|
|
7
|
-
|
|
8
|
-
// src/contracts/provider-error.ts
|
|
9
|
-
var ProviderError = class extends Schema_exports.TaggedError()("ProviderError", {
|
|
10
|
-
reason: Schema_exports.Literals(["unauthorized", "forbidden", "rate_limited", "unavailable", "rejected"]),
|
|
11
|
-
status: Schema_exports.optional(Schema_exports.Int.check(Schema_exports.isBetween({ minimum: 100, maximum: 599 }))),
|
|
12
|
-
accountId: Schema_exports.optional(AccountId)
|
|
13
|
-
}) {
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
// ../app-cache/src/contracts/cache.ts
|
|
17
|
-
var CacheError = class extends Schema_exports.TaggedError()("CacheError", {
|
|
18
|
-
reason: Schema_exports.Literals(["unavailable", "storage", "invalid", "capacity", "timeout"])
|
|
19
|
-
}) {
|
|
20
|
-
};
|
|
21
|
-
var cacheLimits = {
|
|
22
|
-
keyBytes: 8192,
|
|
23
|
-
entryBytes: 2e6,
|
|
24
|
-
batchBytes: 8e6,
|
|
25
|
-
batchEntries: 128,
|
|
26
|
-
totalBytes: 128e6,
|
|
27
|
-
totalEntries: 1e5,
|
|
28
|
-
retentionMs: 7 * 24 * 60 * 60 * 1e3,
|
|
29
|
-
loadTimeoutMs: 9e4,
|
|
30
|
-
/**
|
|
31
|
-
* A loader's lease lapses this long after its host last renewed it. Hosts renew every
|
|
32
|
-
* `renewMs` while the invocation that claimed it runs, so a stalled or lost holder frees the
|
|
33
|
-
* key well inside an MCP execute budget.
|
|
34
|
-
*/
|
|
35
|
-
leaseMs: 15e3,
|
|
36
|
-
renewMs: 5e3,
|
|
37
|
-
/** The longest a caller waits on another loader before loading for itself without publishing. */
|
|
38
|
-
waitMs: 1e4,
|
|
39
|
-
/** Bound for one command to a host store; a lost reply fails instead of holding its caller. */
|
|
40
|
-
commandTimeoutMs: 1e4
|
|
41
|
-
};
|
|
42
|
-
var Key = Schema_exports.String.check(Schema_exports.isPattern(/^[a-f0-9]{64}$/));
|
|
43
|
-
var Time = Schema_exports.Finite.check(Schema_exports.isGreaterThanOrEqualTo(0));
|
|
44
|
-
var CacheEntry = Schema_exports.Struct({
|
|
45
|
-
value: Schema_exports.Json,
|
|
46
|
-
version: Schema_exports.String,
|
|
47
|
-
freshUntil: Time,
|
|
48
|
-
staleUntil: Time
|
|
49
|
-
});
|
|
50
|
-
var CacheAcquired = Schema_exports.Struct({
|
|
51
|
-
entry: Schema_exports.NullOr(CacheEntry),
|
|
52
|
-
lease: Schema_exports.NullOr(Schema_exports.String)
|
|
53
|
-
});
|
|
54
|
-
var CacheCommand = Schema_exports.Union([
|
|
55
|
-
Schema_exports.Struct({ operation: Schema_exports.Literal("read"), keys: Schema_exports.Array(Key) }),
|
|
56
|
-
Schema_exports.Struct({
|
|
57
|
-
operation: Schema_exports.Literal("acquire"),
|
|
58
|
-
key: Key,
|
|
59
|
-
/** Claim even a fresh entry, as an explicit refresh does. */
|
|
60
|
-
refresh: Schema_exports.Boolean,
|
|
61
|
-
/** Claim only while the entry still has this version. Absent accepts the current one. */
|
|
62
|
-
version: Schema_exports.optionalKey(Schema_exports.NullOr(Schema_exports.String))
|
|
63
|
-
}),
|
|
64
|
-
Schema_exports.Struct({
|
|
65
|
-
operation: Schema_exports.Literal("claim"),
|
|
66
|
-
key: Key,
|
|
67
|
-
version: Schema_exports.NullOr(Schema_exports.String)
|
|
68
|
-
}),
|
|
69
|
-
Schema_exports.Struct({
|
|
70
|
-
operation: Schema_exports.Literal("publish"),
|
|
71
|
-
key: Key,
|
|
72
|
-
lease: Schema_exports.String,
|
|
73
|
-
entry: CacheEntry
|
|
74
|
-
}),
|
|
75
|
-
Schema_exports.Struct({ operation: Schema_exports.Literal("release"), key: Key, lease: Schema_exports.String }),
|
|
76
|
-
/** Extend a lease its holder still owns. Replies false once the lease lapsed or was replaced. */
|
|
77
|
-
Schema_exports.Struct({ operation: Schema_exports.Literal("renew"), key: Key, lease: Schema_exports.String }),
|
|
78
|
-
Schema_exports.Struct({
|
|
79
|
-
operation: Schema_exports.Literal("write"),
|
|
80
|
-
entries: Schema_exports.Array(Schema_exports.Struct({ key: Key, entry: CacheEntry }))
|
|
81
|
-
}),
|
|
82
|
-
Schema_exports.Struct({ operation: Schema_exports.Literal("invalidate"), key: Key })
|
|
83
|
-
]);
|
|
84
|
-
var CacheReply = Schema_exports.Union([
|
|
85
|
-
Schema_exports.Struct({ ok: Schema_exports.Literal(true), value: Schema_exports.Json }),
|
|
86
|
-
Schema_exports.Struct({ ok: Schema_exports.Literal(false), error: CacheError })
|
|
87
|
-
]);
|
|
88
|
-
|
|
89
|
-
export {
|
|
90
|
-
ProviderError,
|
|
91
|
-
CacheError,
|
|
92
|
-
cacheLimits,
|
|
93
|
-
CacheEntry,
|
|
94
|
-
CacheAcquired,
|
|
95
|
-
CacheCommand,
|
|
96
|
-
CacheReply
|
|
97
|
-
};
|
package/js/chunk-YXQHV65J.js
DELETED
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
promiseTable
|
|
3
|
-
} from "./chunk-ZQINWV4W.js";
|
|
4
|
-
import {
|
|
5
|
-
declaredOperations,
|
|
6
|
-
fromPromise,
|
|
7
|
-
nativeOperation,
|
|
8
|
-
nativeRouter
|
|
9
|
-
} from "./chunk-Z5M2LQOZ.js";
|
|
10
|
-
import {
|
|
11
|
-
ScheduleTiming
|
|
12
|
-
} from "./chunk-WLE7WX2U.js";
|
|
13
|
-
import {
|
|
14
|
-
DatabaseSchema
|
|
15
|
-
} from "./chunk-N7YDVXYJ.js";
|
|
16
|
-
import {
|
|
17
|
-
decoderOf,
|
|
18
|
-
isSchema,
|
|
19
|
-
storageFieldOf
|
|
20
|
-
} from "./chunk-5T57N25Q.js";
|
|
21
|
-
import {
|
|
22
|
-
AppStorageUnavailable
|
|
23
|
-
} from "./chunk-PZB6T6KU.js";
|
|
24
|
-
import {
|
|
25
|
-
JsonValue
|
|
26
|
-
} from "./chunk-27F7W2LG.js";
|
|
27
|
-
import {
|
|
28
|
-
Effect_exports,
|
|
29
|
-
Schema_exports
|
|
30
|
-
} from "./chunk-CDL5PM2Q.js";
|
|
31
|
-
|
|
32
|
-
// src/contracts/http.ts
|
|
33
|
-
var ResponseStatusError = class extends Schema_exports.TaggedError()(
|
|
34
|
-
"ResponseStatusError",
|
|
35
|
-
{ status: Schema_exports.Number }
|
|
36
|
-
) {
|
|
37
|
-
get message() {
|
|
38
|
-
return `Request failed with status ${this.status}`;
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
var ResponseDecodeError = class extends Schema_exports.TaggedError()(
|
|
42
|
-
"ResponseDecodeError",
|
|
43
|
-
{}
|
|
44
|
-
) {
|
|
45
|
-
get message() {
|
|
46
|
-
return "Response body did not match the expected schema";
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// src/implementation/workflows.ts
|
|
51
|
-
var NativeWorkflow = /* @__PURE__ */ Symbol("apps.Workflow");
|
|
52
|
-
var workflow = (options, run) => ({
|
|
53
|
-
[NativeWorkflow]: {
|
|
54
|
-
input: decoderOf(options.input),
|
|
55
|
-
...options.output === void 0 ? {} : { output: decoderOf(options.output) },
|
|
56
|
-
...options.description === void 0 ? {} : { description: options.description },
|
|
57
|
-
run: (context, input) => Effect_exports.tryPromise({
|
|
58
|
-
// SAFETY: defineApp checks required context; the host supplies the pinned run's capabilities.
|
|
59
|
-
try: () => run(context, input),
|
|
60
|
-
catch: (error) => error
|
|
61
|
-
})
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
var nativeWorkflow = (value) => {
|
|
65
|
-
if (typeof value !== "object" || value === null || !(NativeWorkflow in value)) return void 0;
|
|
66
|
-
return value[NativeWorkflow];
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
// src/implementation/app.ts
|
|
70
|
-
var InternalApp = /* @__PURE__ */ Symbol("apps.App");
|
|
71
|
-
var isApp = (value) => typeof value === "object" && value !== null && InternalApp in value;
|
|
72
|
-
var toEffectApp = (app) => app[InternalApp];
|
|
73
|
-
function rejectCatalogs(definition) {
|
|
74
|
-
if ("queries" in definition || "mutations" in definition)
|
|
75
|
-
throw new Error("Put queries and mutations in a router under tools");
|
|
76
|
-
}
|
|
77
|
-
function adaptDefinition(definition) {
|
|
78
|
-
rejectCatalogs(definition);
|
|
79
|
-
const webhooks = definition.webhooks === void 0 ? {} : {
|
|
80
|
-
webhooks: Object.fromEntries(
|
|
81
|
-
Object.entries(definition.webhooks).map(([name, webhook]) => [
|
|
82
|
-
name,
|
|
83
|
-
{
|
|
84
|
-
...webhook,
|
|
85
|
-
...webhook.register === void 0 ? {} : { register: fromPromise(webhook.register) },
|
|
86
|
-
handle: fromPromise(webhook.handle),
|
|
87
|
-
...webhook.unregister === void 0 ? {} : { unregister: fromPromise(webhook.unregister) },
|
|
88
|
-
..."config" in webhook && isSchema(webhook.config) ? { config: decoderOf(webhook.config) } : {},
|
|
89
|
-
..."state" in webhook && isSchema(webhook.state) ? { state: decoderOf(webhook.state) } : {}
|
|
90
|
-
}
|
|
91
|
-
])
|
|
92
|
-
)
|
|
93
|
-
};
|
|
94
|
-
const workflows = definition.workflows === void 0 ? {} : {
|
|
95
|
-
workflows: Object.fromEntries(
|
|
96
|
-
Object.entries(definition.workflows).map(([name, value]) => {
|
|
97
|
-
const declared2 = nativeWorkflow(value);
|
|
98
|
-
if (declared2 === void 0) throw new Error("Invalid workflow declaration");
|
|
99
|
-
return [name, declared2];
|
|
100
|
-
})
|
|
101
|
-
)
|
|
102
|
-
};
|
|
103
|
-
const root = definition.tools === void 0 ? void 0 : nativeRouter(definition.tools);
|
|
104
|
-
if (definition.tools !== void 0 && root === void 0)
|
|
105
|
-
throw new Error("tools must be a router");
|
|
106
|
-
const data = root === void 0 ? {} : { tools: root };
|
|
107
|
-
const declared = root?.kind === "router" ? declaredOperations(root) : [];
|
|
108
|
-
const mutations = /* @__PURE__ */ new Set();
|
|
109
|
-
for (const { operation } of declared) {
|
|
110
|
-
if (operation.kind !== "mutation") continue;
|
|
111
|
-
if (mutations.has(operation))
|
|
112
|
-
throw new Error("A mutation can be mounted at only one path in tools");
|
|
113
|
-
mutations.add(operation);
|
|
114
|
-
}
|
|
115
|
-
const schedules = definition.schedules === void 0 ? {} : {
|
|
116
|
-
schedules: Object.fromEntries(
|
|
117
|
-
Object.entries(definition.schedules).map(([name, schedule]) => {
|
|
118
|
-
const target = nativeOperation(schedule.operation);
|
|
119
|
-
const match = declared.find(
|
|
120
|
-
({ operation }) => operation === target && operation.kind === "mutation"
|
|
121
|
-
);
|
|
122
|
-
if (match === void 0)
|
|
123
|
-
throw new Error("A schedule must reference a mutation in this app's tools");
|
|
124
|
-
return [
|
|
125
|
-
name,
|
|
126
|
-
{
|
|
127
|
-
timing: Schema_exports.decodeUnknownSync(ScheduleTiming)(schedule.timing),
|
|
128
|
-
input: Schema_exports.decodeUnknownSync(JsonValue)(schedule.input),
|
|
129
|
-
tool: match.name
|
|
130
|
-
}
|
|
131
|
-
];
|
|
132
|
-
})
|
|
133
|
-
)
|
|
134
|
-
};
|
|
135
|
-
return {
|
|
136
|
-
...definition,
|
|
137
|
-
...webhooks,
|
|
138
|
-
...workflows,
|
|
139
|
-
...data,
|
|
140
|
-
...schedules
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
var defineApp = (requirements, definition) => {
|
|
144
|
-
if (typeof definition !== "function") rejectCatalogs(definition);
|
|
145
|
-
const evaluate = typeof definition === "function" ? definition : async () => definition;
|
|
146
|
-
const factory = fromPromise(evaluate);
|
|
147
|
-
const native = {
|
|
148
|
-
accounts: requirements.accounts,
|
|
149
|
-
...requirements.database === void 0 ? {} : { database: requirements.database },
|
|
150
|
-
evaluate: (context) => factory(context).pipe(Effect_exports.map((value) => adaptDefinition(value)))
|
|
151
|
-
};
|
|
152
|
-
return {
|
|
153
|
-
[InternalApp]: native,
|
|
154
|
-
accounts: native.accounts,
|
|
155
|
-
evaluate: (context) => Effect_exports.runPromise(factory(context))
|
|
156
|
-
};
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
// src/implementation/storage.ts
|
|
160
|
-
var table = (fields) => tableWithIndexes(fields, []);
|
|
161
|
-
var tableWithIndexes = (fields, indexes) => ({
|
|
162
|
-
fields,
|
|
163
|
-
indexes,
|
|
164
|
-
index: (name, fieldsInIndex) => tableWithIndexes(fields, [...indexes, { name, fields: fieldsInIndex }])
|
|
165
|
-
});
|
|
166
|
-
var serialize = (tables) => {
|
|
167
|
-
const definitions = Object.fromEntries(
|
|
168
|
-
Object.entries(tables).map(([name, table2]) => [
|
|
169
|
-
name,
|
|
170
|
-
{
|
|
171
|
-
fields: Object.fromEntries(
|
|
172
|
-
Object.entries(table2.fields).map(([fieldName, schema]) => {
|
|
173
|
-
const field = storageFieldOf(schema);
|
|
174
|
-
if (field === void 0) throw new Error("Database columns must use a scalar schema");
|
|
175
|
-
return [fieldName, field];
|
|
176
|
-
})
|
|
177
|
-
),
|
|
178
|
-
indexes: table2.indexes
|
|
179
|
-
}
|
|
180
|
-
])
|
|
181
|
-
);
|
|
182
|
-
return Schema_exports.decodeUnknownSync(DatabaseSchema)(definitions);
|
|
183
|
-
};
|
|
184
|
-
var authorDatabase = (tables, session, signal, writable) => {
|
|
185
|
-
return Object.fromEntries(
|
|
186
|
-
Object.entries(tables).map(([name, table2]) => {
|
|
187
|
-
const api = promiseTable(session, name, signal);
|
|
188
|
-
const parseFields = (input, partial) => {
|
|
189
|
-
const values = Schema_exports.decodeUnknownSync(
|
|
190
|
-
Schema_exports.Record(Schema_exports.String, Schema_exports.Unknown)
|
|
191
|
-
)(input);
|
|
192
|
-
const fields = {};
|
|
193
|
-
for (const [key, value] of Object.entries(values)) {
|
|
194
|
-
if (value === void 0) continue;
|
|
195
|
-
const field = Object.hasOwn(table2.fields, key) ? table2.fields[key] : void 0;
|
|
196
|
-
if (field === void 0) throw new Error("Unknown database column");
|
|
197
|
-
const definition = storageFieldOf(field);
|
|
198
|
-
fields[key] = value === null && definition?.optional ? null : field.parse(value);
|
|
199
|
-
}
|
|
200
|
-
if (!partial) {
|
|
201
|
-
for (const [key, field] of Object.entries(table2.fields))
|
|
202
|
-
if (!Object.hasOwn(fields, key)) {
|
|
203
|
-
const value = field.parse(void 0);
|
|
204
|
-
if (value !== void 0) fields[key] = value;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
return fields;
|
|
208
|
-
};
|
|
209
|
-
const read = { get: api.get, withIndex: api.withIndex };
|
|
210
|
-
return [
|
|
211
|
-
name,
|
|
212
|
-
writable ? {
|
|
213
|
-
...read,
|
|
214
|
-
insert: (value) => api.insert(parseFields(value, false)),
|
|
215
|
-
update: (id, value) => api.update(id, parseFields(value, true)),
|
|
216
|
-
delete: api.delete
|
|
217
|
-
} : read
|
|
218
|
-
];
|
|
219
|
-
})
|
|
220
|
-
);
|
|
221
|
-
};
|
|
222
|
-
var defineDatabase = (tables) => ({
|
|
223
|
-
schema: serialize(tables),
|
|
224
|
-
tables
|
|
225
|
-
});
|
|
226
|
-
var unavailableStorage = {
|
|
227
|
-
read: () => Effect_exports.fail(new AppStorageUnavailable()),
|
|
228
|
-
mutate: () => Effect_exports.fail(new AppStorageUnavailable())
|
|
229
|
-
};
|
|
230
|
-
|
|
231
|
-
export {
|
|
232
|
-
ResponseStatusError,
|
|
233
|
-
ResponseDecodeError,
|
|
234
|
-
workflow,
|
|
235
|
-
isApp,
|
|
236
|
-
toEffectApp,
|
|
237
|
-
defineApp,
|
|
238
|
-
table,
|
|
239
|
-
authorDatabase,
|
|
240
|
-
defineDatabase,
|
|
241
|
-
unavailableStorage
|
|
242
|
-
};
|