ignotum 0.0.16 → 0.0.18
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 +6 -6
- package/dist/cli/bin.mjs +13263 -2689
- package/dist/cli/bin.mjs.map +1 -1
- package/dist/platform/_headers +3 -0
- package/dist/platform/_ignotum/v1.0/client.js +12 -0
- package/dist/runtime/{api-B4fwp5a2.d.ts → api-BnUKx9cj-D49Tf0rX.d.ts} +4 -3
- package/dist/runtime/api-C-tltz6s.js +31 -0
- package/dist/runtime/api-C-tltz6s.js.map +1 -0
- package/dist/runtime/artifact-BB5qzoa6.js +42 -0
- package/dist/runtime/artifact-BB5qzoa6.js.map +1 -0
- package/dist/runtime/{bootstrap-BTFScKAc.d.ts → bootstrap-DjTwGJao-DBx5zdFI.d.ts} +64 -64
- package/dist/runtime/{bootstrap-BISQSn_O.js → bootstrap-DlNIfH-r.js} +9 -9
- package/dist/runtime/bootstrap-DlNIfH-r.js.map +1 -0
- package/dist/runtime/client.d.ts +24 -20
- package/dist/runtime/client.js +9 -9
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/id-BI08JkmR.d.ts +1 -0
- package/dist/runtime/{id--1m0NuUL.js → id-BrEnxY-r.js} +118 -53
- package/dist/runtime/id-BrEnxY-r.js.map +1 -0
- package/dist/runtime/{image-Djtjy4Z8.js → image-gofzZeCm.js} +2 -2
- package/dist/runtime/image-gofzZeCm.js.map +1 -0
- package/dist/runtime/{index-D4seNHlX.d.ts → index-Biaw5vdF.d.ts} +2 -2
- package/dist/runtime/internal/api.d.ts +1 -1
- package/dist/runtime/internal/api.js +1 -30
- package/dist/runtime/internal/bootstrap.d.ts +1 -1
- package/dist/runtime/internal/bootstrap.js +1 -1
- package/dist/runtime/internal/client.d.ts +2 -2
- package/dist/runtime/internal/client.js +4 -4
- package/dist/runtime/internal/client.js.map +1 -1
- package/dist/runtime/internal/host.d.ts +4 -4
- package/dist/runtime/internal/host.js +4 -4
- package/dist/runtime/internal/routes.d.ts +1 -1
- package/dist/runtime/internal/routes.js +1 -1
- package/dist/runtime/internal/server.d.ts +3 -2
- package/dist/runtime/internal/server.js +2 -2
- package/dist/runtime/internal/server.js.map +1 -1
- package/dist/runtime/internal/types.d.ts +2 -2
- package/dist/runtime/internal/types.js +1 -1
- package/dist/runtime/{pagination-D3qd6s9N.js → pagination--f4kMKf6.js} +2 -2
- package/dist/runtime/{pagination-D3qd6s9N.js.map → pagination--f4kMKf6.js.map} +1 -1
- package/dist/runtime/pagination-BI08JkmR.d.ts +1 -0
- package/dist/runtime/{router-BSBI1oN1.js → router-C1eC9yy5.js} +462 -419
- package/dist/runtime/router-C1eC9yy5.js.map +1 -0
- package/dist/runtime/routes-DnU39R7c.js +152 -0
- package/dist/runtime/routes-DnU39R7c.js.map +1 -0
- package/dist/runtime/{schema-D1wOqiNH.js → schema-BSjepoNF.js} +271 -6
- package/dist/runtime/schema-BSjepoNF.js.map +1 -0
- package/dist/runtime/server.d.ts +5 -4
- package/dist/runtime/server.js +3 -3
- package/dist/runtime/server.js.map +1 -1
- package/dist/runtime/{sync-DzUwA8W9.js → sync-BwgS19Xy.js} +4 -16
- package/dist/runtime/sync-BwgS19Xy.js.map +1 -0
- package/dist/runtime/{sync-D-GK2sv9.d.ts → sync-By2hX5ev.d.ts} +1 -2
- package/dist/runtime/{types-DeCCyqLU-BIm7rU-0.d.ts → types-DeCCyqLU-CHx7KFtx.d.ts} +2 -2
- package/package.json +7 -1
- package/src/cli/agent-files.ts +2 -0
- package/src/cli/build/asset-names.ts +190 -0
- package/src/cli/build/managed-client.ts +151 -81
- package/src/cli/build/managed-server.ts +4 -4
- package/src/cli/build/managed.ts +5 -6
- package/src/cli/command.ts +7 -15
- package/src/cli/control-client.ts +7 -9
- package/src/cli/deploy.ts +45 -15
- package/src/cli/dev.ts +50 -99
- package/src/cli/image-assets.ts +5 -2
- package/src/cli/managed-client-boundaries.ts +6 -6
- package/src/cli/managed-dev-platform.ts +52 -66
- package/src/cli/managed-exports.ts +5 -66
- package/src/cli/new-app.ts +7 -2
- package/src/cli/path.ts +11 -0
- package/src/cli/route-codegen.ts +2 -1
- package/src/cli/route-static.ts +3 -2
- package/src/cli/upload-journal.ts +130 -0
- package/src/client/bootstrap.ts +1 -110
- package/src/client/errors.ts +1 -70
- package/src/client/files.ts +1 -233
- package/src/client/hooks.ts +1 -367
- package/src/client/id.ts +1 -263
- package/src/client/image.ts +1 -28
- package/src/client/index.ts +1 -126
- package/src/client/jsx-dev-runtime.ts +1 -2
- package/src/client/jsx-runtime.ts +1 -2
- package/src/client/managed-client.ts +1 -729
- package/src/client/managed-upgrade.ts +1 -283
- package/src/client/page-observers.ts +1 -77
- package/src/client/query.ts +1 -17
- package/src/client/recovery-journal.ts +1 -195
- package/src/client/route-boundaries.ts +1 -184
- package/src/client/router-history.ts +1 -152
- package/src/client/router-store.ts +1 -644
- package/src/client/router.ts +1 -324
- package/src/client/routes.ts +1 -28
- package/src/client/sync.ts +1 -286
- package/src/dev-runtime/id.ts +1 -1
- package/src/dev-runtime/managed-functions.ts +10 -18
- package/src/dev-runtime/managed-sync.ts +16 -16
- package/src/dev-runtime/sync.ts +6 -4
- package/src/internal/api.ts +1 -156
- package/src/internal/client.ts +1 -186
- package/src/internal/host.ts +1 -1
- package/src/internal/http-paths.ts +1 -4
- package/src/internal/routes.ts +1 -45
- package/src/internal/server.ts +1 -3
- package/src/internal/types.ts +1 -2
- package/src/server/index.ts +1 -27
- package/dist/cli/managed-release-WHYLZwaS.mjs +0 -10902
- package/dist/cli/managed-release-WHYLZwaS.mjs.map +0 -1
- package/dist/cli/managed-release.d.mts +0 -1
- package/dist/cli/managed-release.mjs +0 -14
- package/dist/cli/managed-release.mjs.map +0 -1
- package/dist/runtime/bootstrap-BISQSn_O.js.map +0 -1
- package/dist/runtime/descriptor-CTY4mtwS-cS43EbwS.js +0 -269
- package/dist/runtime/descriptor-CTY4mtwS-cS43EbwS.js.map +0 -1
- package/dist/runtime/id--1m0NuUL.js.map +0 -1
- package/dist/runtime/id-CBOt2kDo.d.ts +0 -1
- package/dist/runtime/identity-QjtJRxBD.d.ts +0 -2
- package/dist/runtime/image-Djtjy4Z8.js.map +0 -1
- package/dist/runtime/internal/api.js.map +0 -1
- package/dist/runtime/pagination-CBOt2kDo.d.ts +0 -1
- package/dist/runtime/router-BSBI1oN1.js.map +0 -1
- package/dist/runtime/routes-Ce8TVP-T.js +0 -690
- package/dist/runtime/routes-Ce8TVP-T.js.map +0 -1
- package/dist/runtime/schema-D1wOqiNH.js.map +0 -1
- package/dist/runtime/sync-DzUwA8W9.js.map +0 -1
- package/src/cli/managed-release-bin.ts +0 -13
- package/src/cli/managed-release.ts +0 -260
package/dist/runtime/client.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { C as Files, S as BrowserSession, a as url, b as syncClientInternals, c as useMatch, d as useRoute, l as useNavigate, n as NavLink, o as useBlocker, r as Redirect, s as useLocation, t as Link, u as useNavigation, v as SyncClient, w as ClientInfrastructureError, x as syncRuntime } from "./router-
|
|
3
|
-
import { functionPathOf } from "./
|
|
4
|
-
import { n as PaginationPageSize } from "./pagination
|
|
5
|
-
import { t as Image } from "./image-
|
|
1
|
+
import { A as encodeTransportObject, h as Result$2, v as inspectResult, y as pending } from "./id-BrEnxY-r.js";
|
|
2
|
+
import { C as Files, S as BrowserSession, a as url, b as syncClientInternals, c as useMatch, d as useRoute, l as useNavigate, n as NavLink, o as useBlocker, r as Redirect, s as useLocation, t as Link, u as useNavigation, v as SyncClient, w as ClientInfrastructureError, x as syncRuntime } from "./router-C1eC9yy5.js";
|
|
3
|
+
import { n as functionPathOf } from "./api-C-tltz6s.js";
|
|
4
|
+
import { n as PaginationPageSize } from "./pagination--f4kMKf6.js";
|
|
5
|
+
import { t as Image } from "./image-gofzZeCm.js";
|
|
6
6
|
import { Effect, Schema } from "effect";
|
|
7
7
|
import { useCallback, useCallback as useCallback$1, useContext, useDebugValue, useDebugValue as useDebugValue$1, useEffect, useEffect as useEffect$1, useErrorBoundary, useId as useElementId, useImperativeHandle, useLayoutEffect, useMemo, useMemo as useMemo$1, useReducer, useRef, useState, useState as useState$1 } from "preact/hooks";
|
|
8
8
|
import { Component, Fragment, cloneElement, createContext, createElement, createRef, h, isValidElement, toChildArray } from "preact";
|
|
9
|
-
//#region
|
|
9
|
+
//#region ../platform/dist/versions/1/browser/query.js
|
|
10
10
|
const QuerySkipTypeId = Symbol.for("ignotum/client/QuerySkip");
|
|
11
11
|
var QuerySkipToken = class {
|
|
12
12
|
[QuerySkipTypeId] = QuerySkipTypeId;
|
|
@@ -15,7 +15,7 @@ const skip = Object.freeze(new QuerySkipToken());
|
|
|
15
15
|
const Query = { skip };
|
|
16
16
|
const isQuerySkip = (value) => value === skip;
|
|
17
17
|
//#endregion
|
|
18
|
-
//#region
|
|
18
|
+
//#region ../platform/dist/versions/1/browser/page-observers.js
|
|
19
19
|
const makePageObservers = (onChange, releaseObserver) => {
|
|
20
20
|
const pages = /* @__PURE__ */ new Map();
|
|
21
21
|
let disposed = false;
|
|
@@ -65,7 +65,7 @@ const makePageObservers = (onChange, releaseObserver) => {
|
|
|
65
65
|
};
|
|
66
66
|
};
|
|
67
67
|
//#endregion
|
|
68
|
-
//#region
|
|
68
|
+
//#region ../platform/dist/versions/1/browser/hooks.js
|
|
69
69
|
function useQuery(reference, args) {
|
|
70
70
|
const functionPath = functionPathOf(reference);
|
|
71
71
|
const skipped = isQuerySkip(args);
|
|
@@ -290,7 +290,7 @@ function useId() {
|
|
|
290
290
|
};
|
|
291
291
|
}
|
|
292
292
|
//#endregion
|
|
293
|
-
//#region
|
|
293
|
+
//#region ../platform/dist/versions/1/browser/index.js
|
|
294
294
|
const Result = { match: Result$2.match };
|
|
295
295
|
//#endregion
|
|
296
296
|
export { Component, Files, Fragment, Image, Link, NavLink, Query, Redirect, Result, cloneElement, createContext, createElement, createRef, h, isValidElement, toChildArray, url, useBlocker, useCallback, useContext, useDebugValue, useEffect, useElementId, useErrorBoundary, useId, useImperativeHandle, useLayoutEffect, useLocation, useMatch, useMemo, useMutation, useNavigate, useNavigation, usePaginatedQuery, useQuery, useReducer, useRef, useRoute, useState };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["useState","useCallback","useMemo","RuntimeResult","contractResult"],"sources":["../../src/client/query.ts","../../src/client/page-observers.ts","../../src/client/hooks.ts","../../src/client/index.ts"],"sourcesContent":["const QuerySkipTypeId: unique symbol = Symbol.for(\"ignotum/client/QuerySkip\");\n\nexport interface QuerySkip {\n readonly [QuerySkipTypeId]: typeof QuerySkipTypeId;\n}\n\nclass QuerySkipToken implements QuerySkip {\n readonly [QuerySkipTypeId]: typeof QuerySkipTypeId = QuerySkipTypeId;\n}\n\nconst skip: QuerySkip = Object.freeze(new QuerySkipToken());\n\nexport const Query = { skip };\n\nexport const isQuerySkip = <Value extends object | undefined>(\n value: Value,\n): value is Value & QuerySkip => value === skip;\n","import { Effect, Schema } from \"effect\";\n\nimport type { FunctionAddress } from \"@ignotum/contracts/runtime/sync\";\nimport { SyncClient, syncClientInternals } from \"./sync.js\";\nimport type { ClientInfrastructureError } from \"./errors.js\";\n\ntype QueryObserver = Effect.Success<ReturnType<SyncClient[\"Service\"][\"observe\"]>>;\n\ninterface PageEntry {\n readonly acquire: Effect.Effect<QueryObserver | undefined, ClientInfrastructureError, SyncClient>;\n release: (() => void) | undefined;\n released: boolean;\n}\n\n// @effect-diagnostics-next-line missingPipeableSignature:off This hook-owned lifecycle takes two callbacks, not a data argument.\nexport const makePageObservers = (\n onChange: () => void,\n releaseObserver: (release: Effect.Effect<void>) => void,\n) => {\n const pages = new Map<string, PageEntry>();\n let disposed = false;\n\n const releaseEntry = (entry: PageEntry) => {\n entry.released = true;\n entry.release?.();\n };\n\n const observe = Effect.fn(\"PageObservers.observe\")(function* (\n functionAddress: FunctionAddress,\n args: Schema.Json,\n ) {\n if (disposed) return;\n const key = syncClientInternals.queryIdentity(functionAddress, args);\n const existing = pages.get(key);\n if (existing !== undefined) return yield* existing.acquire;\n\n const entry: PageEntry = {\n acquire: yield* Effect.cached(\n Effect.gen(function* () {\n const client = yield* SyncClient;\n const observer = yield* client.observe(functionAddress, args);\n if (entry.released) {\n releaseObserver(observer.release);\n return;\n }\n const unsubscribe = observer.subscribe(onChange);\n entry.release = () => {\n unsubscribe();\n releaseObserver(observer.release);\n };\n return observer;\n }),\n ),\n release: undefined,\n released: false,\n };\n pages.set(key, entry);\n return yield* entry.acquire;\n });\n\n return {\n observe,\n retain: (keys: ReadonlySet<string>) => {\n for (const [key, entry] of pages) {\n if (keys.has(key)) continue;\n pages.delete(key);\n releaseEntry(entry);\n }\n },\n release: () => {\n if (disposed) return;\n disposed = true;\n for (const entry of pages.values()) releaseEntry(entry);\n pages.clear();\n },\n };\n};\n","import { BrowserSession, type IdState } from \"./id.js\";\nimport type { ProfileField } from \"@ignotum/contracts/id\";\nimport { Effect, Schema } from \"effect\";\nimport { useCallback, useDebugValue, useEffect, useMemo, useState } from \"preact/hooks\";\n\nimport { functionPathOf, type FunctionReference } from \"../internal/api.js\";\nimport { inspectResult, pending, Result as RuntimeResult } from \"@ignotum/contracts/runtime/result\";\nimport type { ErrorValue, QueryResult, SettledResult } from \"@ignotum/contracts/runtime/result\";\nimport {\n PaginationPageSize,\n type PaginationOptions,\n type PaginationPage,\n} from \"@ignotum/contracts/runtime/pagination\";\nimport { encodeTransportObject } from \"@ignotum/contracts/runtime/sync\";\nimport { ClientInfrastructureError } from \"./errors.js\";\nimport { isQuerySkip, type QuerySkip } from \"./query.js\";\n// oxlint-disable-next-line anti-slop-effect/no-service-constructor-imports -- Each mounted pagination hook owns and releases its page observers.\nimport { makePageObservers } from \"./page-observers.js\";\nimport { SyncClient, syncClientInternals, syncRuntime } from \"./sync.js\";\n\n// @effect-diagnostics-next-line missingPipeableSignature:off React hooks are not pipeable functions.\nexport function useQuery<Success, Failure extends ErrorValue>(\n reference: FunctionReference<\"Query\", void, Success, Failure>,\n): QueryResult<Success, Failure>;\nexport function useQuery<Success, Failure extends ErrorValue>(\n reference: FunctionReference<\"Query\", void, Success, Failure>,\n args: QuerySkip,\n): QueryResult<Success, Failure>;\nexport function useQuery<Args extends object, Success, Failure extends ErrorValue>(\n reference: FunctionReference<\"Query\", Args, Success, Failure>,\n args: NoInfer<Args> | QuerySkip,\n): QueryResult<Success, Failure>;\n// @effect-diagnostics-next-line missingPipeableSignature:off React hooks must remain direct calls so hook order is statically visible.\nexport function useQuery<Args extends object, Success, Failure extends ErrorValue>(\n reference: FunctionReference<\"Query\", Args | void, Success, Failure>,\n args?: Args | QuerySkip,\n): QueryResult<Success, Failure> {\n const functionPath = functionPathOf(reference);\n const skipped = isQuerySkip(args);\n const input = args === undefined || skipped ? {} : args;\n const jsonArgs = encodeTransportObject(input);\n const identity = skipped\n ? `skip:${functionPath}`\n : syncClientInternals.queryIdentity(functionPath, jsonArgs);\n const [state, setState] = useState<{\n readonly identity: string;\n readonly result: QueryResult<Success, Failure> | ClientInfrastructureError;\n }>(() => ({ identity, result: pending() }));\n\n useDebugValue({ args: input, function: functionPath, result: state.result });\n useEffect(() => {\n if (skipped) return;\n\n let active = true;\n let release: (() => void) | undefined;\n\n void syncRuntime\n .runPromise(\n Effect.gen(function* () {\n const client = yield* SyncClient;\n return yield* client.observe(functionPath, jsonArgs);\n }),\n )\n .then(\n (observer) => {\n if (!active) {\n syncRuntime.runFork(observer.release);\n return;\n }\n const update = () => {\n // SAFETY: the function reference couples this subscription's runtime\n // path to its generated success and failure types.\n const result = observer.getSnapshot() as\n | QueryResult<Success, Failure>\n | ClientInfrastructureError;\n setState({ identity, result });\n };\n release = observer.subscribe(update);\n update();\n const releaseObserver = release;\n release = () => {\n releaseObserver();\n syncRuntime.runFork(observer.release);\n };\n },\n (error) => {\n if (active && Schema.is(ClientInfrastructureError)(error)) {\n setState({ identity, result: error });\n }\n },\n );\n\n return () => {\n active = false;\n release?.();\n };\n }, [identity]);\n\n if (skipped) return pending();\n\n if (state.identity !== identity) {\n return pending();\n }\n\n const result = state.result;\n if (Schema.is(ClientInfrastructureError)(result)) throw result;\n return result;\n}\n\nexport type PaginationStatus = \"CanLoadMore\" | \"Exhausted\" | \"LoadingMore\";\n\nexport interface PaginatedQueryValue<Item> {\n readonly items: ReadonlyArray<Item>;\n readonly loadMore: () => void;\n readonly status: PaginationStatus;\n}\n\nexport interface PaginatedQueryOptions {\n readonly pageSize?: number;\n}\n\ntype PaginationArguments = { readonly pagination: PaginationOptions };\ntype ApplicationPaginationArguments<Args extends PaginationArguments> = Omit<Args, \"pagination\">;\n\n// @effect-diagnostics-next-line missingPipeableSignature:off React hooks are not pipeable functions.\nexport function usePaginatedQuery<\n Args extends PaginationArguments,\n Item,\n Failure extends ErrorValue,\n>(\n reference: keyof ApplicationPaginationArguments<Args> extends never\n ? FunctionReference<\"Query\", Args, PaginationPage<Item>, Failure>\n : never,\n): QueryResult<PaginatedQueryValue<Item>, Failure>;\nexport function usePaginatedQuery<\n Args extends PaginationArguments,\n Item,\n Failure extends ErrorValue,\n>(\n reference: FunctionReference<\"Query\", Args, PaginationPage<Item>, Failure>,\n args: NoInfer<ApplicationPaginationArguments<Args>> | QuerySkip,\n options?: PaginatedQueryOptions,\n): QueryResult<PaginatedQueryValue<Item>, Failure>;\n// @effect-diagnostics-next-line missingPipeableSignature:off React hooks must remain direct calls so hook order is statically visible.\nexport function usePaginatedQuery<Args extends object, Item, Failure extends ErrorValue>(\n reference: FunctionReference<\"Query\", Args & PaginationArguments, PaginationPage<Item>, Failure>,\n args?: Args | QuerySkip,\n options: PaginatedQueryOptions = {},\n): QueryResult<PaginatedQueryValue<Item>, Failure> {\n const functionPath = functionPathOf(reference);\n const skipped = isQuerySkip(args);\n const input = args === undefined || skipped ? {} : args;\n const jsonArgs = encodeTransportObject(input);\n const pageSize = Schema.decodeSync(PaginationPageSize)(options.pageSize ?? 20);\n const identity = skipped\n ? `skip:${functionPath}`\n : syncClientInternals.queryIdentity(functionPath, jsonArgs);\n const [requestedPages, setRequestedPages] = useState(1);\n const [refresh, setRefresh] = useState(0);\n const [state, setState] = useState<{\n readonly identity: string;\n readonly result: QueryResult<PaginatedQueryValue<Item>, Failure> | ClientInfrastructureError;\n }>(() => ({ identity, result: pending() }));\n const loadMore = useCallback(() => setRequestedPages((count) => count + 1), []);\n const pages = useMemo(\n () =>\n makePageObservers(\n () => setRefresh((version) => version + 1),\n (release) => {\n syncRuntime.runFork(release);\n },\n ),\n [identity, pageSize],\n );\n\n useEffect(() => () => pages.release(), [pages]);\n\n useDebugValue({ args: input, function: functionPath, result: state.result });\n\n useEffect(() => {\n setRequestedPages(1);\n setState({ identity, result: pending() });\n }, [identity, pageSize]);\n\n useEffect(() => {\n if (skipped) return;\n\n let active = true;\n const usedPages = new Set<string>();\n\n void syncRuntime\n .runPromise(\n Effect.gen(function* () {\n const items: Item[] = [];\n let cursor: PaginationOptions[\"cursor\"] = null;\n\n for (let pageNumber = 0; pageNumber < requestedPages; pageNumber += 1) {\n const pageArgs = encodeTransportObject({\n ...input,\n pagination: { cursor, pageSize },\n });\n usedPages.add(syncClientInternals.queryIdentity(functionPath, pageArgs));\n const observer = yield* pages.observe(functionPath, pageArgs);\n if (!active || observer === undefined) return;\n\n const snapshot = observer.getSnapshot();\n if (Schema.is(ClientInfrastructureError)(snapshot)) {\n setState({ identity, result: snapshot });\n return;\n }\n const inspected = inspectResult(snapshot);\n if (inspected === undefined) {\n setState({\n identity,\n result:\n items.length === 0\n ? pending()\n : RuntimeResult.succeed({ items, loadMore, status: \"LoadingMore\" }),\n });\n return;\n }\n if (inspected.type === \"Failure\") {\n // SAFETY: pagination changes only the successful value. The\n // failure channel is the generated query reference's Failure.\n setState({\n identity,\n result: snapshot as QueryResult<PaginatedQueryValue<Item>, Failure>,\n });\n return;\n }\n // SAFETY: the generated reference and values.page validator couple\n // this successful snapshot to PaginationPage<Item>.\n const page = inspected.value as PaginationPage<Item>;\n items.push(...page.items);\n cursor = page.nextCursor;\n if (cursor === null) {\n setState({\n identity,\n result: RuntimeResult.succeed({ items, loadMore, status: \"Exhausted\" }),\n });\n return;\n }\n }\n\n setState({\n identity,\n result: RuntimeResult.succeed({ items, loadMore, status: \"CanLoadMore\" }),\n });\n }).pipe(\n Effect.ensuring(\n Effect.sync(() => {\n if (active) pages.retain(usedPages);\n }),\n ),\n ),\n )\n .catch((error) => {\n if (active && Schema.is(ClientInfrastructureError)(error)) {\n setState({ identity, result: error });\n }\n });\n\n return () => {\n active = false;\n };\n }, [functionPath, identity, loadMore, pageSize, pages, refresh, requestedPages, skipped]);\n\n if (skipped || state.identity !== identity) return pending();\n const result = state.result;\n if (Schema.is(ClientInfrastructureError)(result)) throw result;\n return result;\n}\n\ntype Mutation<Args, Success, Failure extends ErrorValue> = [Args] extends [void]\n ? () => Promise<SettledResult<Success, Failure>>\n : (args: Args) => Promise<SettledResult<Success, Failure>>;\n\nexport const useMutation = <Args extends object | void, Success, Failure extends ErrorValue>(\n reference: FunctionReference<\"Mutation\", Args, Success, Failure>,\n): Mutation<Args, Success, Failure> =>\n useMemo(() => {\n const mutate = (args: Args | undefined) => {\n const functionPath = functionPathOf(reference);\n const input = args === undefined ? {} : args;\n return syncRuntime.runPromise<SettledResult<Success, Failure>, ClientInfrastructureError>(\n Effect.gen(function* () {\n const client = yield* SyncClient;\n // SAFETY: generated function references bind the runtime path to the\n // declared public result types validated by the server executor.\n // oxlint-disable-next-line anti-slop/no-chained-type-assertions -- The untyped sync transport deliberately erases the generated reference's result parameters.\n return (yield* client.mutate(functionPath, input)) as unknown as SettledResult<\n Success,\n Failure\n >;\n }),\n );\n };\n // SAFETY: the builder gives argument-free functions Args = void. At runtime\n // both call shapes normalize omitted arguments to the empty JSON object.\n return mutate as Mutation<Args, Success, Failure>;\n }, [reference]);\n\nexport type IdOptions = {\n readonly profile?: ReadonlyArray<ProfileField>;\n readonly returnTo?: string;\n};\nexport type IdResult = IdState & {\n readonly signIn: (options?: IdOptions) => Promise<void>;\n readonly requestProfile: (\n fields: ReadonlyArray<ProfileField>,\n options?: { readonly returnTo?: string },\n ) => Promise<void>;\n readonly signOut: () => Promise<void>;\n};\n\nexport function useId(): IdResult {\n const [state, setState] = useState<IdState>({ status: \"pending\" });\n useEffect(() => {\n let active = true;\n let unsubscribe: (() => void) | undefined;\n void syncRuntime.runPromise(BrowserSession).then((session) => {\n if (!active) return;\n const update = () => setState(session.snapshot());\n unsubscribe = session.subscribe(update);\n update();\n });\n return () => {\n active = false;\n unsubscribe?.();\n };\n }, []);\n const actions = useMemo(\n () => ({\n signIn: (options?: IdOptions) =>\n syncRuntime.runPromise(\n Effect.gen(function* () {\n return yield* (yield* BrowserSession).start(\n \"signIn\",\n options?.profile ?? [],\n options?.returnTo,\n );\n }),\n ),\n requestProfile: (\n fields: ReadonlyArray<ProfileField>,\n options?: { readonly returnTo?: string },\n ) =>\n syncRuntime.runPromise(\n Effect.gen(function* () {\n return yield* (yield* BrowserSession).start(\n \"requestProfile\",\n fields,\n options?.returnTo,\n );\n }),\n ),\n signOut: () =>\n syncRuntime.runPromise(\n Effect.gen(function* () {\n return yield* (yield* BrowserSession).signOut;\n }),\n ),\n }),\n [],\n );\n return { ...state, ...actions };\n}\n","import { Result as contractResult } from \"@ignotum/contracts/runtime/result\";\nimport type {\n ErrorValue,\n QueryResult as ContractQueryResult,\n SettledResult,\n} from \"@ignotum/contracts/runtime/result\";\n\nexport const Result = { match: contractResult.match };\nexport type Result<Value, Error extends ErrorValue> = SettledResult<Value, Error>;\nexport type QueryResult<Value, Error extends ErrorValue> = ContractQueryResult<Value, Error>;\nexport type { InternalServerError } from \"@ignotum/contracts/runtime/result\";\nexport type {\n FileFormat,\n FileMetadata,\n FileMimeType,\n FileValue,\n} from \"@ignotum/contracts/schema/file\";\nexport { Files } from \"./files.js\";\nexport { useId, useMutation, usePaginatedQuery, useQuery } from \"./hooks.js\";\nexport type { PaginatedQueryOptions, PaginatedQueryValue, PaginationStatus } from \"./hooks.js\";\nexport { Query } from \"./query.js\";\nexport type { QuerySkip } from \"./query.js\";\nexport { Image } from \"./image.js\";\nexport type { ImageProps, ImageSource } from \"./image.js\";\n\nexport {\n Component,\n Fragment,\n cloneElement,\n createContext,\n createElement,\n createRef,\n h,\n isValidElement,\n toChildArray,\n} from \"preact\";\nexport type {\n AnyComponent,\n Attributes,\n ClassAttributes,\n ComponentChild,\n ComponentChildren,\n ComponentClass,\n ComponentConstructor,\n ComponentFactory,\n ComponentProps,\n ComponentType,\n Consumer,\n Context,\n ContextType,\n ErrorInfo,\n FunctionComponent,\n FunctionalComponent,\n JSX,\n Key,\n PreactContext,\n PreactConsumer,\n PreactDOMAttributes,\n PreactProvider,\n Provider,\n Ref,\n RefCallback,\n RefObject,\n RenderableProps,\n TargetedAnimationEvent,\n TargetedClipboardEvent,\n TargetedCommandEvent,\n TargetedCompositionEvent,\n TargetedDragEvent,\n TargetedEvent,\n TargetedFocusEvent,\n TargetedInputEvent,\n TargetedKeyboardEvent,\n TargetedMouseEvent,\n TargetedPictureInPictureEvent,\n TargetedPointerEvent,\n TargetedSnapEvent,\n TargetedSubmitEvent,\n TargetedToggleEvent,\n TargetedTouchEvent,\n TargetedTransitionEvent,\n TargetedUIEvent,\n TargetedWheelEvent,\n VNode,\n} from \"preact\";\nexport {\n useCallback,\n useContext,\n useDebugValue,\n useEffect,\n useErrorBoundary,\n useId as useElementId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"preact/hooks\";\nexport type { Dispatch, Reducer, StateUpdater } from \"preact/hooks\";\n\nexport type { User, UserId, ProfileField } from \"@ignotum/contracts/id\";\nexport type { IdResult, IdOptions } from \"./hooks.js\";\n\nexport type {\n RouteInputs,\n RouteProps,\n RouteMatch,\n RouteLocation,\n NavigationResult,\n} from \"./routes.js\";\n\nexport {\n Link,\n NavLink,\n Redirect,\n url,\n useNavigate,\n useRoute,\n useMatch,\n useLocation,\n useNavigation,\n useBlocker,\n} from \"./router.js\";\n\nexport type { BlockerState } from \"./router-store.js\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","names":["useState","useCallback","useMemo","Result","Result$1"],"sources":["../../../platform/dist/versions/1/browser/query.js","../../../platform/dist/versions/1/browser/page-observers.js","../../../platform/dist/versions/1/browser/hooks.js","../../../platform/dist/versions/1/browser/index.js"],"sourcesContent":["//#region src/versions/1/browser/query.ts\nconst QuerySkipTypeId = Symbol.for(\"ignotum/client/QuerySkip\");\nvar QuerySkipToken = class {\n\t[QuerySkipTypeId] = QuerySkipTypeId;\n};\nconst skip = Object.freeze(new QuerySkipToken());\nconst Query = { skip };\nconst isQuerySkip = (value) => value === skip;\n//#endregion\nexport { Query, isQuerySkip };\n\n//# sourceMappingURL=query.js.map","import { SyncClient, syncClientInternals } from \"./sync.js\";\nimport { Effect } from \"effect\";\n//#region src/versions/1/browser/page-observers.ts\nconst makePageObservers = (onChange, releaseObserver) => {\n\tconst pages = /* @__PURE__ */ new Map();\n\tlet disposed = false;\n\tconst releaseEntry = (entry) => {\n\t\tentry.released = true;\n\t\tentry.release?.();\n\t};\n\treturn {\n\t\tobserve: Effect.fn(\"PageObservers.observe\")(function* (functionAddress, args) {\n\t\t\tif (disposed) return;\n\t\t\tconst key = syncClientInternals.queryIdentity(functionAddress, args);\n\t\t\tconst existing = pages.get(key);\n\t\t\tif (existing !== void 0) return yield* existing.acquire;\n\t\t\tconst entry = {\n\t\t\t\tacquire: yield* Effect.cached(Effect.gen(function* () {\n\t\t\t\t\tconst observer = yield* (yield* SyncClient).observe(functionAddress, args);\n\t\t\t\t\tif (entry.released) {\n\t\t\t\t\t\treleaseObserver(observer.release);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst unsubscribe = observer.subscribe(onChange);\n\t\t\t\t\tentry.release = () => {\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\treleaseObserver(observer.release);\n\t\t\t\t\t};\n\t\t\t\t\treturn observer;\n\t\t\t\t})),\n\t\t\t\trelease: void 0,\n\t\t\t\treleased: false\n\t\t\t};\n\t\t\tpages.set(key, entry);\n\t\t\treturn yield* entry.acquire;\n\t\t}),\n\t\tretain: (keys) => {\n\t\t\tfor (const [key, entry] of pages) {\n\t\t\t\tif (keys.has(key)) continue;\n\t\t\t\tpages.delete(key);\n\t\t\t\treleaseEntry(entry);\n\t\t\t}\n\t\t},\n\t\trelease: () => {\n\t\t\tif (disposed) return;\n\t\t\tdisposed = true;\n\t\t\tfor (const entry of pages.values()) releaseEntry(entry);\n\t\t\tpages.clear();\n\t\t}\n\t};\n};\n//#endregion\nexport { makePageObservers };\n\n//# sourceMappingURL=page-observers.js.map","import { ClientInfrastructureError } from \"./errors.js\";\nimport { BrowserSession } from \"./id.js\";\nimport { functionPathOf } from \"../common/api.js\";\nimport { isQuerySkip } from \"./query.js\";\nimport { SyncClient, syncClientInternals, syncRuntime } from \"./sync.js\";\nimport { makePageObservers } from \"./page-observers.js\";\nimport { Effect, Schema } from \"effect\";\nimport { encodeTransportObject } from \"@ignotum/contracts/runtime/sync\";\nimport { useCallback, useDebugValue, useEffect, useMemo, useState } from \"preact/hooks\";\nimport { Result, inspectResult, pending } from \"@ignotum/contracts/runtime/result\";\nimport { PaginationPageSize } from \"@ignotum/contracts/runtime/pagination\";\n//#region src/versions/1/browser/hooks.ts\nfunction useQuery(reference, args) {\n\tconst functionPath = functionPathOf(reference);\n\tconst skipped = isQuerySkip(args);\n\tconst input = args === void 0 || skipped ? {} : args;\n\tconst jsonArgs = encodeTransportObject(input);\n\tconst identity = skipped ? `skip:${functionPath}` : syncClientInternals.queryIdentity(functionPath, jsonArgs);\n\tconst [state, setState] = useState(() => ({\n\t\tidentity,\n\t\tresult: pending()\n\t}));\n\tuseDebugValue({\n\t\targs: input,\n\t\tfunction: functionPath,\n\t\tresult: state.result\n\t});\n\tuseEffect(() => {\n\t\tif (skipped) return;\n\t\tlet active = true;\n\t\tlet release;\n\t\tsyncRuntime.runPromise(Effect.gen(function* () {\n\t\t\treturn yield* (yield* SyncClient).observe(functionPath, jsonArgs);\n\t\t})).then((observer) => {\n\t\t\tif (!active) {\n\t\t\t\tsyncRuntime.runFork(observer.release);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst update = () => {\n\t\t\t\tconst result = observer.getSnapshot();\n\t\t\t\tsetState({\n\t\t\t\t\tidentity,\n\t\t\t\t\tresult\n\t\t\t\t});\n\t\t\t};\n\t\t\trelease = observer.subscribe(update);\n\t\t\tupdate();\n\t\t\tconst releaseObserver = release;\n\t\t\trelease = () => {\n\t\t\t\treleaseObserver();\n\t\t\t\tsyncRuntime.runFork(observer.release);\n\t\t\t};\n\t\t}, (error) => {\n\t\t\tif (active && Schema.is(ClientInfrastructureError)(error)) setState({\n\t\t\t\tidentity,\n\t\t\t\tresult: error\n\t\t\t});\n\t\t});\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\trelease?.();\n\t\t};\n\t}, [identity]);\n\tif (skipped) return pending();\n\tif (state.identity !== identity) return pending();\n\tconst result = state.result;\n\tif (Schema.is(ClientInfrastructureError)(result)) throw result;\n\treturn result;\n}\nfunction usePaginatedQuery(reference, args, options = {}) {\n\tconst functionPath = functionPathOf(reference);\n\tconst skipped = isQuerySkip(args);\n\tconst input = args === void 0 || skipped ? {} : args;\n\tconst jsonArgs = encodeTransportObject(input);\n\tconst pageSize = Schema.decodeSync(PaginationPageSize)(options.pageSize ?? 20);\n\tconst identity = skipped ? `skip:${functionPath}` : syncClientInternals.queryIdentity(functionPath, jsonArgs);\n\tconst [requestedPages, setRequestedPages] = useState(1);\n\tconst [refresh, setRefresh] = useState(0);\n\tconst [state, setState] = useState(() => ({\n\t\tidentity,\n\t\tresult: pending()\n\t}));\n\tconst loadMore = useCallback(() => setRequestedPages((count) => count + 1), []);\n\tconst pages = useMemo(() => makePageObservers(() => setRefresh((version) => version + 1), (release) => {\n\t\tsyncRuntime.runFork(release);\n\t}), [identity, pageSize]);\n\tuseEffect(() => () => pages.release(), [pages]);\n\tuseDebugValue({\n\t\targs: input,\n\t\tfunction: functionPath,\n\t\tresult: state.result\n\t});\n\tuseEffect(() => {\n\t\tsetRequestedPages(1);\n\t\tsetState({\n\t\t\tidentity,\n\t\t\tresult: pending()\n\t\t});\n\t}, [identity, pageSize]);\n\tuseEffect(() => {\n\t\tif (skipped) return;\n\t\tlet active = true;\n\t\tconst usedPages = /* @__PURE__ */ new Set();\n\t\tsyncRuntime.runPromise(Effect.gen(function* () {\n\t\t\tconst items = [];\n\t\t\tlet cursor = null;\n\t\t\tfor (let pageNumber = 0; pageNumber < requestedPages; pageNumber += 1) {\n\t\t\t\tconst pageArgs = encodeTransportObject({\n\t\t\t\t\t...input,\n\t\t\t\t\tpagination: {\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t\tpageSize\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tusedPages.add(syncClientInternals.queryIdentity(functionPath, pageArgs));\n\t\t\t\tconst observer = yield* pages.observe(functionPath, pageArgs);\n\t\t\t\tif (!active || observer === void 0) return;\n\t\t\t\tconst snapshot = observer.getSnapshot();\n\t\t\t\tif (Schema.is(ClientInfrastructureError)(snapshot)) {\n\t\t\t\t\tsetState({\n\t\t\t\t\t\tidentity,\n\t\t\t\t\t\tresult: snapshot\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst inspected = inspectResult(snapshot);\n\t\t\t\tif (inspected === void 0) {\n\t\t\t\t\tsetState({\n\t\t\t\t\t\tidentity,\n\t\t\t\t\t\tresult: items.length === 0 ? pending() : Result.succeed({\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tloadMore,\n\t\t\t\t\t\t\tstatus: \"LoadingMore\"\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (inspected.type === \"Failure\") {\n\t\t\t\t\tsetState({\n\t\t\t\t\t\tidentity,\n\t\t\t\t\t\tresult: snapshot\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst page = inspected.value;\n\t\t\t\titems.push(...page.items);\n\t\t\t\tcursor = page.nextCursor;\n\t\t\t\tif (cursor === null) {\n\t\t\t\t\tsetState({\n\t\t\t\t\t\tidentity,\n\t\t\t\t\t\tresult: Result.succeed({\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tloadMore,\n\t\t\t\t\t\t\tstatus: \"Exhausted\"\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetState({\n\t\t\t\tidentity,\n\t\t\t\tresult: Result.succeed({\n\t\t\t\t\titems,\n\t\t\t\t\tloadMore,\n\t\t\t\t\tstatus: \"CanLoadMore\"\n\t\t\t\t})\n\t\t\t});\n\t\t}).pipe(Effect.ensuring(Effect.sync(() => {\n\t\t\tif (active) pages.retain(usedPages);\n\t\t})))).catch((error) => {\n\t\t\tif (active && Schema.is(ClientInfrastructureError)(error)) setState({\n\t\t\t\tidentity,\n\t\t\t\tresult: error\n\t\t\t});\n\t\t});\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t};\n\t}, [\n\t\tfunctionPath,\n\t\tidentity,\n\t\tloadMore,\n\t\tpageSize,\n\t\tpages,\n\t\trefresh,\n\t\trequestedPages,\n\t\tskipped\n\t]);\n\tif (skipped || state.identity !== identity) return pending();\n\tconst result = state.result;\n\tif (Schema.is(ClientInfrastructureError)(result)) throw result;\n\treturn result;\n}\nconst useMutation = (reference) => useMemo(() => {\n\tconst mutate = (args) => {\n\t\tconst functionPath = functionPathOf(reference);\n\t\tconst input = args === void 0 ? {} : args;\n\t\treturn syncRuntime.runPromise(Effect.gen(function* () {\n\t\t\treturn yield* (yield* SyncClient).mutate(functionPath, input);\n\t\t}));\n\t};\n\treturn mutate;\n}, [reference]);\nfunction useId() {\n\tconst [state, setState] = useState({ status: \"pending\" });\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tlet unsubscribe;\n\t\tsyncRuntime.runPromise(BrowserSession).then((session) => {\n\t\t\tif (!active) return;\n\t\t\tconst update = () => setState(session.snapshot());\n\t\t\tunsubscribe = session.subscribe(update);\n\t\t\tupdate();\n\t\t});\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tunsubscribe?.();\n\t\t};\n\t}, []);\n\tconst actions = useMemo(() => ({\n\t\tsignIn: (options) => syncRuntime.runPromise(Effect.gen(function* () {\n\t\t\treturn yield* (yield* BrowserSession).start(\"signIn\", options?.profile ?? [], options?.returnTo);\n\t\t})),\n\t\trequestProfile: (fields, options) => syncRuntime.runPromise(Effect.gen(function* () {\n\t\t\treturn yield* (yield* BrowserSession).start(\"requestProfile\", fields, options?.returnTo);\n\t\t})),\n\t\tsignOut: () => syncRuntime.runPromise(Effect.gen(function* () {\n\t\t\treturn yield* (yield* BrowserSession).signOut;\n\t\t}))\n\t}), []);\n\treturn {\n\t\t...state,\n\t\t...actions\n\t};\n}\n//#endregion\nexport { useId, useMutation, usePaginatedQuery, useQuery };\n\n//# sourceMappingURL=hooks.js.map","import { Query } from \"./query.js\";\nimport { Files } from \"./files.js\";\nimport { useId, useMutation, usePaginatedQuery, useQuery } from \"./hooks.js\";\nimport { Image } from \"./image.js\";\nimport { Link, NavLink, Redirect, url, useBlocker, useLocation, useMatch, useNavigate, useNavigation, useRoute } from \"./router.js\";\nimport { useCallback, useContext, useDebugValue, useEffect, useErrorBoundary, useId as useElementId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState } from \"preact/hooks\";\nimport { Result as Result$1 } from \"@ignotum/contracts/runtime/result\";\nimport { Component, Fragment, cloneElement, createContext, createElement, createRef, h, isValidElement, toChildArray } from \"preact\";\n//#region src/versions/1/browser/index.ts\nconst Result = { match: Result$1.match };\n//#endregion\nexport { Component, Files, Fragment, Image, Link, NavLink, Query, Redirect, Result, cloneElement, createContext, createElement, createRef, h, isValidElement, toChildArray, url, useBlocker, useCallback, useContext, useDebugValue, useEffect, useElementId, useErrorBoundary, useId, useImperativeHandle, useLayoutEffect, useLocation, useMatch, useMemo, useMutation, useNavigate, useNavigation, usePaginatedQuery, useQuery, useReducer, useRef, useRoute, useState };\n\n//# sourceMappingURL=index.js.map"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./types-DeCCyqLU-CHx7KFtx.js";
|
|
@@ -1,37 +1,15 @@
|
|
|
1
|
+
import { f as defineId, n as Sha256, r as AppId, s as RequestId } from "./artifact-BB5qzoa6.js";
|
|
1
2
|
import { Brand, Effect, Effectable, Function, Option, Predicate, Schema, SchemaGetter } from "effect";
|
|
2
|
-
//#region ../contracts/dist/runtime/
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const AppId = defineId("app", "ignotum/hosted/AppId");
|
|
13
|
-
const VersionId = defineId("dep", "ignotum/hosted/VersionId");
|
|
14
|
-
defineId("team", "ignotum/hosted/TeamId");
|
|
15
|
-
const TableId = defineId("table", "ignotum/runtime/TableId");
|
|
16
|
-
defineId("prn", "ignotum/control/PlatformPrincipalId");
|
|
17
|
-
defineId("ses", "ignotum/auth/SessionId");
|
|
18
|
-
defineId("acct", "ignotum/auth/AccountId");
|
|
19
|
-
defineId("ver", "ignotum/auth/VerificationId");
|
|
20
|
-
defineId("mbr", "ignotum/auth/MemberId");
|
|
21
|
-
defineId("invt", "ignotum/auth/InvitationId");
|
|
22
|
-
defineId("dvc", "ignotum/auth/DeviceCodeId");
|
|
23
|
-
defineId("auth", "ignotum/auth/InternalId");
|
|
24
|
-
const InvocationId = defineId("inv", "ignotum/sync/InvocationId");
|
|
25
|
-
const SubscriptionId = defineId("sub", "ignotum/sync/SubscriptionId");
|
|
26
|
-
defineId("conn", "ignotum/gateway/ConnectionId");
|
|
27
|
-
defineId("nonce", "ignotum/runtime/RequestNonce");
|
|
28
|
-
const RequestId = defineId("req", "ignotum/runtime/RequestId");
|
|
29
|
-
defineId("lock", "ignotum/dev/DatabaseLockId");
|
|
30
|
-
defineId("iid", "ignotum/id/AppUserId");
|
|
31
|
-
defineId("idu", "ignotum/id/GlobalUserId");
|
|
32
|
-
defineId("ids", "ignotum/id/SessionId");
|
|
33
|
-
defineId("idr", "ignotum/id/RequestId");
|
|
34
|
-
const SessionEpoch = defineId("epoch", "ignotum/id/SessionEpoch");
|
|
3
|
+
//#region ../contracts/dist/runtime/identity.js
|
|
4
|
+
const InvocationKey = Schema.String.pipe(Schema.brand("ignotum/hosted/InvocationKey"));
|
|
5
|
+
const ActivationGeneration = Schema.Natural.pipe(Schema.brand("ignotum/hosted/ActivationGeneration"));
|
|
6
|
+
const AppStateRevision = Schema.Natural.pipe(Schema.brand("ignotum/hosted/AppStateRevision"));
|
|
7
|
+
const VersionNumber = Schema.Int.check(Schema.isGreaterThan(0)).pipe(Schema.brand("ignotum/hosted/VersionNumber"));
|
|
8
|
+
Schema.Int.check(Schema.isGreaterThan(0)).pipe(Schema.brand("ignotum/platform/ClientApiVersion"));
|
|
9
|
+
Schema.Int.check(Schema.isGreaterThan(0)).pipe(Schema.brand("ignotum/platform/ServerApiVersion"));
|
|
10
|
+
Schema.String.check(Schema.isTrimmed(), Schema.isPattern(/^[a-z][a-z0-9]*(?:[./-][a-z0-9]+)*$/), Schema.isMaxLength(128)).pipe(Schema.brand("ignotum/platform/CapabilityId"));
|
|
11
|
+
Schema.Int.check(Schema.isGreaterThan(0)).pipe(Schema.brand("ignotum/platform/ProtocolVersion"));
|
|
12
|
+
const DataHistoryId = defineId("hist", "ignotum/hosted/DataHistoryId");
|
|
35
13
|
//#endregion
|
|
36
14
|
//#region ../contracts/dist/schema/file.js
|
|
37
15
|
const fileFormats = [
|
|
@@ -229,6 +207,104 @@ const decodeTransportObject = (value, datePaths) => {
|
|
|
229
207
|
return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, decodeTransportValueAt(child, [key], encodedDatePaths)]));
|
|
230
208
|
};
|
|
231
209
|
//#endregion
|
|
210
|
+
//#region ../contracts/dist/versioned.js
|
|
211
|
+
/** Registers the first revision of a long-lived format. */
|
|
212
|
+
const initial = (schema) => schema;
|
|
213
|
+
/** Adds one adjacent migration and keeps encoding on the new current revision. */
|
|
214
|
+
const upgrade = (previous, current, migrate) => {
|
|
215
|
+
const accepted = Schema.Union([previous, current]);
|
|
216
|
+
const isCurrent = Schema.is(current);
|
|
217
|
+
return accepted.pipe(Schema.decodeTo(Schema.toType(current), {
|
|
218
|
+
decode: SchemaGetter.transform((value) => {
|
|
219
|
+
if (isCurrent(value)) return value;
|
|
220
|
+
return migrate(value);
|
|
221
|
+
}),
|
|
222
|
+
encode: SchemaGetter.transform((value) => value)
|
|
223
|
+
}));
|
|
224
|
+
};
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region ../contracts/dist/deployment.js
|
|
227
|
+
const strict = (fields) => Schema.Struct(fields).annotate({ parseOptions: { onExcessProperty: "error" } });
|
|
228
|
+
const NonnegativeInteger = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER));
|
|
229
|
+
const PositiveInteger = NonnegativeInteger.check(Schema.isGreaterThan(0));
|
|
230
|
+
const PlatformRevision = strict({
|
|
231
|
+
major: PositiveInteger,
|
|
232
|
+
minor: NonnegativeInteger
|
|
233
|
+
});
|
|
234
|
+
strict({
|
|
235
|
+
major: PositiveInteger,
|
|
236
|
+
minimumMinor: NonnegativeInteger
|
|
237
|
+
});
|
|
238
|
+
const compareRevisions = (left, right) => left.major - right.major || left.minor - right.minor;
|
|
239
|
+
const revisionPrefix = (revision) => `/_ignotum/v${revision.major}.${revision.minor}`;
|
|
240
|
+
Schema.Literals([
|
|
241
|
+
"client.js",
|
|
242
|
+
"selection",
|
|
243
|
+
"sync",
|
|
244
|
+
"session",
|
|
245
|
+
"session/requests",
|
|
246
|
+
"session/callback"
|
|
247
|
+
]);
|
|
248
|
+
const endpointUrl = (revision, endpoint) => `${revisionPrefix(revision)}/${endpoint}`;
|
|
249
|
+
Schema.String.check(Schema.isPattern(/^v[1-9][0-9]*\.(?:0|[1-9][0-9]*)$/));
|
|
250
|
+
const ServingSelection = initial(strict({
|
|
251
|
+
formatVersion: Schema.Literal(1),
|
|
252
|
+
appId: AppId,
|
|
253
|
+
versionNumber: VersionNumber.check(Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER)),
|
|
254
|
+
platform: PlatformRevision,
|
|
255
|
+
activationGeneration: ActivationGeneration.check(Schema.isGreaterThan(0), Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER)),
|
|
256
|
+
deploymentEpoch: PositiveInteger,
|
|
257
|
+
dataHistoryId: DataHistoryId
|
|
258
|
+
}));
|
|
259
|
+
const sameSelection = (left, right) => left.appId === right.appId && left.versionNumber === right.versionNumber && compareRevisions(left.platform, right.platform) === 0 && left.activationGeneration === right.activationGeneration && left.deploymentEpoch === right.deploymentEpoch && left.dataHistoryId === right.dataHistoryId;
|
|
260
|
+
strict({
|
|
261
|
+
deploymentProtocol: Schema.Literal(3),
|
|
262
|
+
selection: ServingSelection
|
|
263
|
+
});
|
|
264
|
+
strict({
|
|
265
|
+
formatVersion: Schema.Literal(1),
|
|
266
|
+
operationId: Schema.NonEmptyString,
|
|
267
|
+
source: Schema.NullOr(ServingSelection),
|
|
268
|
+
target: ServingSelection,
|
|
269
|
+
phase: Schema.Literals([
|
|
270
|
+
"Closing",
|
|
271
|
+
"Preparing",
|
|
272
|
+
"Committed",
|
|
273
|
+
"Opening",
|
|
274
|
+
"Complete",
|
|
275
|
+
"Aborting",
|
|
276
|
+
"Aborted"
|
|
277
|
+
])
|
|
278
|
+
}).check(Schema.makeFilter((transition) => {
|
|
279
|
+
if (transition.source === null) return void 0;
|
|
280
|
+
if (transition.source.appId !== transition.target.appId) return "A transition belongs to one app";
|
|
281
|
+
if (transition.target.activationGeneration <= transition.source.activationGeneration) return "A transition must advance the activation generation, including rollback";
|
|
282
|
+
})).annotate({ parseOptions: { onExcessProperty: "error" } });
|
|
283
|
+
const RevisionMap = Schema.Array(PlatformRevision).check(Schema.makeFilter((revisions) => new Set(revisions.map((revision) => revision.major)).size === revisions.length ? void 0 : "Select exactly one minor for each supported major"));
|
|
284
|
+
strict({
|
|
285
|
+
formatVersion: Schema.Literal(1),
|
|
286
|
+
operationId: Schema.NonEmptyString,
|
|
287
|
+
deploymentEpoch: PositiveInteger,
|
|
288
|
+
phase: Schema.Literals([
|
|
289
|
+
"Closing",
|
|
290
|
+
"Deploying",
|
|
291
|
+
"Verifying",
|
|
292
|
+
"Resuming",
|
|
293
|
+
"Complete"
|
|
294
|
+
]),
|
|
295
|
+
expectedBuild: Schema.String.check(Schema.isPattern(/^[a-f0-9]{64}$/)),
|
|
296
|
+
previousBuild: Schema.NullOr(Schema.String.check(Schema.isPattern(/^[a-f0-9]{64}$/))),
|
|
297
|
+
aborted: Schema.Boolean,
|
|
298
|
+
previous: RevisionMap,
|
|
299
|
+
target: RevisionMap,
|
|
300
|
+
diagnostic: Schema.NullOr(Schema.String.check(Schema.isMaxLength(4096))),
|
|
301
|
+
cursor: Schema.NullOr(Schema.NonEmptyString)
|
|
302
|
+
}).check(Schema.makeFilter((journal) => journal.aborted && journal.previousBuild === null ? "Bootstrap has no previous build to restore" : void 0));
|
|
303
|
+
Schema.Struct({
|
|
304
|
+
buildSha256: Sha256,
|
|
305
|
+
revisions: Schema.Array(PlatformRevision)
|
|
306
|
+
});
|
|
307
|
+
//#endregion
|
|
232
308
|
//#region ../contracts/dist/runtime/result.js
|
|
233
309
|
const ResultTypeId = Symbol.for("ignotum/runtime/result/Result");
|
|
234
310
|
const CompletedResultTypeId = Symbol.for("ignotum/runtime/result/Completed");
|
|
@@ -336,22 +412,6 @@ const Result$1 = {
|
|
|
336
412
|
try: tryResult
|
|
337
413
|
};
|
|
338
414
|
//#endregion
|
|
339
|
-
//#region ../contracts/dist/versioned.js
|
|
340
|
-
/** Registers the first revision of a long-lived format. */
|
|
341
|
-
const initial = (schema) => schema;
|
|
342
|
-
/** Adds one adjacent migration and keeps encoding on the new current revision. */
|
|
343
|
-
const upgrade = (previous, current, migrate) => {
|
|
344
|
-
const accepted = Schema.Union([previous, current]);
|
|
345
|
-
const isCurrent = Schema.is(current);
|
|
346
|
-
return accepted.pipe(Schema.decodeTo(Schema.toType(current), {
|
|
347
|
-
decode: SchemaGetter.transform((value) => {
|
|
348
|
-
if (isCurrent(value)) return value;
|
|
349
|
-
return migrate(value);
|
|
350
|
-
}),
|
|
351
|
-
encode: SchemaGetter.transform((value) => value)
|
|
352
|
-
}));
|
|
353
|
-
};
|
|
354
|
-
//#endregion
|
|
355
415
|
//#region ../contracts/dist/id.js
|
|
356
416
|
const DevelopmentUsername = Schema.String.check(Schema.isPattern(/^[a-z][a-z0-9_-]{0,63}$/));
|
|
357
417
|
const UserId = DevelopmentUsername.pipe(Schema.brand("ignotum/id/UserId"));
|
|
@@ -409,8 +469,13 @@ const SessionOutcome = Schema.Literals([
|
|
|
409
469
|
"ProfileUpdated",
|
|
410
470
|
"Cancelled"
|
|
411
471
|
]);
|
|
412
|
-
const
|
|
413
|
-
|
|
472
|
+
const platformRevision = {
|
|
473
|
+
major: 1,
|
|
474
|
+
minor: 0
|
|
475
|
+
};
|
|
476
|
+
const sessionPath = endpointUrl(platformRevision, "session");
|
|
477
|
+
const sessionRequestsPath = endpointUrl(platformRevision, "session/requests");
|
|
478
|
+
endpointUrl(platformRevision, "session/callback");
|
|
414
479
|
const DevelopmentSelection = initial(Schema.Struct({
|
|
415
480
|
formatVersion: Schema.Literal(1),
|
|
416
481
|
username: Schema.NullOr(DevelopmentUsername),
|
|
@@ -418,6 +483,6 @@ const DevelopmentSelection = initial(Schema.Struct({
|
|
|
418
483
|
}));
|
|
419
484
|
const developmentSelectionKey = "ignotum.id.development";
|
|
420
485
|
//#endregion
|
|
421
|
-
export {
|
|
486
|
+
export { encodeTransportObject as A, fileMimeTypes as B, sameSelection as C, datePathsOf as D, TransportObjectTypeSchema as E, constrainedFileValue as F, ActivationGeneration as G, isFileValue as H, fileFormats as I, InvocationKey as J, AppStateRevision as K, fileGrantUrlOf as L, FileId as M, RuntimeFileMetadata as N, datePathsOfObject as O, RuntimeFileOccurrence as P, fileIdOf as R, endpointUrl as S, upgrade as T, makeFileValue as U, grantFileValue as V, runtimeFileOccurrencesOf as W, failureFromWire as _, SessionResponse as a, resultFromEffect as b, UserId as c, sessionPath as d, sessionRequestsPath as f, documentNotFound as g, Result$1 as h, SessionRequest as i, FileFormat as j, decodeTransportValue as k, developmentSelectionKey as l, ErrorValueSchema as m, SessionOutcome as n, SessionState as o, ErrorBrand as p, DataHistoryId as q, SessionRedirect as r, User as s, DevelopmentSelection as t, makeIdContext as u, inspectResult as v, initial as w, ServingSelection as x, pending as y, fileLimits as z };
|
|
422
487
|
|
|
423
|
-
//# sourceMappingURL=id
|
|
488
|
+
//# sourceMappingURL=id-BrEnxY-r.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-BrEnxY-r.js","names":["Result"],"sources":["../../../contracts/dist/runtime/identity.js","../../../contracts/dist/schema/file.js","../../../contracts/dist/runtime/value.js","../../../contracts/dist/versioned.js","../../../contracts/dist/deployment.js","../../../contracts/dist/runtime/result.js","../../../contracts/dist/id.js"],"sourcesContent":["import { AppId, AuthAccountId, AuthDeviceCodeId, AuthInternalId, AuthInvitationId, AuthMemberId, AuthSessionId, AuthVerificationId, ConnectionId, DevDatabaseLockId, InvocationId, PlatformPrincipalId, RequestId, RuntimeRequestNonce, SubscriptionId, TableId, TeamId, VersionId, defineId } from \"./id.js\";\nimport { Schema } from \"effect\";\n//#region src/runtime/identity.ts\nconst InvocationKey = Schema.String.pipe(Schema.brand(\"ignotum/hosted/InvocationKey\"));\nconst ActivationGeneration = Schema.Natural.pipe(Schema.brand(\"ignotum/hosted/ActivationGeneration\"));\nconst AppStateRevision = Schema.Natural.pipe(Schema.brand(\"ignotum/hosted/AppStateRevision\"));\nconst VersionNumber = Schema.Int.check(Schema.isGreaterThan(0)).pipe(Schema.brand(\"ignotum/hosted/VersionNumber\"));\nconst ClientApiVersion = Schema.Int.check(Schema.isGreaterThan(0)).pipe(Schema.brand(\"ignotum/platform/ClientApiVersion\"));\nconst ServerApiVersion = Schema.Int.check(Schema.isGreaterThan(0)).pipe(Schema.brand(\"ignotum/platform/ServerApiVersion\"));\nconst CapabilityId = Schema.String.check(Schema.isTrimmed(), Schema.isPattern(/^[a-z][a-z0-9]*(?:[./-][a-z0-9]+)*$/), Schema.isMaxLength(128)).pipe(Schema.brand(\"ignotum/platform/CapabilityId\"));\nconst ProtocolVersion = Schema.Int.check(Schema.isGreaterThan(0)).pipe(Schema.brand(\"ignotum/platform/ProtocolVersion\"));\nconst DataHistoryId = defineId(\"hist\", \"ignotum/hosted/DataHistoryId\");\n//#endregion\nexport { ActivationGeneration, AppId, AppStateRevision, AuthAccountId, AuthDeviceCodeId, AuthInternalId, AuthInvitationId, AuthMemberId, AuthSessionId, AuthVerificationId, CapabilityId, ClientApiVersion, ConnectionId, DataHistoryId, DevDatabaseLockId, InvocationId, InvocationKey, PlatformPrincipalId, ProtocolVersion, RequestId, RuntimeRequestNonce, ServerApiVersion, SubscriptionId, TableId, TeamId, VersionId, VersionNumber };\n\n//# sourceMappingURL=identity.js.map","import { defineId } from \"../runtime/id.js\";\nimport { Predicate, Schema, SchemaGetter } from \"effect\";\n//#region src/schema/file.ts\nconst fileFormats = [\n\t\"jpeg\",\n\t\"png\",\n\t\"webp\",\n\t\"avif\",\n\t\"gif\"\n];\nconst FileFormat = Schema.Literals(fileFormats);\nconst fileMimeTypes = {\n\tavif: \"image/avif\",\n\tgif: \"image/gif\",\n\tjpeg: \"image/jpeg\",\n\tpng: \"image/png\",\n\twebp: \"image/webp\"\n};\nconst fileLimits = {\n\tactiveGrantsPerConnection: 1024,\n\tdistinctFilesPerQuerySnapshot: 256,\n\tfileBytes: 10485760,\n\tfilesPerMutation: 8,\n\tfilenameBytes: 255,\n\tmutationBytes: 26214400,\n\tpreparationLifetimeMillis: 9e5,\n\tstagedBytesPerApp: 104857600\n};\nconst FileId = Object.assign(Schema.String.pipe(Schema.check(Schema.isPattern(/^file_[0-9A-Za-z_-]{20,128}$/)), Schema.brand(\"ignotum/file/FileId\")), { idPrefix: \"file\" });\nconst FileUploadToken = defineId(\"upload\", \"ignotum/file/FileUploadToken\");\nconst FileGrantToken = defineId(\"grant\", \"ignotum/file/FileGrantToken\");\nconst FileValueTypeId = Symbol.for(\"ignotum/file/FileValue\");\nconst FileGrantTypeId = Symbol.for(\"ignotum/file/FileGrant\");\nconst isFileValue = (value) => Predicate.isObject(value) && Predicate.hasProperty(value, FileValueTypeId) && Predicate.isObject(value[FileValueTypeId]) && Predicate.hasProperty(value[FileValueTypeId], \"id\") && Schema.is(FileId)(value[FileValueTypeId].id) && Predicate.hasProperty(value, \"format\") && Schema.is(FileFormat)(value.format) && Predicate.hasProperty(value, \"name\") && Predicate.isString(value.name) && Predicate.hasProperty(value, \"size\") && Predicate.isNumber(value.size) && Predicate.hasProperty(value, \"mimeType\") && value.mimeType === fileMimeTypes[value.format];\nconst buildFileValue = (id, metadata, grantUrl) => {\n\tconst value = {\n\t\tformat: metadata.format,\n\t\tmimeType: fileMimeTypes[metadata.format],\n\t\tname: metadata.name,\n\t\tsize: metadata.size\n\t};\n\tObject.defineProperty(value, FileValueTypeId, {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\tvalue: Object.freeze({ id }),\n\t\twritable: false\n\t});\n\tif (grantUrl !== void 0) Object.defineProperty(value, FileGrantTypeId, {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\tvalue: grantUrl,\n\t\twritable: false\n\t});\n\treturn Object.freeze(value);\n};\nconst makeFileValue = (id, metadata) => buildFileValue(id, metadata);\nconst fileIdOf = (value) => value[FileValueTypeId].id;\nconst grantFileValue = (value, url) => {\n\treturn buildFileValue(fileIdOf(value), value, url);\n};\nconst fileGrantUrlOf = (value) => value[FileGrantTypeId];\nconst EncodedFileValue = Schema.Struct({\n\t$ignotum: Schema.Literal(\"file\"),\n\tid: FileId,\n\tformat: FileFormat,\n\tname: Schema.String,\n\tsize: Schema.Int.check(Schema.isBetween({\n\t\tminimum: 0,\n\t\tmaximum: fileLimits.fileBytes\n\t}))\n});\nconst RuntimeFileMetadata = Schema.Struct({\n\tid: FileId,\n\tformat: FileFormat,\n\tname: Schema.String,\n\tsize: Schema.Int.check(Schema.isBetween({\n\t\tminimum: 0,\n\t\tmaximum: fileLimits.fileBytes\n\t}))\n});\nconst FilePath = Schema.Array(Schema.Union([Schema.String, Schema.Natural]));\nconst RuntimeFileOccurrence = Schema.Struct({\n\tpath: FilePath,\n\tfile: RuntimeFileMetadata\n});\nconst DecodedFileValue = Schema.declare(isFileValue, { title: \"FileValue\" });\nconst FileValue = EncodedFileValue.pipe(Schema.decodeTo(DecodedFileValue, {\n\tdecode: SchemaGetter.transform((encoded) => makeFileValue(encoded.id, {\n\t\tformat: encoded.format,\n\t\tname: encoded.name,\n\t\tsize: encoded.size\n\t})),\n\tencode: SchemaGetter.transform((value) => ({\n\t\t$ignotum: \"file\",\n\t\tformat: value.format,\n\t\tid: fileIdOf(value),\n\t\tname: value.name,\n\t\tsize: value.size\n\t}))\n}));\nconst constrainedFileValue = (formats, maxBytes) => FileValue.pipe(Schema.check(Schema.makeFilter((value) => {\n\tconst issues = [];\n\tif (!formats.includes(value.format)) issues.push({\n\t\tpath: [\"format\"],\n\t\tissue: `File format '${value.format}' is not allowed by this field.`\n\t});\n\tif (value.size > maxBytes) issues.push({\n\t\tpath: [\"size\"],\n\t\tissue: `File size ${value.size} exceeds this field's ${maxBytes} byte limit.`\n\t});\n\treturn issues;\n})));\nconst collectFileOccurrences = (value, path, occurrences) => {\n\tif (isFileValue(value)) {\n\t\toccurrences.push({\n\t\t\tfile: value,\n\t\t\tpath\n\t\t});\n\t\treturn;\n\t}\n\tif (globalThis.Array.isArray(value)) {\n\t\tfor (const [index, child] of value.entries()) collectFileOccurrences(child, [...path, index], occurrences);\n\t\treturn;\n\t}\n\tif (!Predicate.isObject(value) || Predicate.isDate(value)) return;\n\tfor (const [key, child] of Object.entries(value)) collectFileOccurrences(child, [...path, key], occurrences);\n};\nconst fileOccurrencesOf = (value) => {\n\tconst occurrences = [];\n\tcollectFileOccurrences(value, [], occurrences);\n\treturn occurrences;\n};\nconst runtimeFileOccurrencesOf = (value) => fileOccurrencesOf(value).map(({ file, path }) => ({\n\tpath,\n\tfile: {\n\t\tformat: file.format,\n\t\tid: fileIdOf(file),\n\t\tname: file.name,\n\t\tsize: file.size\n\t}\n}));\nconst collectEncodedFileOccurrences = (value, path, occurrences) => {\n\tif (Schema.is(EncodedFileValue)(value)) {\n\t\tconst file = Schema.decodeUnknownSync(EncodedFileValue)(value);\n\t\toccurrences.push({\n\t\t\tpath,\n\t\t\tfile: {\n\t\t\t\tformat: file.format,\n\t\t\t\tid: file.id,\n\t\t\t\tname: file.name,\n\t\t\t\tsize: file.size\n\t\t\t}\n\t\t});\n\t\treturn;\n\t}\n\tif (globalThis.Array.isArray(value)) {\n\t\tfor (const [index, child] of value.entries()) collectEncodedFileOccurrences(child, [...path, index], occurrences);\n\t\treturn;\n\t}\n\tif (!Schema.is(Schema.JsonObject)(value)) return;\n\tfor (const [key, child] of Object.entries(value)) collectEncodedFileOccurrences(child, [...path, key], occurrences);\n};\nconst encodedFileOccurrencesOf = (value) => {\n\tconst occurrences = [];\n\tcollectEncodedFileOccurrences(value, [], occurrences);\n\treturn occurrences;\n};\n//#endregion\nexport { EncodedFileValue, FileFormat, FileGrantToken, FileGrantTypeId, FileId, FilePath, FileUploadToken, FileValue, FileValueTypeId, RuntimeFileMetadata, RuntimeFileOccurrence, constrainedFileValue, encodedFileOccurrencesOf, fileFormats, fileGrantUrlOf, fileIdOf, fileLimits, fileMimeTypes, fileOccurrencesOf, grantFileValue, isFileValue, makeFileValue, runtimeFileOccurrencesOf };\n\n//# sourceMappingURL=file.js.map","import { EncodedFileValue, FileValue, isFileValue } from \"../schema/file.js\";\nimport { Predicate, Schema } from \"effect\";\n//#region src/runtime/value.ts\nconst TransportValueSchema = Schema.suspend(() => Schema.Union([\n\tSchema.Null,\n\tSchema.Boolean,\n\tSchema.Finite,\n\tSchema.String,\n\tSchema.Date,\n\tFileValue,\n\tSchema.Array(TransportValueSchema),\n\tSchema.Record(Schema.String, Schema.UndefinedOr(TransportValueSchema))\n]));\nconst TransportValueTypeSchema = Schema.toType(TransportValueSchema);\nconst TransportObjectTypeSchema = Schema.Record(Schema.String, Schema.UndefinedOr(TransportValueTypeSchema));\nconst encodeTransportValue = (value) => {\n\tif (Predicate.isDate(value)) return Schema.encodeSync(Schema.DateFromMillis)(value);\n\tif (isFileValue(value)) return Schema.encodeSync(FileValue)(value);\n\tif (globalThis.Array.isArray(value)) return value.map(encodeTransportValue);\n\tif (Predicate.isNumber(value)) return Schema.decodeSync(Schema.Finite)(value);\n\tif (Predicate.isNull(value) || Predicate.isString(value) || Predicate.isBoolean(value)) return value;\n\treturn Object.fromEntries(Object.entries(value).flatMap(([key, child]) => child === void 0 ? [] : [[key, encodeTransportValue(child)]]));\n};\nconst encodeTransportObject = (value) => Schema.decodeUnknownSync(Schema.JsonObject)(encodeTransportValue(Schema.decodeUnknownSync(TransportObjectTypeSchema)(value)));\nconst collectDatePaths = (value, path, paths) => {\n\tif (Predicate.isDate(value)) {\n\t\tSchema.decodeSync(Schema.Date)(value);\n\t\tpaths.push(path);\n\t\treturn;\n\t}\n\tif (isFileValue(value)) return;\n\tif (globalThis.Array.isArray(value)) {\n\t\tfor (const [index, child] of value.entries()) collectDatePaths(child, [...path, index], paths);\n\t\treturn;\n\t}\n\tif (value === void 0 || Predicate.isNull(value) || Predicate.isString(value) || Predicate.isNumber(value) || Predicate.isBoolean(value)) return;\n\tfor (const [key, child] of Object.entries(value)) collectDatePaths(child, [...path, key], paths);\n};\nconst datePathsOf = (value) => {\n\tconst paths = [];\n\tcollectDatePaths(value, [], paths);\n\treturn paths;\n};\nconst datePathsOfObject = (value) => datePathsOf(Schema.decodeUnknownSync(TransportObjectTypeSchema)(value));\nconst pathKey = (path) => JSON.stringify(path);\nconst decodeTransportValueAt = (value, path, encodedDatePaths) => {\n\tif (encodedDatePaths.has(pathKey(path))) return Schema.decodeUnknownSync(Schema.DateFromMillis)(value);\n\tif (Schema.is(EncodedFileValue)(value)) return Schema.decodeSync(FileValue)(value);\n\tif (globalThis.Array.isArray(value)) return value.map((item, index) => decodeTransportValueAt(item, [...path, index], encodedDatePaths));\n\tif (Predicate.isNull(value) || Predicate.isString(value) || Predicate.isNumber(value) || Predicate.isBoolean(value)) return value;\n\treturn Object.fromEntries(Object.entries(value).map(([key, item]) => [key, decodeTransportValueAt(item, [...path, key], encodedDatePaths)]));\n};\nconst decodeTransportValue = (value, datePaths) => decodeTransportValueAt(value, [], new Set(datePaths.map(pathKey)));\nconst decodeTransportObject = (value, datePaths) => {\n\tconst encodedDatePaths = new Set(datePaths.map(pathKey));\n\treturn Object.fromEntries(Object.entries(value).map(([key, child]) => [key, decodeTransportValueAt(child, [key], encodedDatePaths)]));\n};\n//#endregion\nexport { TransportObjectTypeSchema, TransportValueSchema, TransportValueTypeSchema, datePathsOf, datePathsOfObject, decodeTransportObject, decodeTransportValue, encodeTransportObject, encodeTransportValue };\n\n//# sourceMappingURL=value.js.map","import { Schema, SchemaGetter } from \"effect\";\n//#region src/versioned.ts\n/** Registers the first revision of a long-lived format. */\nconst initial = (schema) => schema;\n/** Adds one adjacent migration and keeps encoding on the new current revision. */\nconst upgrade = (previous, current, migrate) => {\n\tconst accepted = Schema.Union([previous, current]);\n\tconst isCurrent = Schema.is(current);\n\treturn accepted.pipe(Schema.decodeTo(Schema.toType(current), {\n\t\tdecode: SchemaGetter.transform((value) => {\n\t\t\tif (isCurrent(value)) return value;\n\t\t\treturn migrate(value);\n\t\t}),\n\t\tencode: SchemaGetter.transform((value) => value)\n\t}));\n};\n//#endregion\nexport { initial, upgrade };\n\n//# sourceMappingURL=versioned.js.map","import { AppId } from \"./runtime/id.js\";\nimport { ActivationGeneration, DataHistoryId, VersionNumber } from \"./runtime/identity.js\";\nimport { initial } from \"./versioned.js\";\nimport { Sha256 } from \"./artifact.js\";\nimport { Schema } from \"effect\";\n//#region src/deployment.ts\nconst strict = (fields) => Schema.Struct(fields).annotate({ parseOptions: { onExcessProperty: \"error\" } });\nconst NonnegativeInteger = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER));\nconst PositiveInteger = NonnegativeInteger.check(Schema.isGreaterThan(0));\nconst PlatformRevision = strict({\n\tmajor: PositiveInteger,\n\tminor: NonnegativeInteger\n});\nconst PlatformRequirement = strict({\n\tmajor: PositiveInteger,\n\tminimumMinor: NonnegativeInteger\n});\nconst compareRevisions = (left, right) => left.major - right.major || left.minor - right.minor;\nconst supportsRequirement = (revision, requirement) => revision.major === requirement.major && revision.minor >= requirement.minimumMinor;\nconst revisionPrefix = (revision) => `/_ignotum/v${revision.major}.${revision.minor}`;\nconst PlatformEndpoint = Schema.Literals([\n\t\"client.js\",\n\t\"selection\",\n\t\"sync\",\n\t\"session\",\n\t\"session/requests\",\n\t\"session/callback\"\n]);\nconst endpointUrl = (revision, endpoint) => `${revisionPrefix(revision)}/${endpoint}`;\nconst RevisionSegment = Schema.String.check(Schema.isPattern(/^v[1-9][0-9]*\\.(?:0|[1-9][0-9]*)$/));\n/** Decode the path segment before consulting the deployed revision registry. */\nconst parseRevision = (segment) => {\n\tconst [major, minor] = Schema.decodeUnknownSync(RevisionSegment)(segment).slice(1).split(\".\").map(Number);\n\treturn Schema.decodeUnknownSync(PlatformRevision)({\n\t\tmajor,\n\t\tminor\n\t});\n};\nconst ServingSelectionV1 = strict({\n\tformatVersion: Schema.Literal(1),\n\tappId: AppId,\n\tversionNumber: VersionNumber.check(Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER)),\n\tplatform: PlatformRevision,\n\tactivationGeneration: ActivationGeneration.check(Schema.isGreaterThan(0), Schema.isLessThanOrEqualTo(Number.MAX_SAFE_INTEGER)),\n\tdeploymentEpoch: PositiveInteger,\n\tdataHistoryId: DataHistoryId\n});\nconst ServingSelection = initial(ServingSelectionV1);\nconst sameSelection = (left, right) => left.appId === right.appId && left.versionNumber === right.versionNumber && compareRevisions(left.platform, right.platform) === 0 && left.activationGeneration === right.activationGeneration && left.deploymentEpoch === right.deploymentEpoch && left.dataHistoryId === right.dataHistoryId;\n/** Separate wire generation from both persisted format and platform revisions. */\nconst BrowserHandshake = strict({\n\tdeploymentProtocol: Schema.Literal(3),\n\tselection: ServingSelection\n});\nconst retention = {\n\treadyAgeMs: 6048e5,\n\tnewestReadyCount: 3,\n\tuploadAgeMs: 864e5\n};\nconst TransitionV1 = strict({\n\tformatVersion: Schema.Literal(1),\n\toperationId: Schema.NonEmptyString,\n\tsource: Schema.NullOr(ServingSelection),\n\ttarget: ServingSelection,\n\tphase: Schema.Literals([\n\t\t\"Closing\",\n\t\t\"Preparing\",\n\t\t\"Committed\",\n\t\t\"Opening\",\n\t\t\"Complete\",\n\t\t\"Aborting\",\n\t\t\"Aborted\"\n\t])\n}).check(Schema.makeFilter((transition) => {\n\tif (transition.source === null) return void 0;\n\tif (transition.source.appId !== transition.target.appId) return \"A transition belongs to one app\";\n\tif (transition.target.activationGeneration <= transition.source.activationGeneration) return \"A transition must advance the activation generation, including rollback\";\n})).annotate({ parseOptions: { onExcessProperty: \"error\" } });\nconst AppTransition = initial(TransitionV1);\nconst RevisionMap = Schema.Array(PlatformRevision).check(Schema.makeFilter((revisions) => new Set(revisions.map((revision) => revision.major)).size === revisions.length ? void 0 : \"Select exactly one minor for each supported major\"));\nconst MaintenanceV1 = strict({\n\tformatVersion: Schema.Literal(1),\n\toperationId: Schema.NonEmptyString,\n\tdeploymentEpoch: PositiveInteger,\n\tphase: Schema.Literals([\n\t\t\"Closing\",\n\t\t\"Deploying\",\n\t\t\"Verifying\",\n\t\t\"Resuming\",\n\t\t\"Complete\"\n\t]),\n\texpectedBuild: Schema.String.check(Schema.isPattern(/^[a-f0-9]{64}$/)),\n\tpreviousBuild: Schema.NullOr(Schema.String.check(Schema.isPattern(/^[a-f0-9]{64}$/))),\n\taborted: Schema.Boolean,\n\tprevious: RevisionMap,\n\ttarget: RevisionMap,\n\tdiagnostic: Schema.NullOr(Schema.String.check(Schema.isMaxLength(4096))),\n\tcursor: Schema.NullOr(Schema.NonEmptyString)\n}).check(Schema.makeFilter((journal) => journal.aborted && journal.previousBuild === null ? \"Bootstrap has no previous build to restore\" : void 0));\nconst MaintenanceJournal = initial(MaintenanceV1);\nconst effectiveDeploymentRevisions = (journal) => journal.aborted ? journal.previous : journal.target;\nconst effectiveDeploymentBuild = (journal) => journal.aborted ? journal.previousBuild : journal.expectedBuild;\nconst DeploymentServiceReadiness = Schema.Struct({\n\tbuildSha256: Sha256,\n\trevisions: Schema.Array(PlatformRevision)\n});\n//#endregion\nexport { AppTransition, BrowserHandshake, DeploymentServiceReadiness, MaintenanceJournal, PlatformEndpoint, PlatformRequirement, PlatformRevision, ServingSelection, compareRevisions, effectiveDeploymentBuild, effectiveDeploymentRevisions, endpointUrl, parseRevision, retention, revisionPrefix, sameSelection, supportsRequirement };\n\n//# sourceMappingURL=deployment.js.map","import { RequestId } from \"./id.js\";\nimport { decodeTransportObject } from \"./value.js\";\nimport { Brand, Effect, Effectable, Function, Option, Predicate, Schema } from \"effect\";\n//#region src/runtime/result.ts\nconst ResultTypeId = Symbol.for(\"ignotum/runtime/result/Result\");\nconst CompletedResultTypeId = Symbol.for(\"ignotum/runtime/result/Completed\");\nconst PendingResultTypeId = Symbol.for(\"ignotum/runtime/result/Pending\");\nconst ErrorBrand = \"ignotum/error\";\nconst makeErrorValue = Brand.nominal();\nconst ErrorValueSchema = Schema.StructWithRest(Schema.Struct({ _tag: Schema.String }), [Schema.Record(Schema.String, Schema.Json)]).pipe(Schema.brand(ErrorBrand));\nvar InternalServerErrorCause = class extends Schema.TaggedError()(\"InternalServerError\", { requestId: RequestId }) {};\nconst InternalServerError = InternalServerErrorCause;\nconst InternalServerErrorSchema = InternalServerErrorCause.pipe(Schema.brand(ErrorBrand));\nconst effectOf = (value) => Predicate.hasProperty(value, ResultTypeId) ? value[ResultTypeId] : Effect.succeed(value);\nfunction makeResultEffectBase() {\n\tconst Base = function() {};\n\tBase.prototype = Effectable.Prototype({\n\t\tlabel: \"IgnotumResult\",\n\t\tevaluate() {\n\t\t\treturn this[ResultTypeId];\n\t\t}\n\t});\n\treturn Base;\n}\nconst ResultEffectBase = makeResultEffectBase();\nvar ResultOperation = class ResultOperation extends ResultEffectBase {\n\t[ResultTypeId];\n\tconstructor(effect, completed) {\n\t\tsuper();\n\t\tthis[ResultTypeId] = effect;\n\t\tif (completed !== void 0) Object.defineProperty(this, CompletedResultTypeId, { value: completed });\n\t}\n\tcatch(cases) {\n\t\tconst effectCases = {};\n\t\tfor (const [tag, handler] of Object.entries(cases)) if (Predicate.isFunction(handler)) effectCases[tag] = (failure) => effectOf(handler(failure));\n\t\tconst runtimeEffect = this[ResultTypeId];\n\t\tconst caught = Effect.catchTags(runtimeEffect, effectCases);\n\t\treturn new ResultOperation(caught);\n\t}\n};\nvar PendingQueryResult = class {\n\t[PendingResultTypeId] = PendingResultTypeId;\n};\nconst inspectResult = (value) => {\n\tif (!Predicate.hasProperty(value, CompletedResultTypeId)) return void 0;\n\treturn value[CompletedResultTypeId];\n};\nconst effectFromResult = (result) => result[ResultTypeId];\nconst resultFromEffect = (effect) => new ResultOperation(effect);\nconst isFailureResult = (result) => Predicate.hasProperty(result, CompletedResultTypeId) && Predicate.isObject(result[CompletedResultTypeId]) && Predicate.hasProperty(result[CompletedResultTypeId], \"type\") && result[CompletedResultTypeId].type === \"Failure\";\nconst succeed = (value) => new ResultOperation(Effect.succeed(value), {\n\ttype: \"Success\",\n\tvalue\n});\nconst fail = (error) => new ResultOperation(Effect.fail(error), {\n\ttype: \"Failure\",\n\terror\n});\nconst tryResult = (body) => {\n\treturn new ResultOperation(Effect.gen(body));\n};\nconst match = Function.dual(2, (result, matchers) => {\n\tif (result instanceof PendingQueryResult) {\n\t\tif (matchers.pending === void 0) throw new Error(\"A pending Result requires a pending matcher.\");\n\t\treturn matchers.pending();\n\t}\n\tif (!Predicate.hasProperty(result, ResultTypeId)) throw new Error(\"Unknown Result implementation.\");\n\tconst inspected = inspectResult(result);\n\tif (inspected?.type === \"Success\") {\n\t\tconst value = inspected.value;\n\t\treturn matchers.value(value);\n\t}\n\tif (!isFailureResult(result)) throw new Error(\"Unknown or incomplete Result operation.\");\n\tconst error = result[CompletedResultTypeId].error;\n\tif (error._tag === \"InternalServerError\") {\n\t\tconst internalError = Schema.decodeUnknownSync(InternalServerErrorSchema)(error);\n\t\tconst handler = matchers.internalError;\n\t\tif (handler === void 0) throw internalError;\n\t\treturn handler(internalError);\n\t}\n\tconst errorMatcher = matchers.error;\n\tif (errorMatcher === void 0) throw new Error(`No matcher was provided for ${error._tag}.`);\n\tif (Predicate.isFunction(errorMatcher)) return errorMatcher(error);\n\tconst handlers = errorMatcher;\n\tconst handler = Object.hasOwn(handlers, error._tag) ? handlers[error._tag] : void 0;\n\tif (handler === void 0) throw new Error(`No matcher was provided for ${error._tag}.`);\n\treturn handler(error);\n});\nconst pending = () => new PendingQueryResult();\nconst failureFromWire = (error, datePaths = []) => {\n\tconst internalError = Schema.decodeUnknownOption(InternalServerErrorSchema)(error);\n\tif (Option.isSome(internalError)) return fail(internalError.value);\n\tconst decoded = Schema.decodeUnknownOption(ErrorValueSchema)(error);\n\tif (Option.isNone(decoded)) throw new Error(\"The server returned an invalid application error.\");\n\tconst restored = decodeTransportObject(decoded.value, datePaths);\n\treturn fail(makeErrorValue({\n\t\t...restored,\n\t\t_tag: decoded.value._tag\n\t}));\n};\nconst documentNotFound = (table, id) => Brand.nominal()({\n\t_tag: \"DocumentNotFound\",\n\ttable,\n\tid\n});\nconst Result = {\n\tfail,\n\tmatch,\n\tsucceed,\n\ttry: tryResult\n};\n//#endregion\nexport { ErrorBrand, ErrorValueSchema, InternalServerError, InternalServerErrorSchema, Result, documentNotFound, effectFromResult, failureFromWire, inspectResult, match, pending, resultFromEffect };\n\n//# sourceMappingURL=result.js.map","import { initial } from \"./versioned.js\";\nimport { endpointUrl } from \"./deployment.js\";\nimport { encodeCanonicalJson } from \"./json.js\";\nimport { ErrorBrand, resultFromEffect } from \"./runtime/result.js\";\nimport { Effect, Schema } from \"effect\";\n//#region src/id.ts\nconst DevelopmentUsername = Schema.String.check(Schema.isPattern(/^[a-z][a-z0-9_-]{0,63}$/));\nconst UserId = DevelopmentUsername.pipe(Schema.brand(\"ignotum/id/UserId\"));\nconst User = Schema.Struct({\n\tid: UserId,\n\tname: Schema.optional(Schema.String),\n\temail: Schema.optional(Schema.String),\n\timage: Schema.optional(Schema.String)\n});\nconst ProfileField = Schema.Literals([\n\t\"name\",\n\t\"email\",\n\t\"image\"\n]);\nconst ProfileFields = Schema.Array(ProfileField).check(Schema.isUnique());\nconst IdRequired = Schema.TaggedStruct(\"IdRequired\", {}).pipe(Schema.brand(ErrorBrand));\nconst makeIdContext = (read) => ({\n\tcurrent: () => resultFromEffect(read),\n\trequire: () => resultFromEffect(read.pipe(Effect.flatMap((user) => user === null ? Effect.fail(IdRequired.make({})) : Effect.succeed(user))))\n});\nconst SessionState = Schema.Struct({\n\tsessionEpoch: Schema.String,\n\tviewRevision: Schema.Natural,\n\tuser: Schema.NullOr(User),\n\tvalidUntil: Schema.Finite\n});\nconst SessionResponse = Schema.Struct({\n\tdevelopment: Schema.optional(Schema.Literal(true)),\n\toutcome: Schema.optional(Schema.Literals([\n\t\t\"SignedIn\",\n\t\t\"ProfileUpdated\",\n\t\t\"Cancelled\"\n\t])),\n\t...SessionState.fields,\n\tserverTime: Schema.Finite,\n\texpiresAt: Schema.Finite\n});\nconst ReturnPath = Schema.String.check(Schema.makeFilter((value) => {\n\tif (!value.startsWith(\"/\") || value.startsWith(\"//\") || value.includes(\"\\\\\")) return false;\n\tconst url = new URL(value, \"https://app.ignotum.invalid\");\n\treturn url.origin === \"https://app.ignotum.invalid\" && url.pathname !== \"/_ignotum\" && !url.pathname.startsWith(\"/_ignotum/\");\n}, { message: \"Return to a path within this app.\" }));\nconst SessionRequest = Schema.Struct({\n\tintent: Schema.Literals([\"signIn\", \"requestProfile\"]),\n\tprofile: ProfileFields,\n\treturnTo: ReturnPath,\n\tsessionEpoch: Schema.String\n});\nconst SessionRedirect = Schema.Struct({\n\tredirectUrl: Schema.String,\n\texpiresAt: Schema.Finite\n});\nconst SessionOutcome = Schema.Literals([\n\t\"SignedIn\",\n\t\"ProfileUpdated\",\n\t\"Cancelled\"\n]);\nconst idLimits = {\n\tsessionMillis: 2592e6,\n\tleaseMillis: 3e4,\n\trefreshMillis: 2e4,\n\trequestMillis: 6e5,\n\tcodeMillis: 6e4,\n\trequestBytes: 16384,\n\tpendingRequests: 5\n};\nconst platformRevision = {\n\tmajor: 1,\n\tminor: 0\n};\nconst sessionPath = endpointUrl(platformRevision, \"session\");\nconst sessionRequestsPath = endpointUrl(platformRevision, \"session/requests\");\nconst sessionCallbackPath = endpointUrl(platformRevision, \"session/callback\");\nconst sessionCookieName = \"__Host-ignotum-session\";\nconst idImagePath = \"/_ignotum/v1.0/id/image/\";\nconst idViewKey = (session) => encodeCanonicalJson([session.user, session.viewRevision]);\nconst DevelopmentSelectionV1 = Schema.Struct({\n\tformatVersion: Schema.Literal(1),\n\tusername: Schema.NullOr(DevelopmentUsername),\n\tepoch: Schema.String\n});\nconst DevelopmentSelection = initial(DevelopmentSelectionV1);\nconst developmentSelectionKey = \"ignotum.id.development\";\n//#endregion\nexport { DevelopmentSelection, DevelopmentUsername, IdRequired, ProfileField, ProfileFields, ReturnPath, SessionOutcome, SessionRedirect, SessionRequest, SessionResponse, SessionState, User, UserId, developmentSelectionKey, idImagePath, idLimits, idViewKey, makeIdContext, sessionCallbackPath, sessionCookieName, sessionPath, sessionRequestsPath };\n\n//# sourceMappingURL=id.js.map"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createElement } from "preact";
|
|
2
|
-
//#region
|
|
2
|
+
//#region ../platform/dist/versions/1/browser/image.js
|
|
3
3
|
/** Renders an imported image. */
|
|
4
4
|
const Image = ({ src, alt, ...attributes }) => createElement("img", {
|
|
5
5
|
...attributes,
|
|
@@ -16,4 +16,4 @@ const createImageSource = (url) => {
|
|
|
16
16
|
//#endregion
|
|
17
17
|
export { createImageSource as n, Image as t };
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=image-
|
|
19
|
+
//# sourceMappingURL=image-gofzZeCm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-gofzZeCm.js","names":[],"sources":["../../../platform/dist/versions/1/browser/image.js"],"sourcesContent":["import { createElement } from \"preact\";\n//#region src/versions/1/browser/image.ts\n/** Renders an imported image. */\nconst Image = ({ src, alt, ...attributes }) => createElement(\"img\", {\n\t...attributes,\n\tsrc: src.url,\n\talt\n});\n/** @internal Creates an image reference from a compiler-resolved URL. */\nconst createImageSource = (url) => {\n\treturn {\n\t\ttype: \"ImageSource\",\n\t\turl\n\t};\n};\n//#endregion\nexport { Image, createImageSource };\n\n//# sourceMappingURL=image.js.map"],"mappings":";;;AAGA,MAAM,SAAS,EAAE,KAAK,KAAK,GAAG,iBAAiB,cAAc,OAAO;CACnE,GAAG;CACH,KAAK,IAAI;CACT;AACD,CAAC;;AAED,MAAM,qBAAqB,QAAQ;CAClC,OAAO;EACN,MAAM;EACN;CACD;AACD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as table, a as Id, b as PaginationPage, d as BoundValues, f as IdTargetsOf, g as UnresolvedReferencesTypeId, h as TableDefinition, i as EnvironmentType, n as Document, o as SchemaDefinitionContract, p as IndexDefinitions, t as DefinedEnv, u as emptyEnv, v as values, x as IdContext, y as PaginationOptions } from "./types-DeCCyqLU-
|
|
1
|
+
import { _ as table, a as Id, b as PaginationPage, d as BoundValues, f as IdTargetsOf, g as UnresolvedReferencesTypeId, h as TableDefinition, i as EnvironmentType, n as Document, o as SchemaDefinitionContract, p as IndexDefinitions, t as DefinedEnv, u as emptyEnv, v as values, x as IdContext, y as PaginationOptions } from "./types-DeCCyqLU-CHx7KFtx.js";
|
|
2
2
|
import { c as Result$1, g as FileValue, i as ErrorValue, n as DocumentNotFoundValue } from "./id-7an3nxTu-DZJSM5xh.js";
|
|
3
3
|
import { Effect, Schema } from "effect";
|
|
4
4
|
//#region ../contracts/dist/schema/index.d.ts
|
|
@@ -181,4 +181,4 @@ declare function bindSchema<const Definition extends Tables>(schema: DefinedSche
|
|
|
181
181
|
declare function bindSchema<const Definition extends Tables, const Environment extends DefinedEnv>(schema: DefinedSchema<Definition>, environment: Environment): SchemaBindings<Definition, Environment>;
|
|
182
182
|
//#endregion
|
|
183
183
|
export { defineSchema as i, SchemaAuthoring as n, bindSchema as r, DefinedSchema as t };
|
|
184
|
-
//# sourceMappingURL=index-
|
|
184
|
+
//# sourceMappingURL=index-Biaw5vdF.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as functionPathOf, i as createApi, n as FunctionReference, r as MutationInput, t as Api } from "../api-
|
|
1
|
+
import { a as functionPathOf, i as createApi, n as FunctionReference, r as MutationInput, t as Api } from "../api-BnUKx9cj-D49Tf0rX.js";
|
|
2
2
|
export { Api, FunctionReference, MutationInput, createApi, functionPathOf };
|
|
@@ -1,31 +1,2 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { Predicate } from "effect";
|
|
3
|
-
//#region src/internal/api.ts
|
|
4
|
-
const FunctionReferenceTypeId = Symbol.for("ignotum/internal/api/FunctionReference");
|
|
5
|
-
const functionPathOf = (reference) => reference[FunctionReferenceTypeId];
|
|
6
|
-
const makeModuleReference = (moduleName) => {
|
|
7
|
-
const references = /* @__PURE__ */ new Map();
|
|
8
|
-
return new Proxy({}, { get: (_target, functionName) => {
|
|
9
|
-
if (!Predicate.isString(functionName)) return;
|
|
10
|
-
const existing = references.get(functionName);
|
|
11
|
-
if (existing !== void 0) return existing;
|
|
12
|
-
const reference = { [FunctionReferenceTypeId]: FunctionAddress.make(`api.${moduleName}.${functionName}`) };
|
|
13
|
-
references.set(functionName, reference);
|
|
14
|
-
return reference;
|
|
15
|
-
} });
|
|
16
|
-
};
|
|
17
|
-
function createApi() {
|
|
18
|
-
const modules = /* @__PURE__ */ new Map();
|
|
19
|
-
return new Proxy({}, { get: (_target, moduleName) => {
|
|
20
|
-
if (!Predicate.isString(moduleName)) return;
|
|
21
|
-
const existing = modules.get(moduleName);
|
|
22
|
-
if (existing !== void 0) return existing;
|
|
23
|
-
const moduleReference = makeModuleReference(moduleName);
|
|
24
|
-
modules.set(moduleName, moduleReference);
|
|
25
|
-
return moduleReference;
|
|
26
|
-
} });
|
|
27
|
-
}
|
|
28
|
-
//#endregion
|
|
1
|
+
import { n as functionPathOf, t as createApi } from "../api-C-tltz6s.js";
|
|
29
2
|
export { createApi, functionPathOf };
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=api.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { D as mountClient } from "../bootstrap-DjTwGJao-DBx5zdFI.js";
|
|
2
2
|
export { mountClient };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as mountClient } from "../bootstrap-
|
|
1
|
+
import { t as mountClient } from "../bootstrap-DlNIfH-r.js";
|
|
2
2
|
export { mountClient };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { type ClientRegistration, DecodedFields, InputFields, InvalidRouteProps, LayoutDefinition, PageDefinition, PathFields, type RegisteredClientModule, RequiredUrlValue, RouteErrorProps, UrlFields, UrlValue, UrlValues, bindSchema, createImageSource, createRouteReference, getRouteDefinition, mountClient };
|
|
1
|
+
import { C as UrlValues, D as mountClient, E as getRouteDefinition, S as UrlValue$1, T as createRouteReference, a as InvalidRouteProps, d as PathFields, h as RouteErrorProps, i as InputFields, j as createImageSource, m as RequiredUrlValue, n as ClientRegistration, o as LayoutDefinition$1, p as RegisteredClientModule, r as DecodedFields, u as PageDefinition, w as bindSchema$1, x as UrlFields } from "../bootstrap-DjTwGJao-DBx5zdFI.js";
|
|
2
|
+
export { type ClientRegistration, DecodedFields, InputFields, InvalidRouteProps, LayoutDefinition$1 as LayoutDefinition, PageDefinition, PathFields, type RegisteredClientModule, RequiredUrlValue, RouteErrorProps, UrlFields, UrlValue$1 as UrlValue, UrlValues, bindSchema$1 as bindSchema, createImageSource, createRouteReference, getRouteDefinition, mountClient };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as
|
|
3
|
-
import { t as mountClient } from "../bootstrap-
|
|
1
|
+
import { n as createImageSource } from "../image-gofzZeCm.js";
|
|
2
|
+
import { a as RouteDefinition, c as UrlValueDescriptor, i as LayoutMetadata, n as getRouteDefinition, o as StaticMetadata, s as UrlScalarDescriptor, t as createRouteReference } from "../routes-DnU39R7c.js";
|
|
3
|
+
import { t as mountClient } from "../bootstrap-DlNIfH-r.js";
|
|
4
4
|
import { Schema } from "effect";
|
|
5
|
-
//#region
|
|
5
|
+
//#region ../platform/dist/versions/1/browser/internal/client.js
|
|
6
6
|
const validateValue = Schema.decodeUnknownSync(UrlValueDescriptor);
|
|
7
7
|
const required = (descriptor) => {
|
|
8
8
|
const checked = validateValue(descriptor);
|