houdini 2.0.0-next.8 → 2.0.0
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/build/adapter/index.d.ts +2 -2
- package/build/adapter/index.js +6 -0
- package/build/cmd/generate.d.ts +5 -0
- package/build/cmd/generate.js +77 -0
- package/build/cmd/index.js +32 -0
- package/build/cmd/init.js +565 -0
- package/build/cmd/pullSchema.js +26 -0
- package/build/lib/ast.js +71 -0
- package/build/lib/codegen.d.ts +57 -0
- package/build/lib/codegen.js +617 -0
- package/build/lib/config.d.ts +240 -177
- package/build/lib/config.js +143 -0
- package/build/lib/constants.js +14 -0
- package/build/lib/database.d.ts +7 -0
- package/build/lib/database.js +624 -0
- package/build/lib/db.d.ts +13 -0
- package/build/lib/db.js +135 -0
- package/build/lib/deepMerge.js +23 -0
- package/build/lib/error.d.ts +16 -0
- package/build/lib/error.js +115 -0
- package/build/lib/fs.d.ts +9 -11
- package/build/lib/fs.js +245 -0
- package/build/lib/graphql.d.ts +5 -32
- package/build/lib/graphql.js +36 -0
- package/build/lib/imports.d.ts +29 -14
- package/build/lib/imports.js +66 -0
- package/build/lib/index.d.ts +17 -24
- package/build/lib/index.js +21 -0
- package/build/lib/logger.d.ts +12 -0
- package/build/lib/logger.js +45 -0
- package/build/lib/parse.d.ts +1 -2
- package/build/lib/parse.js +32 -0
- package/build/lib/path.d.ts +0 -1
- package/build/lib/path.js +44 -0
- package/build/lib/pipeline.d.ts +1 -1
- package/build/lib/pipeline.js +8 -0
- package/build/lib/plugins.d.ts +4 -0
- package/build/lib/plugins.js +88 -0
- package/build/lib/project.d.ts +19 -0
- package/build/lib/project.js +296 -0
- package/build/lib/schema.d.ts +1 -0
- package/build/lib/schema.js +61 -0
- package/build/lib/sleep.d.ts +1 -0
- package/build/lib/sleep.js +8 -0
- package/build/lib/types.d.ts +92 -303
- package/build/lib/types.js +37 -0
- package/build/lib/walk.d.ts +11 -6
- package/build/lib/walk.js +138 -0
- package/build/node/index.d.ts +44 -0
- package/build/node/index.js +402 -0
- package/build/oauth/index.d.ts +41 -0
- package/build/oauth/index.js +108 -0
- package/build/package.json +212 -0
- package/build/router/auth-token.d.ts +29 -0
- package/build/router/auth-token.js +168 -0
- package/build/{lib/router → router}/conventions.d.ts +10 -1
- package/build/router/conventions.js +165 -0
- package/build/{runtime-esm/router → router}/cookies.js +21 -21
- package/build/{runtime-esm/router → router}/jwt.js +8 -6
- package/build/{lib/router → router}/manifest.d.ts +2 -2
- package/build/router/manifest.js +279 -0
- package/build/{runtime/router → router}/match.d.ts +10 -10
- package/build/router/match.js +219 -0
- package/build/router/server.d.ts +57 -0
- package/build/router/server.js +500 -0
- package/build/{runtime/router → router}/session.d.ts +8 -3
- package/build/router/session.js +338 -0
- package/build/router/types.d.ts +44 -0
- package/build/runtime/cache/benchmarks/cache.bench.d.ts +1 -0
- package/build/runtime/cache/benchmarks/cache.bench.js +943 -0
- package/build/runtime/cache/gc.d.ts +2 -1
- package/build/{runtime-esm → runtime}/cache/gc.js +4 -1
- package/build/runtime/cache/index.d.ts +173 -3
- package/build/{runtime-esm/cache/cache.js → runtime/cache/index.js} +197 -70
- package/build/runtime/cache/lists.d.ts +9 -4
- package/build/{runtime-esm → runtime}/cache/lists.js +116 -27
- package/build/runtime/cache/staleManager.d.ts +2 -1
- package/build/{runtime-esm → runtime}/cache/staleManager.js +6 -2
- package/build/runtime/cache/storage.d.ts +5 -2
- package/build/{runtime-esm → runtime}/cache/storage.js +126 -54
- package/build/{runtime-esm → runtime}/cache/stuff.js +4 -3
- package/build/runtime/cache/subscription.d.ts +23 -9
- package/build/{runtime-esm → runtime}/cache/subscription.js +103 -65
- package/build/runtime/{client/index.d.ts → client.d.ts} +15 -22
- package/build/runtime/client.js +86 -0
- package/build/runtime/coerce.d.ts +4 -0
- package/build/runtime/coerce.js +31 -0
- package/build/runtime/config.d.ts +20 -0
- package/build/runtime/config.js +88 -0
- package/build/runtime/{lib/constants.d.ts → constants.d.ts} +1 -1
- package/build/runtime/{client/documentStore.d.ts → documentStore.d.ts} +18 -11
- package/build/{runtime-esm/client → runtime}/documentStore.js +53 -56
- package/build/runtime/endpoint.d.ts +14 -0
- package/build/runtime/endpoint.js +29 -0
- package/build/{runtime-cjs/lib → runtime}/flatten.d.ts +1 -1
- package/build/runtime/formData.d.ts +24 -0
- package/build/runtime/formData.js +93 -0
- package/build/runtime/index.d.ts +16 -8
- package/build/runtime/index.js +54 -0
- package/build/{runtime-cjs/lib → runtime}/key.d.ts +1 -1
- package/build/{runtime-esm/lib → runtime}/key.js +4 -4
- package/build/{runtime-esm/lib → runtime}/log.js +3 -3
- package/build/runtime/multipart.d.ts +8 -0
- package/build/runtime/multipart.js +49 -0
- package/build/{runtime-cjs/lib → runtime}/pageInfo.d.ts +3 -3
- package/build/{runtime-esm/lib → runtime}/pageInfo.js +2 -2
- package/build/{runtime-cjs/lib → runtime}/pagination.d.ts +12 -8
- package/build/{runtime-esm/lib → runtime}/pagination.js +157 -21
- package/build/{runtime-cjs/lib → runtime}/scalars.d.ts +6 -6
- package/build/{runtime-esm/lib → runtime}/scalars.js +10 -43
- package/build/{runtime-cjs/lib → runtime}/selection.d.ts +1 -1
- package/build/{runtime-esm/lib → runtime}/selection.js +17 -2
- package/build/runtime/{lib/store.d.ts → store.d.ts} +1 -1
- package/build/{runtime-esm/lib → runtime}/store.js +2 -3
- package/build/runtime/{lib/types.d.ts → types.d.ts} +102 -101
- package/build/{runtime-esm/lib → runtime}/types.js +9 -14
- package/build/test/index.d.ts +6 -25
- package/build/test/index.js +329 -0
- package/build/test/package.json +1 -0
- package/build/vite/hmr.d.ts +26 -3
- package/build/vite/hmr.js +431 -0
- package/build/vite/houdini.d.ts +4 -10
- package/build/vite/houdini.js +134 -0
- package/build/vite/index.d.ts +13 -7
- package/build/vite/index.js +104 -0
- package/build/vite/package.json +1 -0
- package/build/vite/schema.d.ts +5 -3
- package/build/vite/schema.js +193 -0
- package/package.json +148 -57
- package/build/adapter-cjs/index.js +0 -33
- package/build/adapter-cjs/package.json +0 -1
- package/build/adapter-esm/index.js +0 -9
- package/build/cmd-cjs/index.js +0 -89304
- package/build/cmd-cjs/package.json +0 -1
- package/build/cmd-esm/index.js +0 -89308
- package/build/codegen/generators/artifacts/fieldKey.d.ts +0 -3
- package/build/codegen/generators/artifacts/index.d.ts +0 -17
- package/build/codegen/generators/artifacts/indexFile.d.ts +0 -2
- package/build/codegen/generators/artifacts/inputs.d.ts +0 -4
- package/build/codegen/generators/artifacts/operations.d.ts +0 -11
- package/build/codegen/generators/artifacts/selection.d.ts +0 -20
- package/build/codegen/generators/artifacts/utils.d.ts +0 -8
- package/build/codegen/generators/comments/jsdoc.d.ts +0 -2
- package/build/codegen/generators/definitions/enums.d.ts +0 -2
- package/build/codegen/generators/definitions/index.d.ts +0 -2
- package/build/codegen/generators/index.d.ts +0 -6
- package/build/codegen/generators/indexFile/index.d.ts +0 -2
- package/build/codegen/generators/persistedQueries/index.d.ts +0 -2
- package/build/codegen/generators/runtime/graphqlFunction.d.ts +0 -2
- package/build/codegen/generators/runtime/index.d.ts +0 -3
- package/build/codegen/generators/runtime/injectPlugins.d.ts +0 -7
- package/build/codegen/generators/runtime/pluginIndex.d.ts +0 -5
- package/build/codegen/generators/runtime/pluginRuntime.d.ts +0 -15
- package/build/codegen/generators/runtime/runtimeConfig.d.ts +0 -7
- package/build/codegen/generators/typescript/addReferencedInputTypes.d.ts +0 -4
- package/build/codegen/generators/typescript/documentTypes.d.ts +0 -2
- package/build/codegen/generators/typescript/imperativeTypeDef.d.ts +0 -2
- package/build/codegen/generators/typescript/index.d.ts +0 -2
- package/build/codegen/generators/typescript/inlineType.d.ts +0 -29
- package/build/codegen/generators/typescript/loadingState.d.ts +0 -8
- package/build/codegen/index.d.ts +0 -8
- package/build/codegen/transforms/addFields.d.ts +0 -2
- package/build/codegen/transforms/collectDefinitions.d.ts +0 -9
- package/build/codegen/transforms/componentFields.d.ts +0 -8
- package/build/codegen/transforms/fragmentVariables.d.ts +0 -17
- package/build/codegen/transforms/index.d.ts +0 -9
- package/build/codegen/transforms/list.d.ts +0 -9
- package/build/codegen/transforms/paginate.d.ts +0 -4
- package/build/codegen/transforms/runtimeScalars.d.ts +0 -2
- package/build/codegen/transforms/schema.d.ts +0 -2
- package/build/codegen/transforms/typename.d.ts +0 -2
- package/build/codegen/utils/commonjs.d.ts +0 -5
- package/build/codegen/utils/flattenSelections.d.ts +0 -11
- package/build/codegen/utils/index.d.ts +0 -4
- package/build/codegen/utils/moduleExport.d.ts +0 -4
- package/build/codegen/utils/murmur.d.ts +0 -9
- package/build/codegen/utils/objectIdentificationSelection.d.ts +0 -3
- package/build/codegen/utils/stripLoc.d.ts +0 -3
- package/build/codegen/validators/componentFields.d.ts +0 -2
- package/build/codegen/validators/index.d.ts +0 -5
- package/build/codegen/validators/noIDAlias.d.ts +0 -2
- package/build/codegen/validators/plugins.d.ts +0 -3
- package/build/codegen/validators/typeCheck.d.ts +0 -5
- package/build/codegen/validators/uniqueNames.d.ts +0 -2
- package/build/codegen-cjs/index.js +0 -74661
- package/build/codegen-cjs/package.json +0 -1
- package/build/codegen-esm/index.js +0 -74660
- package/build/lib/cleanupFiles.d.ts +0 -1
- package/build/lib/detectTools.d.ts +0 -16
- package/build/lib/introspection.d.ts +0 -3
- package/build/lib/plugin.d.ts +0 -2
- package/build/lib/router/index.d.ts +0 -9
- package/build/lib/router/server.d.ts +0 -7
- package/build/lib/router/types.d.ts +0 -23
- package/build/lib/typescript.d.ts +0 -20
- package/build/lib/watchAndRun.d.ts +0 -61
- package/build/lib-cjs/index.js +0 -79736
- package/build/lib-cjs/package.json +0 -1
- package/build/lib-esm/index.js +0 -79645
- package/build/runtime/cache/cache.d.ts +0 -169
- package/build/runtime/client/plugins/cache.d.ts +0 -9
- package/build/runtime/client/plugins/fetch.d.ts +0 -38
- package/build/runtime/client/plugins/fetchParams.d.ts +0 -9
- package/build/runtime/client/plugins/fragment.d.ts +0 -2
- package/build/runtime/client/plugins/index.d.ts +0 -9
- package/build/runtime/client/plugins/injectedPlugins.d.ts +0 -4
- package/build/runtime/client/plugins/mutation.d.ts +0 -2
- package/build/runtime/client/plugins/optimisticKeys.d.ts +0 -7
- package/build/runtime/client/plugins/query.d.ts +0 -2
- package/build/runtime/client/plugins/subscription.d.ts +0 -20
- package/build/runtime/client/plugins/test.d.ts +0 -15
- package/build/runtime/client/plugins/throwOnError.d.ts +0 -8
- package/build/runtime/client/utils/documentPlugins.d.ts +0 -3
- package/build/runtime/client/utils/index.d.ts +0 -1
- package/build/runtime/generated.d.ts +0 -5
- package/build/runtime/imports/config.d.ts +0 -3
- package/build/runtime/imports/pluginConfig.d.ts +0 -3
- package/build/runtime/lib/config.d.ts +0 -216
- package/build/runtime/lib/deepEquals.d.ts +0 -1
- package/build/runtime/lib/flatten.d.ts +0 -2
- package/build/runtime/lib/index.d.ts +0 -10
- package/build/runtime/lib/key.d.ts +0 -6
- package/build/runtime/lib/log.d.ts +0 -6
- package/build/runtime/lib/lru.d.ts +0 -52
- package/build/runtime/lib/pageInfo.d.ts +0 -7
- package/build/runtime/lib/pagination.d.ts +0 -27
- package/build/runtime/lib/scalars.d.ts +0 -14
- package/build/runtime/lib/selection.d.ts +0 -2
- package/build/runtime/public/cache.d.ts +0 -43
- package/build/runtime/public/index.d.ts +0 -1
- package/build/runtime/public/list.d.ts +0 -18
- package/build/runtime/public/record.d.ts +0 -40
- package/build/runtime/public/tests/test.d.ts +0 -156
- package/build/runtime/public/types.d.ts +0 -62
- package/build/runtime/router/cookies.d.ts +0 -41
- package/build/runtime/router/jwt.d.ts +0 -117
- package/build/runtime/router/server.d.ts +0 -24
- package/build/runtime/router/types.d.ts +0 -26
- package/build/runtime-cjs/cache/cache.d.ts +0 -169
- package/build/runtime-cjs/cache/cache.js +0 -1077
- package/build/runtime-cjs/cache/constants.d.ts +0 -1
- package/build/runtime-cjs/cache/constants.js +0 -28
- package/build/runtime-cjs/cache/gc.d.ts +0 -10
- package/build/runtime-cjs/cache/gc.js +0 -74
- package/build/runtime-cjs/cache/index.d.ts +0 -3
- package/build/runtime-cjs/cache/index.js +0 -25
- package/build/runtime-cjs/cache/lists.d.ts +0 -89
- package/build/runtime-cjs/cache/lists.js +0 -467
- package/build/runtime-cjs/cache/staleManager.d.ts +0 -31
- package/build/runtime-cjs/cache/staleManager.js +0 -123
- package/build/runtime-cjs/cache/storage.d.ts +0 -110
- package/build/runtime-cjs/cache/storage.js +0 -451
- package/build/runtime-cjs/cache/stuff.d.ts +0 -2
- package/build/runtime-cjs/cache/stuff.js +0 -56
- package/build/runtime-cjs/cache/subscription.d.ts +0 -52
- package/build/runtime-cjs/cache/subscription.js +0 -349
- package/build/runtime-cjs/client/documentStore.d.ts +0 -107
- package/build/runtime-cjs/client/documentStore.js +0 -487
- package/build/runtime-cjs/client/index.d.ts +0 -50
- package/build/runtime-cjs/client/index.js +0 -162
- package/build/runtime-cjs/client/plugins/cache.d.ts +0 -9
- package/build/runtime-cjs/client/plugins/cache.js +0 -138
- package/build/runtime-cjs/client/plugins/fetch.d.ts +0 -38
- package/build/runtime-cjs/client/plugins/fetch.js +0 -210
- package/build/runtime-cjs/client/plugins/fetchParams.d.ts +0 -9
- package/build/runtime-cjs/client/plugins/fetchParams.js +0 -47
- package/build/runtime-cjs/client/plugins/fragment.d.ts +0 -2
- package/build/runtime-cjs/client/plugins/fragment.js +0 -77
- package/build/runtime-cjs/client/plugins/index.d.ts +0 -9
- package/build/runtime-cjs/client/plugins/index.js +0 -45
- package/build/runtime-cjs/client/plugins/injectedPlugins.d.ts +0 -4
- package/build/runtime-cjs/client/plugins/injectedPlugins.js +0 -25
- package/build/runtime-cjs/client/plugins/mutation.d.ts +0 -2
- package/build/runtime-cjs/client/plugins/mutation.js +0 -89
- package/build/runtime-cjs/client/plugins/optimisticKeys.d.ts +0 -7
- package/build/runtime-cjs/client/plugins/optimisticKeys.js +0 -324
- package/build/runtime-cjs/client/plugins/query.d.ts +0 -2
- package/build/runtime-cjs/client/plugins/query.js +0 -93
- package/build/runtime-cjs/client/plugins/subscription.d.ts +0 -20
- package/build/runtime-cjs/client/plugins/subscription.js +0 -114
- package/build/runtime-cjs/client/plugins/test.d.ts +0 -15
- package/build/runtime-cjs/client/plugins/test.js +0 -118
- package/build/runtime-cjs/client/plugins/throwOnError.d.ts +0 -8
- package/build/runtime-cjs/client/plugins/throwOnError.js +0 -47
- package/build/runtime-cjs/client/utils/documentPlugins.d.ts +0 -3
- package/build/runtime-cjs/client/utils/documentPlugins.js +0 -57
- package/build/runtime-cjs/client/utils/index.d.ts +0 -1
- package/build/runtime-cjs/client/utils/index.js +0 -22
- package/build/runtime-cjs/generated.d.ts +0 -5
- package/build/runtime-cjs/generated.js +0 -16
- package/build/runtime-cjs/imports/config.d.ts +0 -3
- package/build/runtime-cjs/imports/config.js +0 -24
- package/build/runtime-cjs/imports/pluginConfig.d.ts +0 -3
- package/build/runtime-cjs/imports/pluginConfig.js +0 -25
- package/build/runtime-cjs/index.d.ts +0 -8
- package/build/runtime-cjs/index.js +0 -61
- package/build/runtime-cjs/lib/config.d.ts +0 -216
- package/build/runtime-cjs/lib/config.js +0 -110
- package/build/runtime-cjs/lib/constants.d.ts +0 -6
- package/build/runtime-cjs/lib/constants.js +0 -38
- package/build/runtime-cjs/lib/deepEquals.js +0 -52
- package/build/runtime-cjs/lib/flatten.js +0 -41
- package/build/runtime-cjs/lib/index.d.ts +0 -10
- package/build/runtime-cjs/lib/index.js +0 -40
- package/build/runtime-cjs/lib/key.js +0 -41
- package/build/runtime-cjs/lib/log.js +0 -72
- package/build/runtime-cjs/lib/lru.js +0 -73
- package/build/runtime-cjs/lib/pageInfo.js +0 -79
- package/build/runtime-cjs/lib/pagination.js +0 -240
- package/build/runtime-cjs/lib/scalars.js +0 -147
- package/build/runtime-cjs/lib/selection.js +0 -66
- package/build/runtime-cjs/lib/store.d.ts +0 -19
- package/build/runtime-cjs/lib/store.js +0 -81
- package/build/runtime-cjs/lib/types.d.ts +0 -417
- package/build/runtime-cjs/lib/types.js +0 -104
- package/build/runtime-cjs/package.json +0 -1
- package/build/runtime-cjs/public/cache.d.ts +0 -43
- package/build/runtime-cjs/public/cache.js +0 -112
- package/build/runtime-cjs/public/index.d.ts +0 -1
- package/build/runtime-cjs/public/index.js +0 -28
- package/build/runtime-cjs/public/list.d.ts +0 -18
- package/build/runtime-cjs/public/list.js +0 -151
- package/build/runtime-cjs/public/record.d.ts +0 -40
- package/build/runtime-cjs/public/record.js +0 -94
- package/build/runtime-cjs/public/tests/test.d.ts +0 -156
- package/build/runtime-cjs/public/tests/test.js +0 -60
- package/build/runtime-cjs/public/types.d.ts +0 -62
- package/build/runtime-cjs/public/types.js +0 -16
- package/build/runtime-cjs/router/cookies.js +0 -168
- package/build/runtime-cjs/router/jwt.js +0 -168
- package/build/runtime-cjs/router/match.d.ts +0 -39
- package/build/runtime-cjs/router/match.js +0 -158
- package/build/runtime-cjs/router/server.d.ts +0 -24
- package/build/runtime-cjs/router/server.js +0 -112
- package/build/runtime-cjs/router/session.d.ts +0 -22
- package/build/runtime-cjs/router/session.js +0 -97
- package/build/runtime-cjs/router/types.d.ts +0 -26
- package/build/runtime-cjs/router/types.js +0 -16
- package/build/runtime-esm/cache/cache.d.ts +0 -169
- package/build/runtime-esm/cache/constants.d.ts +0 -1
- package/build/runtime-esm/cache/gc.d.ts +0 -10
- package/build/runtime-esm/cache/index.d.ts +0 -3
- package/build/runtime-esm/cache/index.js +0 -5
- package/build/runtime-esm/cache/lists.d.ts +0 -89
- package/build/runtime-esm/cache/staleManager.d.ts +0 -31
- package/build/runtime-esm/cache/storage.d.ts +0 -110
- package/build/runtime-esm/cache/stuff.d.ts +0 -2
- package/build/runtime-esm/cache/subscription.d.ts +0 -52
- package/build/runtime-esm/client/documentStore.d.ts +0 -107
- package/build/runtime-esm/client/index.d.ts +0 -50
- package/build/runtime-esm/client/index.js +0 -130
- package/build/runtime-esm/client/plugins/cache.d.ts +0 -9
- package/build/runtime-esm/client/plugins/cache.js +0 -104
- package/build/runtime-esm/client/plugins/fetch.d.ts +0 -38
- package/build/runtime-esm/client/plugins/fetch.js +0 -184
- package/build/runtime-esm/client/plugins/fetchParams.d.ts +0 -9
- package/build/runtime-esm/client/plugins/fetchParams.js +0 -23
- package/build/runtime-esm/client/plugins/fragment.d.ts +0 -2
- package/build/runtime-esm/client/plugins/fragment.js +0 -53
- package/build/runtime-esm/client/plugins/index.d.ts +0 -9
- package/build/runtime-esm/client/plugins/index.js +0 -12
- package/build/runtime-esm/client/plugins/injectedPlugins.d.ts +0 -4
- package/build/runtime-esm/client/plugins/injectedPlugins.js +0 -5
- package/build/runtime-esm/client/plugins/mutation.d.ts +0 -2
- package/build/runtime-esm/client/plugins/mutation.js +0 -65
- package/build/runtime-esm/client/plugins/optimisticKeys.d.ts +0 -7
- package/build/runtime-esm/client/plugins/optimisticKeys.js +0 -290
- package/build/runtime-esm/client/plugins/query.d.ts +0 -2
- package/build/runtime-esm/client/plugins/query.js +0 -69
- package/build/runtime-esm/client/plugins/subscription.d.ts +0 -20
- package/build/runtime-esm/client/plugins/subscription.js +0 -90
- package/build/runtime-esm/client/plugins/test.d.ts +0 -15
- package/build/runtime-esm/client/plugins/test.js +0 -93
- package/build/runtime-esm/client/plugins/throwOnError.d.ts +0 -8
- package/build/runtime-esm/client/plugins/throwOnError.js +0 -23
- package/build/runtime-esm/client/utils/documentPlugins.d.ts +0 -3
- package/build/runtime-esm/client/utils/documentPlugins.js +0 -33
- package/build/runtime-esm/client/utils/index.d.ts +0 -1
- package/build/runtime-esm/client/utils/index.js +0 -1
- package/build/runtime-esm/generated.d.ts +0 -5
- package/build/runtime-esm/generated.js +0 -0
- package/build/runtime-esm/imports/config.d.ts +0 -3
- package/build/runtime-esm/imports/config.js +0 -4
- package/build/runtime-esm/imports/pluginConfig.d.ts +0 -3
- package/build/runtime-esm/imports/pluginConfig.js +0 -5
- package/build/runtime-esm/index.d.ts +0 -8
- package/build/runtime-esm/index.js +0 -22
- package/build/runtime-esm/lib/config.d.ts +0 -216
- package/build/runtime-esm/lib/config.js +0 -69
- package/build/runtime-esm/lib/constants.d.ts +0 -6
- package/build/runtime-esm/lib/deepEquals.d.ts +0 -1
- package/build/runtime-esm/lib/flatten.d.ts +0 -2
- package/build/runtime-esm/lib/index.d.ts +0 -10
- package/build/runtime-esm/lib/index.js +0 -10
- package/build/runtime-esm/lib/key.d.ts +0 -6
- package/build/runtime-esm/lib/log.d.ts +0 -6
- package/build/runtime-esm/lib/lru.d.ts +0 -52
- package/build/runtime-esm/lib/pageInfo.d.ts +0 -7
- package/build/runtime-esm/lib/pagination.d.ts +0 -27
- package/build/runtime-esm/lib/scalars.d.ts +0 -14
- package/build/runtime-esm/lib/selection.d.ts +0 -2
- package/build/runtime-esm/lib/store.d.ts +0 -19
- package/build/runtime-esm/lib/types.d.ts +0 -417
- package/build/runtime-esm/public/cache.d.ts +0 -43
- package/build/runtime-esm/public/cache.js +0 -88
- package/build/runtime-esm/public/index.d.ts +0 -1
- package/build/runtime-esm/public/index.js +0 -4
- package/build/runtime-esm/public/list.d.ts +0 -18
- package/build/runtime-esm/public/list.js +0 -127
- package/build/runtime-esm/public/record.d.ts +0 -40
- package/build/runtime-esm/public/record.js +0 -70
- package/build/runtime-esm/public/tests/test.d.ts +0 -156
- package/build/runtime-esm/public/tests/test.js +0 -36
- package/build/runtime-esm/public/types.d.ts +0 -62
- package/build/runtime-esm/router/cookies.d.ts +0 -41
- package/build/runtime-esm/router/jwt.d.ts +0 -117
- package/build/runtime-esm/router/match.d.ts +0 -39
- package/build/runtime-esm/router/match.js +0 -131
- package/build/runtime-esm/router/server.d.ts +0 -24
- package/build/runtime-esm/router/server.js +0 -87
- package/build/runtime-esm/router/session.d.ts +0 -22
- package/build/runtime-esm/router/session.js +0 -71
- package/build/runtime-esm/router/types.d.ts +0 -26
- package/build/runtime-esm/router/types.js +0 -0
- package/build/test-cjs/index.js +0 -75254
- package/build/test-cjs/package.json +0 -1
- package/build/test-esm/index.js +0 -75249
- package/build/vite/imports.d.ts +0 -40
- package/build/vite-cjs/index.js +0 -86271
- package/build/vite-cjs/package.json +0 -1
- package/build/vite-esm/index.js +0 -86263
- /package/build/{adapter-esm → adapter}/package.json +0 -0
- /package/build/{cmd-esm → cmd}/package.json +0 -0
- /package/build/{vite → lib}/ast.d.ts +0 -0
- /package/build/{codegen-esm → lib}/package.json +0 -0
- /package/build/{lib-esm → node}/package.json +0 -0
- /package/build/{runtime-esm → oauth}/package.json +0 -0
- /package/build/{runtime-cjs/router → router}/cookies.d.ts +0 -0
- /package/build/{runtime-cjs/router → router}/jwt.d.ts +0 -0
- /package/build/{test-esm → router}/package.json +0 -0
- /package/build/{runtime-esm/public → router}/types.js +0 -0
- /package/build/{runtime-esm → runtime}/cache/constants.js +0 -0
- /package/build/{runtime-esm/lib → runtime}/constants.js +0 -0
- /package/build/{runtime-cjs/lib → runtime}/deepEquals.d.ts +0 -0
- /package/build/{runtime-esm/lib → runtime}/deepEquals.js +0 -0
- /package/build/{runtime-esm/lib → runtime}/flatten.js +0 -0
- /package/build/{runtime-cjs/lib → runtime}/log.d.ts +0 -0
- /package/build/{runtime-cjs/lib → runtime}/lru.d.ts +0 -0
- /package/build/{runtime-esm/lib → runtime}/lru.js +0 -0
- /package/build/{vite-esm → runtime}/package.json +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { GraphQLValue, SubscriptionSelection, SubscriptionSpec } from '../
|
|
2
|
-
import {
|
|
1
|
+
import type { GraphQLValue, ListFilter, SubscriptionSelection, SubscriptionSpec } from '../types.js';
|
|
2
|
+
import type { Cache } from './index.js';
|
|
3
3
|
export type FieldSelection = [
|
|
4
4
|
SubscriptionSpec,
|
|
5
5
|
Required<SubscriptionSelection>['fields'] | undefined
|
|
@@ -11,7 +11,7 @@ export declare class InMemorySubscriptions {
|
|
|
11
11
|
private keyVersions;
|
|
12
12
|
activeFields(parent: string): string[];
|
|
13
13
|
copySubscribers(from: string, to: string): void;
|
|
14
|
-
add({ parent, spec, selection, variables, parentType, }: {
|
|
14
|
+
add({ parent, spec, selection, variables, parentType, masked, }: {
|
|
15
15
|
parent: string;
|
|
16
16
|
parentType?: string;
|
|
17
17
|
spec: SubscriptionSpec;
|
|
@@ -19,12 +19,14 @@ export declare class InMemorySubscriptions {
|
|
|
19
19
|
variables: {
|
|
20
20
|
[key: string]: GraphQLValue;
|
|
21
21
|
};
|
|
22
|
+
masked?: boolean;
|
|
22
23
|
}): void;
|
|
23
|
-
addFieldSubscription({ id, key, selection, type, }: {
|
|
24
|
+
addFieldSubscription({ id, key, selection, type: _type, masked, }: {
|
|
24
25
|
id: string;
|
|
25
26
|
key: string;
|
|
26
27
|
selection: FieldSelection;
|
|
27
28
|
type: string;
|
|
29
|
+
masked?: boolean;
|
|
28
30
|
}): void;
|
|
29
31
|
registerList({ list, id, key, parentType, selection, filters, variables, }: {
|
|
30
32
|
list: Required<Required<SubscriptionSelection>['fields'][string]>['list'];
|
|
@@ -35,18 +37,30 @@ export declare class InMemorySubscriptions {
|
|
|
35
37
|
filters: Required<SubscriptionSelection>['fields'][string]['filters'];
|
|
36
38
|
variables: Record<string, any>;
|
|
37
39
|
}): void;
|
|
38
|
-
addMany({ parent, variables, subscribers, parentType, }: {
|
|
40
|
+
addMany({ parent, variables, subscribers, parentType, masked, }: {
|
|
39
41
|
parent: string;
|
|
40
42
|
variables: {};
|
|
41
43
|
subscribers: FieldSelection[];
|
|
42
44
|
parentType: string;
|
|
45
|
+
masked?: boolean;
|
|
43
46
|
}): void;
|
|
44
47
|
get(id: string, field: string): FieldSelection[];
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
getMaskedParents(id: string, field: string): FieldSelection[];
|
|
49
|
+
getAll(id: string, { includeMaskedParents }?: {
|
|
50
|
+
includeMaskedParents?: boolean;
|
|
51
|
+
}): FieldSelection[];
|
|
52
|
+
remove(id: string, selection: SubscriptionSelection, targets: SubscriptionSpec[], variables: {}, visited?: string[], masked?: boolean): void;
|
|
53
|
+
reset(): Readonly<{
|
|
54
|
+
rootType: string;
|
|
55
|
+
kind?: import("../types.js").ArtifactKinds;
|
|
56
|
+
selection: SubscriptionSelection;
|
|
57
|
+
onMessage: (message: import("../types.js").CacheMessage) => void;
|
|
58
|
+
parentID?: string;
|
|
59
|
+
variables?: () => any;
|
|
60
|
+
}>[];
|
|
48
61
|
private removeSubscribers;
|
|
49
62
|
removeAllSubscribers(id: string, targets?: SubscriptionSpec[]): void;
|
|
50
63
|
get size(): number;
|
|
51
|
-
findSubSelections(parentID: string, selection: SubscriptionSelection, variables: {}, searchTarget: string, selections?: SubscriptionSelection
|
|
64
|
+
findSubSelections(parentID: string, selection: SubscriptionSelection, variables: {}, searchTarget: string, selections?: Array<SubscriptionSelection>): Array<SubscriptionSelection>;
|
|
52
65
|
}
|
|
66
|
+
export declare function filterValue(filter: ListFilter, variables: Record<string, any>): any;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { flatten } from "../
|
|
2
|
-
import { getFieldsForType } from "../
|
|
3
|
-
import { evaluateKey, rootID } from "./stuff";
|
|
1
|
+
import { flatten } from "../flatten.js";
|
|
2
|
+
import { getFieldsForType } from "../selection.js";
|
|
3
|
+
import { evaluateKey, rootID } from "./stuff.js";
|
|
4
4
|
class InMemorySubscriptions {
|
|
5
5
|
cache;
|
|
6
6
|
constructor(cache) {
|
|
@@ -19,10 +19,11 @@ class InMemorySubscriptions {
|
|
|
19
19
|
spec,
|
|
20
20
|
selection,
|
|
21
21
|
variables,
|
|
22
|
-
parentType
|
|
22
|
+
parentType,
|
|
23
|
+
masked = false
|
|
23
24
|
}) {
|
|
24
|
-
const __typename = this.cache._internal_unstable.storage.
|
|
25
|
-
|
|
25
|
+
const __typename = this.cache._internal_unstable.storage.getTypename(parent);
|
|
26
|
+
const targetSelection = getFieldsForType(selection, __typename, false);
|
|
26
27
|
for (const fieldSelection of Object.values(targetSelection || {})) {
|
|
27
28
|
const {
|
|
28
29
|
keyRaw,
|
|
@@ -32,22 +33,20 @@ class InMemorySubscriptions {
|
|
|
32
33
|
filters,
|
|
33
34
|
visible
|
|
34
35
|
} = fieldSelection;
|
|
35
|
-
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
36
|
+
const fieldMasked = masked || !visible;
|
|
38
37
|
const key = evaluateKey(keyRaw, variables);
|
|
39
38
|
let targetSelection2;
|
|
40
39
|
if (innerSelection) {
|
|
41
|
-
|
|
42
|
-
targetSelection2 = getFieldsForType(innerSelection, __typename2, false);
|
|
40
|
+
targetSelection2 = getFieldsForType(innerSelection, __typename, false);
|
|
43
41
|
}
|
|
44
42
|
this.addFieldSubscription({
|
|
45
43
|
id: parent,
|
|
46
44
|
key,
|
|
47
45
|
selection: [spec, targetSelection2],
|
|
48
|
-
type
|
|
46
|
+
type,
|
|
47
|
+
masked: fieldMasked
|
|
49
48
|
});
|
|
50
|
-
if (list) {
|
|
49
|
+
if (list && !fieldMasked) {
|
|
51
50
|
this.registerList({
|
|
52
51
|
list,
|
|
53
52
|
filters,
|
|
@@ -63,7 +62,7 @@ class InMemorySubscriptions {
|
|
|
63
62
|
parent,
|
|
64
63
|
key
|
|
65
64
|
);
|
|
66
|
-
|
|
65
|
+
const children = !Array.isArray(linkedRecord) ? [linkedRecord] : flatten(linkedRecord) || [];
|
|
67
66
|
for (const child of children) {
|
|
68
67
|
if (!child) {
|
|
69
68
|
continue;
|
|
@@ -73,7 +72,8 @@ class InMemorySubscriptions {
|
|
|
73
72
|
spec,
|
|
74
73
|
selection: innerSelection,
|
|
75
74
|
variables,
|
|
76
|
-
parentType: type
|
|
75
|
+
parentType: type,
|
|
76
|
+
masked: fieldMasked
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -83,7 +83,8 @@ class InMemorySubscriptions {
|
|
|
83
83
|
id,
|
|
84
84
|
key,
|
|
85
85
|
selection,
|
|
86
|
-
type
|
|
86
|
+
type: _type,
|
|
87
|
+
masked = false
|
|
87
88
|
}) {
|
|
88
89
|
const spec = selection[0];
|
|
89
90
|
if (!this.subscribers.has(id)) {
|
|
@@ -93,21 +94,22 @@ class InMemorySubscriptions {
|
|
|
93
94
|
if (!subscriber.has(key)) {
|
|
94
95
|
subscriber.set(key, {
|
|
95
96
|
selections: [],
|
|
96
|
-
referenceCounts: /* @__PURE__ */ new Map()
|
|
97
|
+
referenceCounts: /* @__PURE__ */ new Map(),
|
|
98
|
+
maskedParentSelections: [],
|
|
99
|
+
maskedParentReferenceCounts: /* @__PURE__ */ new Map()
|
|
97
100
|
});
|
|
98
101
|
}
|
|
99
102
|
const subscriberField = subscriber.get(key);
|
|
103
|
+
const selections = masked ? subscriberField.maskedParentSelections : subscriberField.selections;
|
|
104
|
+
const referenceCounts = masked ? subscriberField.maskedParentReferenceCounts : subscriberField.referenceCounts;
|
|
100
105
|
if (!this.keyVersions[key]) {
|
|
101
106
|
this.keyVersions[key] = /* @__PURE__ */ new Set();
|
|
102
107
|
}
|
|
103
108
|
this.keyVersions[key].add(key);
|
|
104
|
-
if (!
|
|
105
|
-
|
|
109
|
+
if (!referenceCounts.has(spec.onMessage)) {
|
|
110
|
+
selections.push([spec, selection[1]]);
|
|
106
111
|
}
|
|
107
|
-
|
|
108
|
-
spec.set,
|
|
109
|
-
(subscriberField.referenceCounts.get(spec.set) || 0) + 1
|
|
110
|
-
);
|
|
112
|
+
referenceCounts.set(spec.onMessage, (referenceCounts.get(spec.onMessage) || 0) + 1);
|
|
111
113
|
this.cache._internal_unstable.lifetimes.resetLifetime(id, key);
|
|
112
114
|
}
|
|
113
115
|
registerList({
|
|
@@ -123,14 +125,14 @@ class InMemorySubscriptions {
|
|
|
123
125
|
name: list.name,
|
|
124
126
|
connection: list.connection,
|
|
125
127
|
recordID: id,
|
|
126
|
-
recordType: this.cache._internal_unstable.storage.
|
|
128
|
+
recordType: this.cache._internal_unstable.storage.getTypename(id) || parentType,
|
|
127
129
|
listType: list.type,
|
|
128
130
|
key,
|
|
129
131
|
selection,
|
|
130
|
-
filters: Object.entries(filters || {}).reduce((acc, [key2,
|
|
132
|
+
filters: Object.entries(filters || {}).reduce((acc, [key2, filter]) => {
|
|
131
133
|
return {
|
|
132
134
|
...acc,
|
|
133
|
-
[key2]:
|
|
135
|
+
[key2]: filterValue(filter, variables)
|
|
134
136
|
};
|
|
135
137
|
}, {})
|
|
136
138
|
});
|
|
@@ -140,7 +142,8 @@ class InMemorySubscriptions {
|
|
|
140
142
|
parent,
|
|
141
143
|
variables,
|
|
142
144
|
subscribers,
|
|
143
|
-
parentType
|
|
145
|
+
parentType,
|
|
146
|
+
masked = false
|
|
144
147
|
}) {
|
|
145
148
|
for (const [spec, targetSelection] of subscribers) {
|
|
146
149
|
for (const selection of Object.values(targetSelection ?? {})) {
|
|
@@ -149,17 +152,20 @@ class InMemorySubscriptions {
|
|
|
149
152
|
keyRaw,
|
|
150
153
|
selection: innerSelection,
|
|
151
154
|
list,
|
|
152
|
-
filters
|
|
155
|
+
filters,
|
|
156
|
+
visible
|
|
153
157
|
} = selection;
|
|
158
|
+
const fieldMasked = masked || !visible;
|
|
154
159
|
const key = evaluateKey(keyRaw, variables);
|
|
155
160
|
const fieldSelection = innerSelection ? getFieldsForType(innerSelection, parentType, false) : void 0;
|
|
156
161
|
this.addFieldSubscription({
|
|
157
162
|
id: parent,
|
|
158
163
|
key,
|
|
159
164
|
selection: [spec, fieldSelection],
|
|
160
|
-
type: linkedType
|
|
165
|
+
type: linkedType,
|
|
166
|
+
masked: fieldMasked
|
|
161
167
|
});
|
|
162
|
-
if (list) {
|
|
168
|
+
if (list && !fieldMasked) {
|
|
163
169
|
this.registerList({
|
|
164
170
|
list,
|
|
165
171
|
filters,
|
|
@@ -178,16 +184,14 @@ class InMemorySubscriptions {
|
|
|
178
184
|
if (!linkedRecord) {
|
|
179
185
|
continue;
|
|
180
186
|
}
|
|
181
|
-
const __typename = this.cache._internal_unstable.storage.
|
|
182
|
-
|
|
183
|
-
"__typename"
|
|
184
|
-
).value;
|
|
185
|
-
let targetSelection2 = getFieldsForType(childSelection, __typename, false);
|
|
187
|
+
const __typename = this.cache._internal_unstable.storage.getTypename(linkedRecord);
|
|
188
|
+
const targetSelection2 = getFieldsForType(childSelection, __typename, false);
|
|
186
189
|
this.addMany({
|
|
187
190
|
parent: linkedRecord,
|
|
188
191
|
variables,
|
|
189
192
|
subscribers: subscribers.map(([sub]) => [sub, targetSelection2]),
|
|
190
|
-
parentType: linkedType
|
|
193
|
+
parentType: linkedType,
|
|
194
|
+
masked: fieldMasked
|
|
191
195
|
});
|
|
192
196
|
}
|
|
193
197
|
}
|
|
@@ -197,19 +201,23 @@ class InMemorySubscriptions {
|
|
|
197
201
|
get(id, field) {
|
|
198
202
|
return this.subscribers.get(id)?.get(field)?.selections || [];
|
|
199
203
|
}
|
|
200
|
-
|
|
204
|
+
getMaskedParents(id, field) {
|
|
205
|
+
return this.subscribers.get(id)?.get(field)?.maskedParentSelections || [];
|
|
206
|
+
}
|
|
207
|
+
getAll(id, { includeMaskedParents = false } = {}) {
|
|
201
208
|
return [...this.subscribers.get(id)?.values() || []].flatMap(
|
|
202
|
-
(fieldSub) => fieldSub.selections
|
|
209
|
+
(fieldSub) => includeMaskedParents ? fieldSub.selections.concat(fieldSub.maskedParentSelections) : fieldSub.selections
|
|
203
210
|
);
|
|
204
211
|
}
|
|
205
|
-
remove(id, selection, targets, variables, visited = []) {
|
|
212
|
+
remove(id, selection, targets, variables, visited = [], masked = false) {
|
|
206
213
|
visited.push(id);
|
|
207
214
|
const linkedIDs = [];
|
|
208
|
-
const __typename = this.cache._internal_unstable.storage.
|
|
209
|
-
|
|
215
|
+
const __typename = this.cache._internal_unstable.storage.getTypename(id);
|
|
216
|
+
const targetSelection = getFieldsForType(selection, __typename, false);
|
|
210
217
|
for (const fieldSelection of Object.values(targetSelection || {})) {
|
|
211
218
|
const key = evaluateKey(fieldSelection.keyRaw, variables);
|
|
212
|
-
|
|
219
|
+
const fieldMasked = masked || !fieldSelection.visible;
|
|
220
|
+
this.removeSubscribers(id, key, targets, fieldMasked);
|
|
213
221
|
if (!fieldSelection.selection) {
|
|
214
222
|
continue;
|
|
215
223
|
}
|
|
@@ -217,12 +225,12 @@ class InMemorySubscriptions {
|
|
|
217
225
|
const links = !Array.isArray(previousValue) ? [previousValue] : flatten(previousValue);
|
|
218
226
|
for (const link of links) {
|
|
219
227
|
if (link !== null) {
|
|
220
|
-
linkedIDs.push([link, fieldSelection.selection || {}]);
|
|
228
|
+
linkedIDs.push([link, fieldSelection.selection || {}, fieldMasked]);
|
|
221
229
|
}
|
|
222
230
|
}
|
|
223
231
|
}
|
|
224
|
-
for (const [linkedRecordID, linkFields] of linkedIDs) {
|
|
225
|
-
this.remove(linkedRecordID, linkFields, targets, visited);
|
|
232
|
+
for (const [linkedRecordID, linkFields, linkMasked] of linkedIDs) {
|
|
233
|
+
this.remove(linkedRecordID, linkFields, targets, variables, visited, linkMasked);
|
|
226
234
|
}
|
|
227
235
|
}
|
|
228
236
|
reset() {
|
|
@@ -231,36 +239,51 @@ class InMemorySubscriptions {
|
|
|
231
239
|
this.subscribers.delete(id);
|
|
232
240
|
}
|
|
233
241
|
const subscriptionSpecs = subscribers.flatMap(
|
|
234
|
-
([_id, fields]) => [...fields.values()].flatMap(
|
|
242
|
+
([_id, fields]) => [...fields.values()].flatMap(
|
|
243
|
+
(field) => field.selections.concat(field.maskedParentSelections).map(([spec]) => spec)
|
|
244
|
+
)
|
|
235
245
|
);
|
|
236
246
|
return subscriptionSpecs;
|
|
237
247
|
}
|
|
238
|
-
removeSubscribers(id, fieldName, specs) {
|
|
239
|
-
|
|
248
|
+
removeSubscribers(id, fieldName, specs, preferMasked = false) {
|
|
249
|
+
const targets = [];
|
|
250
|
+
const maskedParentTargets = [];
|
|
240
251
|
const subscriber = this.subscribers.get(id);
|
|
241
252
|
if (!subscriber) {
|
|
242
253
|
return;
|
|
243
254
|
}
|
|
244
255
|
const subscriberField = subscriber.get(fieldName);
|
|
256
|
+
if (!subscriberField) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
245
259
|
for (const spec of specs) {
|
|
246
|
-
const
|
|
247
|
-
|
|
260
|
+
const ordered = preferMasked ? [
|
|
261
|
+
[subscriberField.maskedParentReferenceCounts, maskedParentTargets],
|
|
262
|
+
[subscriberField.referenceCounts, targets]
|
|
263
|
+
] : [
|
|
264
|
+
[subscriberField.referenceCounts, targets],
|
|
265
|
+
[subscriberField.maskedParentReferenceCounts, maskedParentTargets]
|
|
266
|
+
];
|
|
267
|
+
const match = ordered.find(([counts2]) => counts2.has(spec.onMessage));
|
|
268
|
+
if (!match) {
|
|
248
269
|
continue;
|
|
249
270
|
}
|
|
250
|
-
const
|
|
251
|
-
counts.
|
|
271
|
+
const [counts, removed] = match;
|
|
272
|
+
const newVal = (counts.get(spec.onMessage) || 0) - 1;
|
|
273
|
+
counts.set(spec.onMessage, newVal);
|
|
252
274
|
if (newVal <= 0) {
|
|
253
|
-
|
|
254
|
-
counts.delete(spec.
|
|
255
|
-
}
|
|
256
|
-
if (counts.size === 0) {
|
|
257
|
-
subscriber.delete(fieldName);
|
|
275
|
+
removed.push(spec.onMessage);
|
|
276
|
+
counts.delete(spec.onMessage);
|
|
258
277
|
}
|
|
259
278
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
279
|
+
subscriberField.selections = subscriberField.selections.filter(
|
|
280
|
+
([{ onMessage }]) => !targets.includes(onMessage)
|
|
281
|
+
);
|
|
282
|
+
subscriberField.maskedParentSelections = subscriberField.maskedParentSelections.filter(
|
|
283
|
+
([{ onMessage }]) => !maskedParentTargets.includes(onMessage)
|
|
284
|
+
);
|
|
285
|
+
if (subscriberField.referenceCounts.size === 0 && subscriberField.maskedParentReferenceCounts.size === 0) {
|
|
286
|
+
subscriber.delete(fieldName);
|
|
264
287
|
}
|
|
265
288
|
if (subscriber.size === 0) {
|
|
266
289
|
this.subscribers.delete(id);
|
|
@@ -269,7 +292,7 @@ class InMemorySubscriptions {
|
|
|
269
292
|
removeAllSubscribers(id, targets) {
|
|
270
293
|
if (!targets) {
|
|
271
294
|
targets = [...this.subscribers.get(id)?.values() || []].flatMap(
|
|
272
|
-
(
|
|
295
|
+
(fieldSub) => fieldSub.selections.concat(fieldSub.maskedParentSelections).flatMap((sel) => sel[0])
|
|
273
296
|
);
|
|
274
297
|
}
|
|
275
298
|
for (const target of targets) {
|
|
@@ -294,8 +317,8 @@ class InMemorySubscriptions {
|
|
|
294
317
|
return size;
|
|
295
318
|
}
|
|
296
319
|
findSubSelections(parentID, selection, variables, searchTarget, selections = []) {
|
|
297
|
-
const __typename = this.cache._internal_unstable.storage.
|
|
298
|
-
|
|
320
|
+
const __typename = this.cache._internal_unstable.storage.getTypename(parentID);
|
|
321
|
+
const targetSelection = getFieldsForType(selection, __typename, false);
|
|
299
322
|
for (const fieldSelection of Object.values(targetSelection || {})) {
|
|
300
323
|
if (!fieldSelection.selection) {
|
|
301
324
|
continue;
|
|
@@ -320,6 +343,21 @@ class InMemorySubscriptions {
|
|
|
320
343
|
return selections;
|
|
321
344
|
}
|
|
322
345
|
}
|
|
346
|
+
function filterValue(filter, variables) {
|
|
347
|
+
if (filter.kind === "Variable") {
|
|
348
|
+
return variables[filter.value];
|
|
349
|
+
}
|
|
350
|
+
if (filter.kind === "Object") {
|
|
351
|
+
return Object.fromEntries(
|
|
352
|
+
Object.entries(filter.value).map(([key, value]) => [key, filterValue(value, variables)])
|
|
353
|
+
);
|
|
354
|
+
}
|
|
355
|
+
if (filter.kind === "List") {
|
|
356
|
+
return filter.value.map((value) => filterValue(value, variables));
|
|
357
|
+
}
|
|
358
|
+
return filter.value;
|
|
359
|
+
}
|
|
323
360
|
export {
|
|
324
|
-
InMemorySubscriptions
|
|
361
|
+
InMemorySubscriptions,
|
|
362
|
+
filterValue
|
|
325
363
|
};
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
import type { Cache } from '
|
|
3
|
-
import type {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
export { fetch, mutation, query, subscription } from './plugins';
|
|
1
|
+
import type { ConfigFile } from 'houdini';
|
|
2
|
+
import type { Cache } from './cache/index.js';
|
|
3
|
+
import type { ClientHooks, ClientPlugin } from './documentStore.js';
|
|
4
|
+
import { DocumentStore } from './documentStore.js';
|
|
5
|
+
import type { DocumentArtifact, GraphQLVariables, GraphQLObject, NestedList } from './types.js';
|
|
6
|
+
export { DocumentStore } from './documentStore.js';
|
|
7
|
+
export type { ClientPlugin, SendParams } from './documentStore.js';
|
|
9
8
|
export type HoudiniClientConstructorArgs = {
|
|
9
|
+
config: () => ConfigFile;
|
|
10
10
|
url?: string;
|
|
11
|
-
fetchParams?: FetchParamFn;
|
|
12
11
|
plugins?: NestedList<ClientPlugin>;
|
|
13
12
|
pipeline?: NestedList<ClientPlugin>;
|
|
14
|
-
throwOnError?: ThrowOnErrorParams;
|
|
15
13
|
};
|
|
16
|
-
export type ObserveParams<_Data extends GraphQLObject, _Artifact extends DocumentArtifact = DocumentArtifact, _Input extends GraphQLVariables = GraphQLVariables> = {
|
|
14
|
+
export type ObserveParams<_Data extends GraphQLObject, _Artifact extends DocumentArtifact = DocumentArtifact, _Input extends GraphQLVariables | undefined = GraphQLVariables> = {
|
|
17
15
|
artifact: _Artifact;
|
|
18
16
|
enableCache?: boolean;
|
|
19
17
|
cache?: Cache;
|
|
@@ -23,28 +21,23 @@ export type ObserveParams<_Data extends GraphQLObject, _Artifact extends Documen
|
|
|
23
21
|
};
|
|
24
22
|
export declare class HoudiniClient {
|
|
25
23
|
url: string;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
private extraPlugins;
|
|
24
|
+
protected cache: Cache | null;
|
|
25
|
+
protected plugins: Array<ClientPlugin>;
|
|
26
|
+
protected config: ConfigFile;
|
|
27
|
+
componentCache: Record<string, any>;
|
|
28
|
+
constructor({ url, plugins, pipeline, config }?: HoudiniClientConstructorArgs);
|
|
32
29
|
proxies: Record<string, (operation: {
|
|
33
30
|
query: string;
|
|
34
31
|
variables: any;
|
|
35
32
|
operationName: string;
|
|
36
33
|
session: App.Session | null | undefined;
|
|
37
34
|
}) => Promise<any>>;
|
|
38
|
-
componentCache: Record<string, any>;
|
|
39
|
-
setCache(cache: Cache): void;
|
|
40
|
-
constructor({ url, fetchParams, plugins, pipeline, throwOnError, }?: HoudiniClientConstructorArgs);
|
|
41
|
-
get plugins(): ClientPlugin[];
|
|
42
|
-
observe<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ enableCache, fetching, ...rest }: ObserveParams<_Data, DocumentArtifact, _Input>): DocumentStore<_Data, _Input>;
|
|
43
35
|
registerProxy(url: string, handler: (operation: {
|
|
44
36
|
query: string;
|
|
45
37
|
variables: any;
|
|
46
38
|
operationName: string;
|
|
47
39
|
session: App.Session | null | undefined;
|
|
48
40
|
}) => Promise<any>): void;
|
|
41
|
+
observe<_Data extends GraphQLObject, _Input extends GraphQLVariables | undefined>({ enableCache, fetching, ...rest }: ObserveParams<_Data, DocumentArtifact, _Input>): DocumentStore<_Data, _Input>;
|
|
49
42
|
}
|
|
50
43
|
export declare function createPluginHooks(plugins: ClientPlugin[]): ClientHooks[];
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { resolveApiEndpoint } from "./config.js";
|
|
2
|
+
import { DocumentStore } from "./documentStore.js";
|
|
3
|
+
import { DocumentStore as DocumentStore2 } from "./documentStore.js";
|
|
4
|
+
class HoudiniClient {
|
|
5
|
+
// the URL of the api
|
|
6
|
+
url;
|
|
7
|
+
cache = null;
|
|
8
|
+
plugins = [];
|
|
9
|
+
config;
|
|
10
|
+
// this is modified by page entries when they load in order to register the components source
|
|
11
|
+
componentCache = {};
|
|
12
|
+
constructor({ url, plugins, pipeline, config } = {
|
|
13
|
+
config: () => ({})
|
|
14
|
+
}) {
|
|
15
|
+
if (plugins && pipeline) {
|
|
16
|
+
throw new Error(
|
|
17
|
+
"A client cannot be given a pipeline and a list of plugins at the same time."
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
const serverPort = globalThis.process?.env?.HOUDINI_PORT ?? "5173";
|
|
21
|
+
this.url = url ?? (globalThis.window ? "" : `http://localhost:${serverPort}`) + resolveApiEndpoint(config());
|
|
22
|
+
this.plugins = flatten(plugins);
|
|
23
|
+
this.config = config();
|
|
24
|
+
}
|
|
25
|
+
proxies = {};
|
|
26
|
+
registerProxy(url, handler) {
|
|
27
|
+
this.proxies[url] = handler;
|
|
28
|
+
}
|
|
29
|
+
observe({
|
|
30
|
+
enableCache = true,
|
|
31
|
+
fetching = false,
|
|
32
|
+
...rest
|
|
33
|
+
}) {
|
|
34
|
+
return new DocumentStore({
|
|
35
|
+
client: this,
|
|
36
|
+
plugins: createPluginHooks(this.plugins),
|
|
37
|
+
fetching,
|
|
38
|
+
enableCache,
|
|
39
|
+
config: this.config,
|
|
40
|
+
...rest
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function createPluginHooks(plugins) {
|
|
45
|
+
return plugins.reduce((hooks, plugin) => {
|
|
46
|
+
if (typeof plugin !== "function") {
|
|
47
|
+
throw new Error("Encountered client plugin that's not a function");
|
|
48
|
+
}
|
|
49
|
+
const result = plugin();
|
|
50
|
+
if (!result) {
|
|
51
|
+
return hooks;
|
|
52
|
+
}
|
|
53
|
+
if (!Array.isArray(result)) {
|
|
54
|
+
return hooks.concat(result);
|
|
55
|
+
}
|
|
56
|
+
for (const value of result) {
|
|
57
|
+
if (!value) {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (typeof value === "function") {
|
|
61
|
+
return hooks.concat(createPluginHooks([value]));
|
|
62
|
+
}
|
|
63
|
+
hooks.push(value);
|
|
64
|
+
}
|
|
65
|
+
return hooks;
|
|
66
|
+
}, []);
|
|
67
|
+
}
|
|
68
|
+
function flatten(source) {
|
|
69
|
+
if (!source) {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
return source.reduce((acc, element) => {
|
|
73
|
+
if (!element) {
|
|
74
|
+
return acc;
|
|
75
|
+
}
|
|
76
|
+
if (Array.isArray(element)) {
|
|
77
|
+
return acc.concat(flatten(element));
|
|
78
|
+
}
|
|
79
|
+
return acc.concat(element);
|
|
80
|
+
}, []);
|
|
81
|
+
}
|
|
82
|
+
export {
|
|
83
|
+
DocumentStore2 as DocumentStore,
|
|
84
|
+
HoudiniClient,
|
|
85
|
+
createPluginHooks
|
|
86
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
function isFile(value) {
|
|
2
|
+
if (typeof Blob !== "undefined" && value instanceof Blob) {
|
|
3
|
+
return true;
|
|
4
|
+
}
|
|
5
|
+
if (typeof File !== "undefined" && value instanceof File) {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
function decodeScalar(value) {
|
|
11
|
+
try {
|
|
12
|
+
return JSON.parse(value);
|
|
13
|
+
} catch {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function unmarshalValue(value, unmarshal) {
|
|
18
|
+
if (value === null || value === void 0) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
if (Array.isArray(value)) {
|
|
22
|
+
return value.map((entry) => unmarshalValue(entry, unmarshal));
|
|
23
|
+
}
|
|
24
|
+
const decoded = typeof value === "string" ? decodeScalar(value) : value;
|
|
25
|
+
return unmarshal ? unmarshal(decoded) : decoded;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
decodeScalar,
|
|
29
|
+
isFile,
|
|
30
|
+
unmarshalValue
|
|
31
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ConfigFile } from 'houdini';
|
|
2
|
+
export declare const DEFAULT_AUTH_URL = "/_auth";
|
|
3
|
+
export declare function setAuthUrl(url: string | undefined | null): void;
|
|
4
|
+
export declare function getAuthUrl(): string;
|
|
5
|
+
export declare const DEFAULT_API_ENDPOINT = "/_api";
|
|
6
|
+
export declare function resolveApiEndpoint(config: ConfigFile & {
|
|
7
|
+
apiURL?: string;
|
|
8
|
+
}): string;
|
|
9
|
+
export declare const HOUDINI_SESSION_EVENT = "_houdini_session_";
|
|
10
|
+
export type HoudiniSessionEventDetail = {
|
|
11
|
+
session: App.Session;
|
|
12
|
+
merge: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare function getMockConfig(): ConfigFile | null;
|
|
15
|
+
export declare function setMockConfig(config: ConfigFile | null): void;
|
|
16
|
+
export declare function defaultConfigValues(file: ConfigFile): ConfigFile;
|
|
17
|
+
export declare function keyFieldsForType(configFile: ConfigFile, type: string): string[];
|
|
18
|
+
export declare function entityRefetchVariables(configFile: ConfigFile, targetType: string | undefined | null, state: Record<string, any> | null | undefined): Record<string, any>;
|
|
19
|
+
export declare function computeID(configFile: ConfigFile, type: string, data: any): string;
|
|
20
|
+
export declare function getCurrentConfig(): ConfigFile;
|