@astrogate/sdk 0.0.0-stage → 0.1.0-rc.1
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 -2
- package/THIRD_PARTY_NOTICES.md +17 -0
- package/dist/browser.d.ts +85 -0
- package/dist/browser.js +16 -0
- package/dist/database-binding.d.ts +7 -0
- package/dist/database-binding.js +11 -0
- package/dist/hosted-session.d.ts +1 -0
- package/dist/hosted-session.js +11 -0
- package/dist/http.d.ts +24 -0
- package/dist/http.js +92 -0
- package/dist/inventory.d.ts +7 -0
- package/dist/inventory.js +18 -0
- package/dist/management-read.d.ts +17 -0
- package/dist/management-read.js +104 -0
- package/dist/management.d.ts +347 -0
- package/dist/management.js +137 -0
- package/dist/operator.d.ts +136 -0
- package/dist/operator.js +53 -0
- package/dist/react.d.ts +16 -0
- package/dist/react.js +10 -0
- package/dist/server.d.ts +27 -0
- package/dist/server.js +30 -0
- package/dist/services.d.ts +7 -0
- package/dist/services.js +53 -0
- package/dist/storage.d.ts +68 -0
- package/dist/storage.js +30 -0
- package/dist/tasks.d.ts +42 -0
- package/dist/tasks.js +24 -0
- package/dist/wire.gen.d.ts +7107 -0
- package/dist/wire.gen.js +5 -0
- package/native-provenance.json +15 -0
- package/node_modules/@instantdb/admin/LICENSE +202 -0
- package/node_modules/@instantdb/admin/dist/esm/index.d.ts +607 -0
- package/node_modules/@instantdb/admin/dist/esm/index.js +1036 -0
- package/node_modules/@instantdb/admin/dist/esm/polyfill.d.ts +16 -0
- package/node_modules/@instantdb/admin/dist/esm/polyfill.js +21 -0
- package/node_modules/@instantdb/admin/dist/esm/subscribe.d.ts +38 -0
- package/node_modules/@instantdb/admin/dist/esm/subscribe.js +301 -0
- package/node_modules/@instantdb/admin/dist/esm/version.d.ts +2 -0
- package/node_modules/@instantdb/admin/dist/esm/version.js +2 -0
- package/node_modules/@instantdb/admin/package.json +23 -0
- package/node_modules/@instantdb/core/LICENSE +202 -0
- package/node_modules/@instantdb/core/dist/esm/Connection.d.ts +92 -0
- package/node_modules/@instantdb/core/dist/esm/Connection.js +188 -0
- package/node_modules/@instantdb/core/dist/esm/InMemoryStorage.d.ts +10 -0
- package/node_modules/@instantdb/core/dist/esm/InMemoryStorage.js +25 -0
- package/node_modules/@instantdb/core/dist/esm/IndexedDBStorage.d.ts +17 -0
- package/node_modules/@instantdb/core/dist/esm/IndexedDBStorage.js +309 -0
- package/node_modules/@instantdb/core/dist/esm/InstantError.d.ts +6 -0
- package/node_modules/@instantdb/core/dist/esm/InstantError.js +23 -0
- package/node_modules/@instantdb/core/dist/esm/Reactor.d.ts +430 -0
- package/node_modules/@instantdb/core/dist/esm/Reactor.js +2369 -0
- package/node_modules/@instantdb/core/dist/esm/StorageAPI.d.ts +39 -0
- package/node_modules/@instantdb/core/dist/esm/StorageAPI.js +65 -0
- package/node_modules/@instantdb/core/dist/esm/Stream.d.ts +120 -0
- package/node_modules/@instantdb/core/dist/esm/Stream.js +811 -0
- package/node_modules/@instantdb/core/dist/esm/SyncTable.d.ts +144 -0
- package/node_modules/@instantdb/core/dist/esm/SyncTable.js +523 -0
- package/node_modules/@instantdb/core/dist/esm/WindowNetworkListener.d.ts +4 -0
- package/node_modules/@instantdb/core/dist/esm/WindowNetworkListener.js +19 -0
- package/node_modules/@instantdb/core/dist/esm/attrTypes.d.ts +25 -0
- package/node_modules/@instantdb/core/dist/esm/attrTypes.js +1 -0
- package/node_modules/@instantdb/core/dist/esm/authAPI.d.ts +64 -0
- package/node_modules/@instantdb/core/dist/esm/authAPI.js +103 -0
- package/node_modules/@instantdb/core/dist/esm/clientTypes.d.ts +40 -0
- package/node_modules/@instantdb/core/dist/esm/clientTypes.js +1 -0
- package/node_modules/@instantdb/core/dist/esm/coreTypes.d.ts +33 -0
- package/node_modules/@instantdb/core/dist/esm/coreTypes.js +1 -0
- package/node_modules/@instantdb/core/dist/esm/createRouteHandler.d.ts +7 -0
- package/node_modules/@instantdb/core/dist/esm/createRouteHandler.js +51 -0
- package/node_modules/@instantdb/core/dist/esm/datalog.d.ts +7 -0
- package/node_modules/@instantdb/core/dist/esm/datalog.js +99 -0
- package/node_modules/@instantdb/core/dist/esm/devtool.d.ts +3 -0
- package/node_modules/@instantdb/core/dist/esm/devtool.js +144 -0
- package/node_modules/@instantdb/core/dist/esm/framework.d.ts +80 -0
- package/node_modules/@instantdb/core/dist/esm/framework.js +243 -0
- package/node_modules/@instantdb/core/dist/esm/helperTypes.d.ts +75 -0
- package/node_modules/@instantdb/core/dist/esm/helperTypes.js +1 -0
- package/node_modules/@instantdb/core/dist/esm/index.d.ts +597 -0
- package/node_modules/@instantdb/core/dist/esm/index.js +649 -0
- package/node_modules/@instantdb/core/dist/esm/infiniteQuery.d.ts +25 -0
- package/node_modules/@instantdb/core/dist/esm/infiniteQuery.js +430 -0
- package/node_modules/@instantdb/core/dist/esm/instaml.d.ts +17 -0
- package/node_modules/@instantdb/core/dist/esm/instaml.js +576 -0
- package/node_modules/@instantdb/core/dist/esm/instaql.d.ts +12 -0
- package/node_modules/@instantdb/core/dist/esm/instaql.js +632 -0
- package/node_modules/@instantdb/core/dist/esm/instatx.d.ts +127 -0
- package/node_modules/@instantdb/core/dist/esm/instatx.js +93 -0
- package/node_modules/@instantdb/core/dist/esm/model/instaqlResult.d.ts +7 -0
- package/node_modules/@instantdb/core/dist/esm/model/instaqlResult.js +24 -0
- package/node_modules/@instantdb/core/dist/esm/parseSchemaFromJSON.d.ts +2 -0
- package/node_modules/@instantdb/core/dist/esm/parseSchemaFromJSON.js +142 -0
- package/node_modules/@instantdb/core/dist/esm/presence.d.ts +50 -0
- package/node_modules/@instantdb/core/dist/esm/presence.js +50 -0
- package/node_modules/@instantdb/core/dist/esm/presenceTypes.d.ts +9 -0
- package/node_modules/@instantdb/core/dist/esm/presenceTypes.js +3 -0
- package/node_modules/@instantdb/core/dist/esm/queryTypes.d.ts +271 -0
- package/node_modules/@instantdb/core/dist/esm/queryTypes.js +3 -0
- package/node_modules/@instantdb/core/dist/esm/queryValidation.d.ts +5 -0
- package/node_modules/@instantdb/core/dist/esm/queryValidation.js +287 -0
- package/node_modules/@instantdb/core/dist/esm/reactorTypes.d.ts +29 -0
- package/node_modules/@instantdb/core/dist/esm/reactorTypes.js +1 -0
- package/node_modules/@instantdb/core/dist/esm/routeHandlerProtocol.d.ts +19 -0
- package/node_modules/@instantdb/core/dist/esm/routeHandlerProtocol.js +1 -0
- package/node_modules/@instantdb/core/dist/esm/rulesTypes.d.ts +85 -0
- package/node_modules/@instantdb/core/dist/esm/rulesTypes.js +1 -0
- package/node_modules/@instantdb/core/dist/esm/sanityCheckQueries.d.ts +18 -0
- package/node_modules/@instantdb/core/dist/esm/sanityCheckQueries.js +152 -0
- package/node_modules/@instantdb/core/dist/esm/schema.d.ts +72 -0
- package/node_modules/@instantdb/core/dist/esm/schema.js +128 -0
- package/node_modules/@instantdb/core/dist/esm/schemaTypes.d.ts +244 -0
- package/node_modules/@instantdb/core/dist/esm/schemaTypes.js +106 -0
- package/node_modules/@instantdb/core/dist/esm/store.d.ts +89 -0
- package/node_modules/@instantdb/core/dist/esm/store.js +722 -0
- package/node_modules/@instantdb/core/dist/esm/transactionValidation.d.ts +7 -0
- package/node_modules/@instantdb/core/dist/esm/transactionValidation.js +130 -0
- package/node_modules/@instantdb/core/dist/esm/utils/Deferred.d.ts +8 -0
- package/node_modules/@instantdb/core/dist/esm/utils/Deferred.js +17 -0
- package/node_modules/@instantdb/core/dist/esm/utils/PersistedObject.d.ts +80 -0
- package/node_modules/@instantdb/core/dist/esm/utils/PersistedObject.js +448 -0
- package/node_modules/@instantdb/core/dist/esm/utils/dates.d.ts +1 -0
- package/node_modules/@instantdb/core/dist/esm/utils/dates.js +211 -0
- package/node_modules/@instantdb/core/dist/esm/utils/error.d.ts +2 -0
- package/node_modules/@instantdb/core/dist/esm/utils/error.js +8 -0
- package/node_modules/@instantdb/core/dist/esm/utils/fetch.d.ts +125 -0
- package/node_modules/@instantdb/core/dist/esm/utils/fetch.js +31 -0
- package/node_modules/@instantdb/core/dist/esm/utils/flags.d.ts +4 -0
- package/node_modules/@instantdb/core/dist/esm/utils/flags.js +10 -0
- package/node_modules/@instantdb/core/dist/esm/utils/id.d.ts +3 -0
- package/node_modules/@instantdb/core/dist/esm/utils/id.js +25 -0
- package/node_modules/@instantdb/core/dist/esm/utils/linkIndex.d.ts +7 -0
- package/node_modules/@instantdb/core/dist/esm/utils/linkIndex.js +17 -0
- package/node_modules/@instantdb/core/dist/esm/utils/log.d.ts +6 -0
- package/node_modules/@instantdb/core/dist/esm/utils/log.js +13 -0
- package/node_modules/@instantdb/core/dist/esm/utils/object.d.ts +16 -0
- package/node_modules/@instantdb/core/dist/esm/utils/object.js +143 -0
- package/node_modules/@instantdb/core/dist/esm/utils/pgtime.d.ts +197 -0
- package/node_modules/@instantdb/core/dist/esm/utils/pgtime.js +197 -0
- package/node_modules/@instantdb/core/dist/esm/utils/pick.d.ts +1 -0
- package/node_modules/@instantdb/core/dist/esm/utils/pick.js +9 -0
- package/node_modules/@instantdb/core/dist/esm/utils/strings.d.ts +1 -0
- package/node_modules/@instantdb/core/dist/esm/utils/strings.js +15 -0
- package/node_modules/@instantdb/core/dist/esm/utils/weakHash.d.ts +15 -0
- package/node_modules/@instantdb/core/dist/esm/utils/weakHash.js +71 -0
- package/node_modules/@instantdb/core/dist/esm/utils/weakHashLegacy.d.ts +7 -0
- package/node_modules/@instantdb/core/dist/esm/utils/weakHashLegacy.js +72 -0
- package/node_modules/@instantdb/core/dist/esm/version.d.ts +2 -0
- package/node_modules/@instantdb/core/dist/esm/version.js +2 -0
- package/node_modules/@instantdb/core/dist/esm/warningToggle.d.ts +2 -0
- package/node_modules/@instantdb/core/dist/esm/warningToggle.js +4 -0
- package/node_modules/@instantdb/core/package.json +20 -0
- package/node_modules/@instantdb/eventsource/LICENSE +22 -0
- package/node_modules/@instantdb/eventsource/README.md +226 -0
- package/node_modules/@instantdb/eventsource/dist/index.cjs +279 -0
- package/node_modules/@instantdb/eventsource/dist/index.cjs.map +1 -0
- package/node_modules/@instantdb/eventsource/dist/index.d.cts +346 -0
- package/node_modules/@instantdb/eventsource/dist/index.d.ts +346 -0
- package/node_modules/@instantdb/eventsource/dist/index.js +279 -0
- package/node_modules/@instantdb/eventsource/dist/index.js.map +1 -0
- package/node_modules/@instantdb/eventsource/package.json +128 -0
- package/node_modules/@instantdb/eventsource/src/EventSource.ts +614 -0
- package/node_modules/@instantdb/eventsource/src/errors.ts +141 -0
- package/node_modules/@instantdb/eventsource/src/index.ts +3 -0
- package/node_modules/@instantdb/eventsource/src/types.ts +164 -0
- package/node_modules/@instantdb/react/LICENSE +202 -0
- package/node_modules/@instantdb/react/dist/esm/Cursors.d.ts +18 -0
- package/node_modules/@instantdb/react/dist/esm/Cursors.js +103 -0
- package/node_modules/@instantdb/react/dist/esm/InstantReactWebDatabase.d.ts +5 -0
- package/node_modules/@instantdb/react/dist/esm/InstantReactWebDatabase.js +5 -0
- package/node_modules/@instantdb/react/dist/esm/index.d.ts +6 -0
- package/node_modules/@instantdb/react/dist/esm/index.js +22 -0
- package/node_modules/@instantdb/react/dist/esm/init.d.ts +40 -0
- package/node_modules/@instantdb/react/dist/esm/init.js +49 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/HydrationStreamProvider.d.ts +65 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/HydrationStreamProvider.js +96 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/InstantNextDatabase.d.ts +11 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/InstantNextDatabase.js +31 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/InstantSuspenseProvider.d.ts +24 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/InstantSuspenseProvider.js +162 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/getUserFromInstantCookie.d.ts +9 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/getUserFromInstantCookie.js +16 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/htmlescape.d.ts +2 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/htmlescape.js +20 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/index.d.ts +29 -0
- package/node_modules/@instantdb/react/dist/esm/next-ssr/index.js +34 -0
- package/node_modules/@instantdb/react/dist/esm/version.d.ts +2 -0
- package/node_modules/@instantdb/react/dist/esm/version.js +2 -0
- package/node_modules/@instantdb/react/package.json +24 -0
- package/node_modules/@instantdb/react-common/LICENSE +202 -0
- package/node_modules/@instantdb/react-common/dist/esm/InstantReactAbstractDatabase.d.ts +282 -0
- package/node_modules/@instantdb/react-common/dist/esm/InstantReactAbstractDatabase.js +386 -0
- package/node_modules/@instantdb/react-common/dist/esm/InstantReactRoom.d.ts +182 -0
- package/node_modules/@instantdb/react-common/dist/esm/InstantReactRoom.js +280 -0
- package/node_modules/@instantdb/react-common/dist/esm/index.d.ts +4 -0
- package/node_modules/@instantdb/react-common/dist/esm/index.js +3 -0
- package/node_modules/@instantdb/react-common/dist/esm/useInfiniteQuerySubscription.d.ts +27 -0
- package/node_modules/@instantdb/react-common/dist/esm/useInfiniteQuerySubscription.js +53 -0
- package/node_modules/@instantdb/react-common/dist/esm/useQuery.d.ts +6 -0
- package/node_modules/@instantdb/react-common/dist/esm/useQuery.js +75 -0
- package/node_modules/@instantdb/react-common/dist/esm/useTimeout.d.ts +4 -0
- package/node_modules/@instantdb/react-common/dist/esm/useTimeout.js +17 -0
- package/node_modules/@instantdb/react-common/dist/esm/version.d.ts +2 -0
- package/node_modules/@instantdb/react-common/dist/esm/version.js +2 -0
- package/node_modules/@instantdb/react-common/package.json +22 -0
- package/node_modules/@instantdb/version/LICENSE +202 -0
- package/node_modules/@instantdb/version/dist/esm/index.d.ts +2 -0
- package/node_modules/@instantdb/version/dist/esm/index.js +2 -0
- package/node_modules/@instantdb/version/dist/esm/version.d.ts +2 -0
- package/node_modules/@instantdb/version/dist/esm/version.js +5 -0
- package/node_modules/@instantdb/version/package.json +16 -0
- package/node_modules/@instantdb/webhooks/LICENSE +202 -0
- package/node_modules/@instantdb/webhooks/dist/esm/index.d.ts +587 -0
- package/node_modules/@instantdb/webhooks/dist/esm/index.js +748 -0
- package/node_modules/@instantdb/webhooks/package.json +18 -0
- package/node_modules/cookie/LICENSE +24 -0
- package/node_modules/cookie/README.md +295 -0
- package/node_modules/cookie/dist/index.d.ts +143 -0
- package/node_modules/cookie/dist/index.js +355 -0
- package/node_modules/cookie/dist/index.js.map +1 -0
- package/node_modules/cookie/package.json +57 -0
- package/node_modules/eventsource/LICENSE +22 -0
- package/node_modules/eventsource/README.md +252 -0
- package/node_modules/eventsource/dist/EventSource.d.ts +128 -0
- package/node_modules/eventsource/dist/EventSource.d.ts.map +1 -0
- package/node_modules/eventsource/dist/EventSource.js +556 -0
- package/node_modules/eventsource/dist/EventSource.js.map +1 -0
- package/node_modules/eventsource/dist/errors.d.ts +53 -0
- package/node_modules/eventsource/dist/errors.d.ts.map +1 -0
- package/node_modules/eventsource/dist/errors.js +120 -0
- package/node_modules/eventsource/dist/errors.js.map +1 -0
- package/node_modules/eventsource/dist/index.d.ts +4 -0
- package/node_modules/eventsource/dist/index.d.ts.map +1 -0
- package/node_modules/eventsource/dist/index.js +3 -0
- package/node_modules/eventsource/dist/index.js.map +1 -0
- package/node_modules/eventsource/dist/types.d.ts +156 -0
- package/node_modules/eventsource/dist/types.d.ts.map +1 -0
- package/node_modules/eventsource/dist/types.js +2 -0
- package/node_modules/eventsource/dist/types.js.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/LICENSE +21 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/README.md +177 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/errors.d.ts +35 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/errors.d.ts.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/errors.js +16 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/errors.js.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/index.d.ts +4 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/index.d.ts.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/index.js +3 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/index.js.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/parse.d.ts +12 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/parse.d.ts.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/parse.js +509 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/parse.js.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/stream.d.ts +76 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/stream.d.ts.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/stream.js +59 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/stream.js.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/types.d.ts +130 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/types.d.ts.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/types.js +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/dist/types.js.map +1 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/package.json +96 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/src/errors.ts +44 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/src/index.ts +3 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/src/parse.ts +576 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/src/stream.ts +118 -0
- package/node_modules/eventsource/node_modules/eventsource-parser/src/types.ts +138 -0
- package/node_modules/eventsource/package.json +103 -0
- package/node_modules/eventsource/src/EventSource.ts +844 -0
- package/node_modules/eventsource/src/errors.ts +141 -0
- package/node_modules/eventsource/src/index.ts +3 -0
- package/node_modules/eventsource/src/types.ts +166 -0
- package/node_modules/eventsource-parser/LICENSE +21 -0
- package/node_modules/eventsource-parser/README.md +157 -0
- package/node_modules/eventsource-parser/dist/index.cjs +177 -0
- package/node_modules/eventsource-parser/dist/index.cjs.map +1 -0
- package/node_modules/eventsource-parser/dist/index.d.cts +169 -0
- package/node_modules/eventsource-parser/dist/index.d.ts +169 -0
- package/node_modules/eventsource-parser/dist/index.js +177 -0
- package/node_modules/eventsource-parser/dist/index.js.map +1 -0
- package/node_modules/eventsource-parser/dist/stream.cjs +29 -0
- package/node_modules/eventsource-parser/dist/stream.cjs.map +1 -0
- package/node_modules/eventsource-parser/dist/stream.d.cts +134 -0
- package/node_modules/eventsource-parser/dist/stream.d.ts +134 -0
- package/node_modules/eventsource-parser/dist/stream.js +30 -0
- package/node_modules/eventsource-parser/dist/stream.js.map +1 -0
- package/node_modules/eventsource-parser/package.json +92 -0
- package/node_modules/eventsource-parser/src/errors.ts +44 -0
- package/node_modules/eventsource-parser/src/index.ts +8 -0
- package/node_modules/eventsource-parser/src/parse.ts +439 -0
- package/node_modules/eventsource-parser/src/stream.ts +107 -0
- package/node_modules/eventsource-parser/src/types.ts +122 -0
- package/node_modules/eventsource-parser/stream.js +2 -0
- package/node_modules/mutative/LICENSE +21 -0
- package/node_modules/mutative/README.md +870 -0
- package/node_modules/mutative/dist/apply.d.ts +31 -0
- package/node_modules/mutative/dist/array.d.ts +45 -0
- package/node_modules/mutative/dist/constant.d.ts +8 -0
- package/node_modules/mutative/dist/create.d.ts +46 -0
- package/node_modules/mutative/dist/current.d.ts +23 -0
- package/node_modules/mutative/dist/draft.d.ts +3 -0
- package/node_modules/mutative/dist/draftify.d.ts +2 -0
- package/node_modules/mutative/dist/error.d.ts +54 -0
- package/node_modules/mutative/dist/index.d.mts +1 -0
- package/node_modules/mutative/dist/index.d.ts +12 -0
- package/node_modules/mutative/dist/index.js +8 -0
- package/node_modules/mutative/dist/index.mjs +3 -0
- package/node_modules/mutative/dist/interface.d.ts +200 -0
- package/node_modules/mutative/dist/internal.d.ts +4 -0
- package/node_modules/mutative/dist/makeCreator.d.ts +54 -0
- package/node_modules/mutative/dist/map.d.ts +15 -0
- package/node_modules/mutative/dist/mutative.cjs.development.js +2126 -0
- package/node_modules/mutative/dist/mutative.cjs.development.js.map +1 -0
- package/node_modules/mutative/dist/mutative.cjs.production.min.js +2 -0
- package/node_modules/mutative/dist/mutative.cjs.production.min.js.map +1 -0
- package/node_modules/mutative/dist/mutative.esm.js +2123 -0
- package/node_modules/mutative/dist/mutative.esm.js.map +1 -0
- package/node_modules/mutative/dist/mutative.esm.mjs +2123 -0
- package/node_modules/mutative/dist/mutative.esm.mjs.map +1 -0
- package/node_modules/mutative/dist/mutative.esm.production.min.mjs +2 -0
- package/node_modules/mutative/dist/mutative.esm.production.min.mjs.map +1 -0
- package/node_modules/mutative/dist/mutative.umd.development.js +2132 -0
- package/node_modules/mutative/dist/mutative.umd.development.js.map +1 -0
- package/node_modules/mutative/dist/mutative.umd.production.min.js +2 -0
- package/node_modules/mutative/dist/mutative.umd.production.min.js.map +1 -0
- package/node_modules/mutative/dist/original.d.ts +19 -0
- package/node_modules/mutative/dist/patch.d.ts +2 -0
- package/node_modules/mutative/dist/rawReturn.d.ts +19 -0
- package/node_modules/mutative/dist/set.d.ts +14 -0
- package/node_modules/mutative/dist/unsafe.d.ts +34 -0
- package/node_modules/mutative/dist/utils/cast.d.ts +13 -0
- package/node_modules/mutative/dist/utils/copy.d.ts +5 -0
- package/node_modules/mutative/dist/utils/deepFreeze.d.ts +1 -0
- package/node_modules/mutative/dist/utils/draft.d.ts +27 -0
- package/node_modules/mutative/dist/utils/finalize.d.ts +13 -0
- package/node_modules/mutative/dist/utils/forEach.d.ts +1 -0
- package/node_modules/mutative/dist/utils/index.d.ts +7 -0
- package/node_modules/mutative/dist/utils/mark.d.ts +2 -0
- package/node_modules/mutative/dist/utils/marker.d.ts +5 -0
- package/node_modules/mutative/dist/utils/proto.d.ts +10 -0
- package/node_modules/mutative/package.json +142 -0
- package/node_modules/mutative/src/apply.ts +239 -0
- package/node_modules/mutative/src/array.ts +679 -0
- package/node_modules/mutative/src/constant.ts +17 -0
- package/node_modules/mutative/src/create.ts +27 -0
- package/node_modules/mutative/src/current.ts +206 -0
- package/node_modules/mutative/src/draft.ts +489 -0
- package/node_modules/mutative/src/draftify.ts +57 -0
- package/node_modules/mutative/src/error.ts +129 -0
- package/node_modules/mutative/src/index.ts +21 -0
- package/node_modules/mutative/src/interface.ts +321 -0
- package/node_modules/mutative/src/internal.ts +5 -0
- package/node_modules/mutative/src/makeCreator.ts +382 -0
- package/node_modules/mutative/src/map.ts +160 -0
- package/node_modules/mutative/src/original.ts +28 -0
- package/node_modules/mutative/src/patch.ts +386 -0
- package/node_modules/mutative/src/rawReturn.ts +41 -0
- package/node_modules/mutative/src/set.ts +201 -0
- package/node_modules/mutative/src/unsafe.ts +66 -0
- package/node_modules/mutative/src/utils/cast.ts +22 -0
- package/node_modules/mutative/src/utils/copy.ts +224 -0
- package/node_modules/mutative/src/utils/deepFreeze.ts +103 -0
- package/node_modules/mutative/src/utils/draft.ts +189 -0
- package/node_modules/mutative/src/utils/finalize.ts +232 -0
- package/node_modules/mutative/src/utils/forEach.ts +24 -0
- package/node_modules/mutative/src/utils/index.ts +7 -0
- package/node_modules/mutative/src/utils/mark.ts +11 -0
- package/node_modules/mutative/src/utils/marker.ts +34 -0
- package/node_modules/mutative/src/utils/proto.ts +38 -0
- package/node_modules/uuid/LICENSE.md +9 -0
- package/node_modules/uuid/README.md +491 -0
- package/node_modules/uuid/dist/index.d.ts +15 -0
- package/node_modules/uuid/dist/index.js +14 -0
- package/node_modules/uuid/dist/max.d.ts +2 -0
- package/node_modules/uuid/dist/max.js +1 -0
- package/node_modules/uuid/dist/md5.d.ts +2 -0
- package/node_modules/uuid/dist/md5.js +135 -0
- package/node_modules/uuid/dist/nil.d.ts +2 -0
- package/node_modules/uuid/dist/nil.js +1 -0
- package/node_modules/uuid/dist/parse.d.ts +3 -0
- package/node_modules/uuid/dist/parse.js +9 -0
- package/node_modules/uuid/dist/regex.d.ts +2 -0
- package/node_modules/uuid/dist/regex.js +1 -0
- package/node_modules/uuid/dist/rng.d.ts +1 -0
- package/node_modules/uuid/dist/rng.js +4 -0
- package/node_modules/uuid/dist/sha1.d.ts +2 -0
- package/node_modules/uuid/dist/sha1.js +70 -0
- package/node_modules/uuid/dist/stringify.d.ts +3 -0
- package/node_modules/uuid/dist/stringify.js +35 -0
- package/node_modules/uuid/dist/types.d.ts +22 -0
- package/node_modules/uuid/dist/types.js +1 -0
- package/node_modules/uuid/dist/uuid-bin.d.ts +1 -0
- package/node_modules/uuid/dist/uuid-bin.js +70 -0
- package/node_modules/uuid/dist/v1.d.ts +11 -0
- package/node_modules/uuid/dist/v1.js +87 -0
- package/node_modules/uuid/dist/v1ToV6.d.ts +3 -0
- package/node_modules/uuid/dist/v1ToV6.js +10 -0
- package/node_modules/uuid/dist/v3.d.ts +9 -0
- package/node_modules/uuid/dist/v3.js +9 -0
- package/node_modules/uuid/dist/v35.d.ts +7 -0
- package/node_modules/uuid/dist/v35.js +39 -0
- package/node_modules/uuid/dist/v4.d.ts +4 -0
- package/node_modules/uuid/dist/v4.js +29 -0
- package/node_modules/uuid/dist/v5.d.ts +9 -0
- package/node_modules/uuid/dist/v5.js +9 -0
- package/node_modules/uuid/dist/v6.d.ts +4 -0
- package/node_modules/uuid/dist/v6.js +20 -0
- package/node_modules/uuid/dist/v6ToV1.d.ts +2 -0
- package/node_modules/uuid/dist/v6ToV1.js +10 -0
- package/node_modules/uuid/dist/v7.d.ts +9 -0
- package/node_modules/uuid/dist/v7.js +68 -0
- package/node_modules/uuid/dist/validate.d.ts +2 -0
- package/node_modules/uuid/dist/validate.js +5 -0
- package/node_modules/uuid/dist/version.d.ts +2 -0
- package/node_modules/uuid/dist/version.js +8 -0
- package/node_modules/uuid/dist-node/bin/uuid +2 -0
- package/node_modules/uuid/dist-node/index.js +14 -0
- package/node_modules/uuid/dist-node/max.js +1 -0
- package/node_modules/uuid/dist-node/md5.js +11 -0
- package/node_modules/uuid/dist-node/nil.js +1 -0
- package/node_modules/uuid/dist-node/parse.js +9 -0
- package/node_modules/uuid/dist-node/regex.js +1 -0
- package/node_modules/uuid/dist-node/rng.js +4 -0
- package/node_modules/uuid/dist-node/sha1.js +11 -0
- package/node_modules/uuid/dist-node/stringify.js +35 -0
- package/node_modules/uuid/dist-node/types.js +1 -0
- package/node_modules/uuid/dist-node/uuid-bin.js +70 -0
- package/node_modules/uuid/dist-node/v1.js +87 -0
- package/node_modules/uuid/dist-node/v1ToV6.js +10 -0
- package/node_modules/uuid/dist-node/v3.js +9 -0
- package/node_modules/uuid/dist-node/v35.js +39 -0
- package/node_modules/uuid/dist-node/v4.js +29 -0
- package/node_modules/uuid/dist-node/v5.js +9 -0
- package/node_modules/uuid/dist-node/v6.js +20 -0
- package/node_modules/uuid/dist-node/v6ToV1.js +10 -0
- package/node_modules/uuid/dist-node/v7.js +68 -0
- package/node_modules/uuid/dist-node/validate.js +5 -0
- package/node_modules/uuid/dist-node/version.js +8 -0
- package/node_modules/uuid/package.json +115 -0
- package/package.json +80 -4
- package/release.json +78 -0
package/dist/operator.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Server-only read surface. Product credentials and app-use sessions cannot
|
|
2
|
+
// authenticate here. Issuance and mutation remain installation-owned.
|
|
3
|
+
import { identifier, managementAuthority, object, requestJSON, } from "./http.js";
|
|
4
|
+
import { project, environment, placementState, operation, operationLog, operatorOperationDetail, buildingBlock, hostnameBinding } from "./management-read.js";
|
|
5
|
+
import { listQuery, pageOf } from "./inventory.js";
|
|
6
|
+
export { AstrogateError } from "./http.js";
|
|
7
|
+
function catalogEntry(value) {
|
|
8
|
+
return object(value) && typeof value.id === "string";
|
|
9
|
+
}
|
|
10
|
+
function environmentTopology(value) {
|
|
11
|
+
if (!object(value) || typeof value.cell !== "string" || !Number.isSafeInteger(value.epoch) || typeof value.fresh !== "boolean" || typeof value.observedAt !== "string" || typeof value.validUntil !== "string" || !Number.isFinite(Date.parse(value.observedAt)) || !Number.isFinite(Date.parse(value.validUntil)))
|
|
12
|
+
return false;
|
|
13
|
+
return Array.isArray(value.hosts) && value.hosts.every(host => object(host) && typeof host.ready === "boolean" && ["name", "providerId", "architecture", "operatingSystem", "kubeletVersion", "containerRuntimeVersion"].every(key => typeof host[key] === "string")) && Array.isArray(value.targets) && value.targets.every(target => object(target) && typeof target.ready === "boolean" && ["name", "node", "service"].every(key => typeof target[key] === "string"));
|
|
14
|
+
}
|
|
15
|
+
export function createOperator(options) {
|
|
16
|
+
const endpoint = managementAuthority(options);
|
|
17
|
+
function read(path, validate, signal) {
|
|
18
|
+
return requestJSON(new URL(`/v1/operator/products${path}`, endpoint), options, { method: "GET", headers: { authorization: `Bearer ${options.token}` } }, validate, signal);
|
|
19
|
+
}
|
|
20
|
+
const scope = (product, tenant) => `/${identifier(product)}/tenants/${identifier(tenant)}`;
|
|
21
|
+
const projectPath = (product, tenant, id) => `${scope(product, tenant)}/projects/${identifier(id)}`;
|
|
22
|
+
const environmentPath = (product, tenant, project, id) => `${projectPath(product, tenant, project)}/environments/${identifier(id)}`;
|
|
23
|
+
return {
|
|
24
|
+
products: {
|
|
25
|
+
list: (page = {}, signal) => read(listQuery(page), pageOf(catalogEntry), signal),
|
|
26
|
+
},
|
|
27
|
+
tenants: {
|
|
28
|
+
list: (product, page = {}, signal) => read(`/${identifier(product)}/tenants${listQuery(page)}`, pageOf(catalogEntry), signal),
|
|
29
|
+
},
|
|
30
|
+
projects: {
|
|
31
|
+
list: (product, tenant, page = {}, signal) => read(`${scope(product, tenant)}/projects${listQuery(page)}`, pageOf(project), signal),
|
|
32
|
+
get: (product, tenant, id, signal) => read(projectPath(product, tenant, id), project, signal),
|
|
33
|
+
},
|
|
34
|
+
buildingBlocks: {
|
|
35
|
+
list: (product, tenant, project, environment, page = {}, signal) => read(`${environmentPath(product, tenant, project, environment)}/building-blocks${listQuery(page)}`, pageOf(buildingBlock), signal),
|
|
36
|
+
get: (product, tenant, project, environment, id, signal) => read(`${environmentPath(product, tenant, project, environment)}/building-blocks/${identifier(id)}`, buildingBlock, signal),
|
|
37
|
+
},
|
|
38
|
+
hostnames: {
|
|
39
|
+
list: (product, tenant, project, environment, page = {}, signal) => read(`${environmentPath(product, tenant, project, environment)}/hostnames${listQuery(page)}`, pageOf(hostnameBinding), signal),
|
|
40
|
+
},
|
|
41
|
+
operations: {
|
|
42
|
+
list: (product, tenant, project, page = {}, signal) => read(`${projectPath(product, tenant, project)}/operations${listQuery(page)}`, pageOf(operation), signal),
|
|
43
|
+
get: (product, tenant, project, id, signal) => read(`${projectPath(product, tenant, project)}/operations/${identifier(id)}`, operatorOperationDetail, signal),
|
|
44
|
+
logs: (product, tenant, project, id, kind, signal) => read(`${projectPath(product, tenant, project)}/operations/${identifier(id)}/logs/${identifier(kind)}`, operationLog, signal),
|
|
45
|
+
},
|
|
46
|
+
environments: {
|
|
47
|
+
getTopology: (product, tenant, project, id, signal) => read(`${environmentPath(product, tenant, project, id)}/topology`, environmentTopology, signal),
|
|
48
|
+
list: (product, tenant, project, page = {}, signal) => read(`${projectPath(product, tenant, project)}/environments${listQuery(page)}`, pageOf(environment), signal),
|
|
49
|
+
get: (product, tenant, project, id, signal) => read(environmentPath(product, tenant, project, id), environment, signal),
|
|
50
|
+
getPlacement: (product, tenant, project, id, signal) => read(`${environmentPath(product, tenant, project, id)}/placement`, placementState, signal),
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
package/dist/react.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { init } from "@instantdb/react";
|
|
2
|
+
import { type DatabaseBinding } from "./database-binding.js";
|
|
3
|
+
export { i, id, lookup } from "@instantdb/core";
|
|
4
|
+
export type * from "@instantdb/react";
|
|
5
|
+
export { createAuthClient } from "better-auth/react";
|
|
6
|
+
type NativeSchema = NonNullable<Parameters<typeof init>[0]["schema"]>;
|
|
7
|
+
export declare function createClient<Schema extends NativeSchema, Dates extends boolean = false>(options: {
|
|
8
|
+
binding: DatabaseBinding;
|
|
9
|
+
schema: Schema;
|
|
10
|
+
useDateObjects?: Dates;
|
|
11
|
+
}): {
|
|
12
|
+
db: import("@instantdb/react").InstantReactWebDatabase<Schema, Dates, import("@instantdb/core").InstantConfig<Schema, Dates>>;
|
|
13
|
+
};
|
|
14
|
+
export { getHostedDatabaseSession } from "./hosted-session.js";
|
|
15
|
+
export { createApplication, createStorageClient, AstrogateError } from "./browser.js";
|
|
16
|
+
export type { ServiceBinding, ServiceBindings, StorageObject, CreateStorageUpload, StorageOptions } from "./browser.js";
|
package/dist/react.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { init } from "@instantdb/react";
|
|
2
|
+
import { databaseEndpoint } from "./database-binding.js";
|
|
3
|
+
export { i, id, lookup } from "@instantdb/core";
|
|
4
|
+
export { createAuthClient } from "better-auth/react";
|
|
5
|
+
export function createClient(options) {
|
|
6
|
+
const db = init({ ...databaseEndpoint(options.binding), schema: options.schema, useDateObjects: options.useDateObjects });
|
|
7
|
+
return { db };
|
|
8
|
+
}
|
|
9
|
+
export { getHostedDatabaseSession } from "./hosted-session.js";
|
|
10
|
+
export { createApplication, createStorageClient, AstrogateError } from "./browser.js";
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { init } from "@instantdb/admin";
|
|
2
|
+
import { type DatabaseBinding } from "./database-binding.js";
|
|
3
|
+
export { i, id, lookup } from "@instantdb/core";
|
|
4
|
+
export type * from "@instantdb/admin";
|
|
5
|
+
export { betterAuth } from "better-auth";
|
|
6
|
+
type NativeSchema = NonNullable<Parameters<typeof init>[0]["schema"]>;
|
|
7
|
+
export declare function createClient<Schema extends NativeSchema, Dates extends boolean = false>(options: {
|
|
8
|
+
binding: DatabaseBinding;
|
|
9
|
+
schema: Schema;
|
|
10
|
+
sessionToken: string;
|
|
11
|
+
useDateObjects?: Dates;
|
|
12
|
+
}): {
|
|
13
|
+
db: import("@instantdb/admin").InstantAdminDatabase<Schema, Dates, import("@instantdb/admin").InstantConfig<Schema, Dates>>;
|
|
14
|
+
};
|
|
15
|
+
export declare function exchangeDatabaseSession(options: {
|
|
16
|
+
binding: DatabaseBinding;
|
|
17
|
+
cookie: string;
|
|
18
|
+
issuerCredential: string;
|
|
19
|
+
signal: AbortSignal;
|
|
20
|
+
}): Promise<string>;
|
|
21
|
+
export { createStorageClient } from "./storage.js";
|
|
22
|
+
export { createJobsClient } from "./tasks.js";
|
|
23
|
+
export type { TaskDefinition, TaskContext, JobRunState } from "./tasks.js";
|
|
24
|
+
export type { StorageObject, CreateStorageUpload, StorageOptions } from "./storage.js";
|
|
25
|
+
export type { ServiceBinding, ServiceBindings, ServiceSessions } from "./services.js";
|
|
26
|
+
export { serviceSessionsFromHeader } from "./services.js";
|
|
27
|
+
export { AstrogateError } from "./http.js";
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { init } from "@instantdb/admin";
|
|
2
|
+
import { databaseEndpoint } from "./database-binding.js";
|
|
3
|
+
export { i, id, lookup } from "@instantdb/core";
|
|
4
|
+
export { betterAuth } from "better-auth";
|
|
5
|
+
export function createClient(options) {
|
|
6
|
+
if (!options.sessionToken)
|
|
7
|
+
throw new Error("A scoped application session is required");
|
|
8
|
+
const db = init({ ...databaseEndpoint(options.binding), schema: options.schema, useDateObjects: options.useDateObjects, adminToken: options.sessionToken }).asUser({ token: options.sessionToken });
|
|
9
|
+
return { db };
|
|
10
|
+
}
|
|
11
|
+
// Call from an application's own authenticated server route. Its cookies need
|
|
12
|
+
// not cover the infrastructure domain, and the issuer credential stays server-side.
|
|
13
|
+
export async function exchangeDatabaseSession(options) {
|
|
14
|
+
if (typeof window !== "undefined")
|
|
15
|
+
throw new Error("Database session exchange is server-only");
|
|
16
|
+
const endpoint = databaseEndpoint(options.binding);
|
|
17
|
+
const origin = new URL(endpoint.apiURI);
|
|
18
|
+
const request = { appId: endpoint.appId, cookie: options.cookie };
|
|
19
|
+
const response = await fetch(new URL('/v1/database/session', origin), { method: 'POST', headers: { 'content-type': 'application/json', authorization: 'Bearer ' + options.issuerCredential }, body: JSON.stringify(request), signal: options.signal, redirect: 'error' });
|
|
20
|
+
if (!response.ok)
|
|
21
|
+
throw new Error('Database session exchange denied or unavailable');
|
|
22
|
+
const result = await response.json();
|
|
23
|
+
if (typeof result !== "object" || result === null || !('token' in result) || typeof result.token !== "string" || !/^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i.test(result.token))
|
|
24
|
+
throw new Error('Invalid database session response');
|
|
25
|
+
return result.token;
|
|
26
|
+
}
|
|
27
|
+
export { createStorageClient } from "./storage.js";
|
|
28
|
+
export { createJobsClient } from "./tasks.js";
|
|
29
|
+
export { serviceSessionsFromHeader } from "./services.js";
|
|
30
|
+
export { AstrogateError } from "./http.js";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { components } from "./wire.gen.js";
|
|
2
|
+
export type ServiceBinding = components["schemas"]["ServiceBinding"];
|
|
3
|
+
export type ServiceBindings = components["schemas"]["ServiceBindings"];
|
|
4
|
+
export declare function serviceBindings(value: unknown): value is ServiceBindings;
|
|
5
|
+
export type ServiceSessions = components["schemas"]["ServiceSessions"];
|
|
6
|
+
export declare function serviceSessionsFromHeader(header: string | null): ServiceSessions;
|
|
7
|
+
export declare function serviceURL(binding: ServiceBinding, path: string): URL;
|
package/dist/services.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { AstrogateError, identifier, object } from "./http.js";
|
|
2
|
+
export function serviceBindings(value) {
|
|
3
|
+
if (!object(value) || Object.keys(value).some(key => !["identity", "storage", "jobs"].includes(key)))
|
|
4
|
+
return false;
|
|
5
|
+
for (const key of ["identity", "storage", "jobs"]) {
|
|
6
|
+
const binding = value[key];
|
|
7
|
+
if (binding === undefined)
|
|
8
|
+
continue;
|
|
9
|
+
if (!object(binding) || typeof binding.resourceId !== "string" || typeof binding.endpoint !== "string" || typeof binding.authorityId !== "string" || typeof binding.cellId !== "string" || typeof binding.locationId !== "string" || typeof binding.environmentId !== "string" || (binding.environmentKind !== "preview" && binding.environmentKind !== "staging" && binding.environmentKind !== "production"))
|
|
10
|
+
return false;
|
|
11
|
+
try {
|
|
12
|
+
serviceURL({ resourceId: binding.resourceId, endpoint: binding.endpoint, authorityId: binding.authorityId, cellId: binding.cellId, locationId: binding.locationId, environmentId: binding.environmentId, environmentKind: binding.environmentKind }, "/");
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
// Use only the header overwritten by the trusted application gateway. A
|
|
21
|
+
// standalone custom server must establish its own trusted ingress boundary.
|
|
22
|
+
export function serviceSessionsFromHeader(header) {
|
|
23
|
+
if (header === null)
|
|
24
|
+
return {};
|
|
25
|
+
let value;
|
|
26
|
+
try {
|
|
27
|
+
value = JSON.parse(header);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
throw new AstrogateError("invalid_service_sessions", 0, "", false);
|
|
31
|
+
}
|
|
32
|
+
if (!object(value) || Object.keys(value).some(key => key !== "storage" && key !== "jobs"))
|
|
33
|
+
throw new AstrogateError("invalid_service_sessions", 0, "", false);
|
|
34
|
+
const result = {};
|
|
35
|
+
for (const key of ["storage", "jobs"]) {
|
|
36
|
+
const session = value[key];
|
|
37
|
+
if (session === undefined)
|
|
38
|
+
continue;
|
|
39
|
+
if (!object(session) || Object.keys(session).sort().join(",") !== "resourceId,token" || typeof session.resourceId !== "string" || typeof session.token !== "string" || !/^[a-f0-9]{64}$/.test(session.token))
|
|
40
|
+
throw new AstrogateError("invalid_service_sessions", 0, "", false);
|
|
41
|
+
identifier(session.resourceId);
|
|
42
|
+
result[key] = { resourceId: session.resourceId, token: session.token };
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
export function serviceURL(binding, path) {
|
|
47
|
+
const url = new URL(binding.endpoint);
|
|
48
|
+
const localPreview = binding.environmentKind === "preview" && url.protocol === "http:" && ["127.0.0.1", "[::1]", "localhost"].includes(url.hostname);
|
|
49
|
+
if ((url.protocol !== "https:" && !localPreview) || url.username || url.password || url.pathname !== "/" || url.search || url.hash || !binding.authorityId || !binding.cellId || !binding.locationId || !binding.environmentId || !["preview", "staging", "production"].includes(binding.environmentKind))
|
|
50
|
+
throw new AstrogateError("invalid_service_binding", 0, "", false);
|
|
51
|
+
identifier(binding.resourceId);
|
|
52
|
+
return new URL(path, url);
|
|
53
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { components } from "./wire.gen.js";
|
|
2
|
+
import type { ServiceBinding } from "./services.js";
|
|
3
|
+
import { type MutationOptions, type TransportBudget } from "./http.js";
|
|
4
|
+
export type StorageObject = components["schemas"]["StorageObject"];
|
|
5
|
+
export type CreateStorageUpload = components["schemas"]["CreateStorageUpload"];
|
|
6
|
+
export interface StorageOptions extends TransportBudget {
|
|
7
|
+
binding: ServiceBinding;
|
|
8
|
+
sessionToken?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function createStorageClient(options: StorageOptions): {
|
|
11
|
+
reserve: (input: CreateStorageUpload, controls: MutationOptions) => Promise<{
|
|
12
|
+
id: string;
|
|
13
|
+
resourceId: string;
|
|
14
|
+
sizeBytes: number;
|
|
15
|
+
sha256: string;
|
|
16
|
+
contentType: string;
|
|
17
|
+
filename: string;
|
|
18
|
+
state: "pending" | "ready" | "deleting" | "deleted";
|
|
19
|
+
retainUntil: string;
|
|
20
|
+
}>;
|
|
21
|
+
upload: (input: {
|
|
22
|
+
objectId: string;
|
|
23
|
+
body: Blob;
|
|
24
|
+
}, controls: {
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
}) => Promise<{
|
|
27
|
+
id: string;
|
|
28
|
+
resourceId: string;
|
|
29
|
+
sizeBytes: number;
|
|
30
|
+
sha256: string;
|
|
31
|
+
contentType: string;
|
|
32
|
+
filename: string;
|
|
33
|
+
state: "pending" | "ready" | "deleting" | "deleted";
|
|
34
|
+
retainUntil: string;
|
|
35
|
+
}>;
|
|
36
|
+
metadata: (objectId: string, controls: {
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
}) => Promise<{
|
|
39
|
+
id: string;
|
|
40
|
+
resourceId: string;
|
|
41
|
+
sizeBytes: number;
|
|
42
|
+
sha256: string;
|
|
43
|
+
contentType: string;
|
|
44
|
+
filename: string;
|
|
45
|
+
state: "pending" | "ready" | "deleting" | "deleted";
|
|
46
|
+
retainUntil: string;
|
|
47
|
+
}>;
|
|
48
|
+
download: (objectId: string, controls: {
|
|
49
|
+
signal?: AbortSignal;
|
|
50
|
+
}) => Promise<Response>;
|
|
51
|
+
delete: (objectId: string, controls: {
|
|
52
|
+
signal?: AbortSignal;
|
|
53
|
+
}) => Promise<undefined>;
|
|
54
|
+
references: {
|
|
55
|
+
attach: (input: {
|
|
56
|
+
objectId: string;
|
|
57
|
+
referenceId: string;
|
|
58
|
+
}, controls: {
|
|
59
|
+
signal?: AbortSignal;
|
|
60
|
+
}) => Promise<undefined>;
|
|
61
|
+
detach: (input: {
|
|
62
|
+
objectId: string;
|
|
63
|
+
referenceId: string;
|
|
64
|
+
}, controls: {
|
|
65
|
+
signal?: AbortSignal;
|
|
66
|
+
}) => Promise<undefined>;
|
|
67
|
+
};
|
|
68
|
+
};
|
package/dist/storage.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { serviceURL } from "./services.js";
|
|
2
|
+
import { AstrogateError, identifier, object, requestJSON, requestResponse, validateBudget } from "./http.js";
|
|
3
|
+
function storageObject(value) {
|
|
4
|
+
return object(value) && ["id", "resourceId", "sha256", "contentType", "filename", "retainUntil"].every(key => typeof value[key] === "string") && Number.isSafeInteger(value.sizeBytes) && Number(value.sizeBytes) >= 0 && ["pending", "ready", "deleting", "deleted"].includes(String(value.state));
|
|
5
|
+
}
|
|
6
|
+
export function createStorageClient(options) {
|
|
7
|
+
validateBudget(options);
|
|
8
|
+
serviceURL(options.binding, "/");
|
|
9
|
+
if (options.sessionToken && typeof window !== "undefined")
|
|
10
|
+
throw new AstrogateError("scoped_server_session_required", 0, "", false);
|
|
11
|
+
const base = `/v1/storage/${identifier(options.binding.resourceId)}`;
|
|
12
|
+
const headers = () => options.sessionToken ? { authorization: "Bearer " + options.sessionToken } : {};
|
|
13
|
+
const jsonHeaders = () => ({ ...headers(), "content-type": "application/json" });
|
|
14
|
+
const url = (path) => serviceURL(options.binding, base + path);
|
|
15
|
+
return {
|
|
16
|
+
reserve: (input, controls) => {
|
|
17
|
+
if (!controls.idempotencyKey)
|
|
18
|
+
throw new AstrogateError("idempotency_key_required", 0, "", false);
|
|
19
|
+
return requestJSON(url("/uploads"), options, { method: "POST", headers: { ...jsonHeaders(), "idempotency-key": controls.idempotencyKey }, credentials: "include", body: JSON.stringify(input) }, storageObject, controls.signal);
|
|
20
|
+
},
|
|
21
|
+
upload: (input, controls) => requestJSON(url(`/objects/${identifier(input.objectId)}`), options, { method: "PUT", headers: headers(), credentials: "include", body: input.body }, storageObject, controls.signal),
|
|
22
|
+
metadata: (objectId, controls) => requestJSON(url(`/objects/${identifier(objectId)}/metadata`), options, { headers: headers(), credentials: "include" }, storageObject, controls.signal),
|
|
23
|
+
download: (objectId, controls) => requestResponse(url(`/objects/${identifier(objectId)}`), options, { headers: headers(), credentials: "include" }, controls.signal),
|
|
24
|
+
delete: (objectId, controls) => requestJSON(url(`/objects/${identifier(objectId)}`), options, { method: "DELETE", headers: headers(), credentials: "include" }, (value) => value === undefined, controls.signal),
|
|
25
|
+
references: {
|
|
26
|
+
attach: (input, controls) => requestJSON(url(`/objects/${identifier(input.objectId)}/references`), options, { method: "POST", headers: jsonHeaders(), credentials: "include", body: JSON.stringify({ referenceId: input.referenceId }) }, (value) => value === undefined, controls.signal),
|
|
27
|
+
detach: (input, controls) => requestJSON(url(`/objects/${identifier(input.objectId)}/references`), options, { method: "DELETE", headers: jsonHeaders(), credentials: "include", body: JSON.stringify({ referenceId: input.referenceId }) }, (value) => value === undefined, controls.signal),
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
package/dist/tasks.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { components } from "./wire.gen.js";
|
|
2
|
+
import { type ServiceBinding, type ServiceSessions } from "./services.js";
|
|
3
|
+
import { type MutationOptions, type TransportBudget } from "./http.js";
|
|
4
|
+
export interface TaskContext<Payload> {
|
|
5
|
+
payload: Payload;
|
|
6
|
+
runId: string;
|
|
7
|
+
idempotencyKey: string;
|
|
8
|
+
services: ServiceSessions;
|
|
9
|
+
}
|
|
10
|
+
export interface TaskDefinition<Payload extends Record<string, unknown>> {
|
|
11
|
+
parse(input: unknown): Payload;
|
|
12
|
+
run(context: TaskContext<Payload>): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export type JobRunState = components["schemas"]["JobRunState"];
|
|
15
|
+
type Parsers = Record<string, {
|
|
16
|
+
parse(input: unknown): Record<string, unknown>;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function createJobsClient<Tasks extends Parsers>(options: TransportBudget & {
|
|
19
|
+
binding: ServiceBinding;
|
|
20
|
+
sessionToken: string;
|
|
21
|
+
tasks: Tasks;
|
|
22
|
+
}): {
|
|
23
|
+
run: <Name extends Extract<keyof Tasks, string>>(input: {
|
|
24
|
+
task: Name;
|
|
25
|
+
payload: ReturnType<Tasks[Name]["parse"]>;
|
|
26
|
+
}, controls: MutationOptions) => Promise<{
|
|
27
|
+
operationId: string;
|
|
28
|
+
resourceId: string;
|
|
29
|
+
statusUrl: string;
|
|
30
|
+
}>;
|
|
31
|
+
get: (runId: string, controls: {
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
}) => Promise<{
|
|
34
|
+
id: string;
|
|
35
|
+
operationId: string;
|
|
36
|
+
taskDefinitionRef: string;
|
|
37
|
+
state: "queued" | "running" | "waiting" | "succeeded" | "failed";
|
|
38
|
+
errorCode: string;
|
|
39
|
+
attempts: number;
|
|
40
|
+
}>;
|
|
41
|
+
};
|
|
42
|
+
export {};
|
package/dist/tasks.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { serviceURL } from "./services.js";
|
|
2
|
+
import { AstrogateError, identifier, object, requestJSON, validateBudget } from "./http.js";
|
|
3
|
+
function accepted(value) { return object(value) && typeof value.operationId === "string" && typeof value.resourceId === "string" && typeof value.statusUrl === "string"; }
|
|
4
|
+
function jobState(value) { return object(value) && typeof value.id === "string" && typeof value.operationId === "string" && typeof value.taskDefinitionRef === "string" && typeof value.errorCode === "string" && Number.isSafeInteger(value.attempts) && ["queued", "running", "waiting", "succeeded", "failed"].includes(String(value.state)); }
|
|
5
|
+
// Tasks are server-only and always use the verified request user. The active
|
|
6
|
+
// release alias is resolved and pinned once, inside metadata admission.
|
|
7
|
+
export function createJobsClient(options) {
|
|
8
|
+
if (typeof window !== "undefined" || !options.sessionToken)
|
|
9
|
+
throw new AstrogateError("scoped_server_user_context_required", 0, "", false);
|
|
10
|
+
validateBudget(options);
|
|
11
|
+
const base = `/v1/jobs/${identifier(options.binding.resourceId)}`;
|
|
12
|
+
serviceURL(options.binding, "/");
|
|
13
|
+
return {
|
|
14
|
+
run: (input, controls) => {
|
|
15
|
+
const definition = options.tasks[input.task];
|
|
16
|
+
if (!definition || !controls.idempotencyKey)
|
|
17
|
+
throw new AstrogateError("registered_task_and_idempotency_required", 0, "", false);
|
|
18
|
+
const payload = definition.parse(input.payload);
|
|
19
|
+
const body = { taskDefinitionRef: `active:${identifier(input.task)}`, expectedEnvironmentKind: options.binding.environmentKind, payload };
|
|
20
|
+
return requestJSON(serviceURL(options.binding, `${base}/runs`), options, { method: "POST", headers: { authorization: "Bearer " + options.sessionToken, "content-type": "application/json", "idempotency-key": controls.idempotencyKey }, body: JSON.stringify(body) }, accepted, controls.signal);
|
|
21
|
+
},
|
|
22
|
+
get: (runId, controls) => requestJSON(serviceURL(options.binding, `${base}/runs/${identifier(runId)}`), options, { headers: { authorization: "Bearer " + options.sessionToken } }, jobState, controls.signal),
|
|
23
|
+
};
|
|
24
|
+
}
|