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
|
@@ -4,18 +4,18 @@
|
|
|
4
4
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
5
5
|
* MIT Licensed
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const __toString = Object.prototype.toString;
|
|
8
|
+
const fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
|
|
9
9
|
function parse(str, options) {
|
|
10
10
|
if (typeof str !== "string") {
|
|
11
11
|
throw new TypeError("argument str must be a string");
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const obj = {};
|
|
14
|
+
const opt = options || {};
|
|
15
|
+
const dec = opt.decode || decode;
|
|
16
16
|
let index = 0;
|
|
17
17
|
while (index < str.length) {
|
|
18
|
-
|
|
18
|
+
const eqIdx = str.indexOf("=", index);
|
|
19
19
|
if (eqIdx === -1) {
|
|
20
20
|
break;
|
|
21
21
|
}
|
|
@@ -26,7 +26,7 @@ function parse(str, options) {
|
|
|
26
26
|
index = str.lastIndexOf(";", eqIdx - 1) + 1;
|
|
27
27
|
continue;
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
const key = str.slice(index, eqIdx).trim();
|
|
30
30
|
if (void 0 === obj[key]) {
|
|
31
31
|
let val = str.slice(eqIdx + 1, endIdx).trim();
|
|
32
32
|
if (val.charCodeAt(0) === 34) {
|
|
@@ -39,44 +39,44 @@ function parse(str, options) {
|
|
|
39
39
|
return obj;
|
|
40
40
|
}
|
|
41
41
|
function serialize(name, val, options) {
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
const opt = options || {};
|
|
43
|
+
const enc = opt.encode || encode;
|
|
44
44
|
if (typeof enc !== "function") {
|
|
45
45
|
throw new TypeError("option encode is invalid");
|
|
46
46
|
}
|
|
47
47
|
if (!fieldContentRegExp.test(name)) {
|
|
48
48
|
throw new TypeError("argument name is invalid");
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
const value = enc(val);
|
|
51
51
|
if (value && !fieldContentRegExp.test(value)) {
|
|
52
52
|
throw new TypeError("argument val is invalid");
|
|
53
53
|
}
|
|
54
|
-
let str = name
|
|
54
|
+
let str = `${name}=${value}`;
|
|
55
55
|
if (opt.maxAge) {
|
|
56
|
-
|
|
57
|
-
if (Number.isNaN(maxAge) || !isFinite(maxAge)) {
|
|
56
|
+
const maxAge = opt.maxAge - 0;
|
|
57
|
+
if (Number.isNaN(maxAge) || !Number.isFinite(maxAge)) {
|
|
58
58
|
throw new TypeError("option maxAge is invalid");
|
|
59
59
|
}
|
|
60
|
-
str +=
|
|
60
|
+
str += `; Max-Age=${Math.floor(maxAge)}`;
|
|
61
61
|
}
|
|
62
62
|
if (opt.domain) {
|
|
63
63
|
if (!fieldContentRegExp.test(opt.domain)) {
|
|
64
64
|
throw new TypeError("option domain is invalid");
|
|
65
65
|
}
|
|
66
|
-
str +=
|
|
66
|
+
str += `; Domain=${opt.domain}`;
|
|
67
67
|
}
|
|
68
68
|
if (opt.path) {
|
|
69
69
|
if (!fieldContentRegExp.test(opt.path)) {
|
|
70
70
|
throw new TypeError("option path is invalid");
|
|
71
71
|
}
|
|
72
|
-
str +=
|
|
72
|
+
str += `; Path=${opt.path}`;
|
|
73
73
|
}
|
|
74
74
|
if (opt.expires) {
|
|
75
|
-
|
|
75
|
+
const expires = opt.expires;
|
|
76
76
|
if (!isDate(expires) || Number.isNaN(expires.valueOf())) {
|
|
77
77
|
throw new TypeError("option expires is invalid");
|
|
78
78
|
}
|
|
79
|
-
str +=
|
|
79
|
+
str += `; Expires=${expires.toUTCString()}`;
|
|
80
80
|
}
|
|
81
81
|
if (opt.httpOnly) {
|
|
82
82
|
str += "; HttpOnly";
|
|
@@ -85,7 +85,7 @@ function serialize(name, val, options) {
|
|
|
85
85
|
str += "; Secure";
|
|
86
86
|
}
|
|
87
87
|
if (opt.priority) {
|
|
88
|
-
|
|
88
|
+
const priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
|
|
89
89
|
switch (priority) {
|
|
90
90
|
case "low":
|
|
91
91
|
str += "; Priority=Low";
|
|
@@ -101,7 +101,7 @@ function serialize(name, val, options) {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
if (opt.sameSite) {
|
|
104
|
-
|
|
104
|
+
const sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
|
|
105
105
|
switch (sameSite) {
|
|
106
106
|
case true:
|
|
107
107
|
str += "; SameSite=Strict";
|
|
@@ -133,7 +133,7 @@ function isDate(val) {
|
|
|
133
133
|
function tryDecode(str, decode2) {
|
|
134
134
|
try {
|
|
135
135
|
return decode2(str);
|
|
136
|
-
} catch (
|
|
136
|
+
} catch (_e) {
|
|
137
137
|
return str;
|
|
138
138
|
}
|
|
139
139
|
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
function base64UrlParse(s) {
|
|
2
2
|
return new Uint8Array(
|
|
3
|
-
|
|
4
|
-
Array.prototype.map.call(
|
|
5
|
-
atob(s.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "")),
|
|
3
|
+
Array.from(atob(s.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, ""))).map(
|
|
6
4
|
(c) => c.charCodeAt(0)
|
|
7
5
|
)
|
|
8
6
|
);
|
|
9
7
|
}
|
|
10
8
|
function base64UrlStringify(a) {
|
|
11
|
-
return btoa(String.fromCharCode.apply(0, a)).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
9
|
+
return btoa(String.fromCharCode.apply(0, Array.from(a))).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
12
10
|
}
|
|
13
11
|
const algorithms = {
|
|
14
12
|
ES256: { name: "ECDSA", namedCurve: "P-256", hash: { name: "SHA-256" } },
|
|
@@ -44,7 +42,7 @@ function _decodePayload(raw) {
|
|
|
44
42
|
raw += "=";
|
|
45
43
|
break;
|
|
46
44
|
default:
|
|
47
|
-
throw new Error(
|
|
45
|
+
throw new Error(`Illegal base64url string!${raw}`);
|
|
48
46
|
}
|
|
49
47
|
try {
|
|
50
48
|
return JSON.parse(decodeURIComponent(escape(atob(raw))));
|
|
@@ -79,7 +77,11 @@ async function encode(payload, secret, options = { algorithm: "HS256", header: {
|
|
|
79
77
|
);
|
|
80
78
|
} else keyData = _utf8ToUint8Array(secret);
|
|
81
79
|
const key = await crypto.subtle.importKey(keyFormat, keyData, algorithm, false, ["sign"]);
|
|
82
|
-
const signature = await crypto.subtle.sign(
|
|
80
|
+
const signature = await crypto.subtle.sign(
|
|
81
|
+
algorithm,
|
|
82
|
+
key,
|
|
83
|
+
_utf8ToUint8Array(partialToken)
|
|
84
|
+
);
|
|
83
85
|
return `${partialToken}.${base64UrlStringify(new Uint8Array(signature))}`;
|
|
84
86
|
}
|
|
85
87
|
async function verify(token, secret, options = { algorithm: "HS256", throwError: false }) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { Config } from '../lib/config.js';
|
|
2
|
+
import type { ProjectManifest, PageManifest, QueryManifest } from '../lib/types.js';
|
|
3
3
|
export type { ProjectManifest, PageManifest, QueryManifest };
|
|
4
4
|
/**
|
|
5
5
|
* Walk down the routes directory and build a normalized description of the project's
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import * as t from "@babel/types";
|
|
2
|
+
import * as graphql from "graphql";
|
|
3
|
+
import * as fs from "../lib/fs.js";
|
|
4
|
+
import { unwrapType } from "../lib/graphql.js";
|
|
5
|
+
import { parseJS } from "../lib/parse.js";
|
|
6
|
+
import * as path from "../lib/path.js";
|
|
7
|
+
import {
|
|
8
|
+
read_layoutQuery,
|
|
9
|
+
read_layoutView,
|
|
10
|
+
read_pageView,
|
|
11
|
+
read_pageQuery,
|
|
12
|
+
page_id
|
|
13
|
+
} from "./conventions.js";
|
|
14
|
+
import { parse_page_pattern } from "./match.js";
|
|
15
|
+
async function load_manifest(args) {
|
|
16
|
+
const manifest = await walk_routes({
|
|
17
|
+
config: args.config,
|
|
18
|
+
url: "/",
|
|
19
|
+
filepath: args.config.routes_dir,
|
|
20
|
+
project: {
|
|
21
|
+
component_fields: {},
|
|
22
|
+
pages: {},
|
|
23
|
+
layouts: {},
|
|
24
|
+
page_queries: {},
|
|
25
|
+
layout_queries: {},
|
|
26
|
+
artifacts: [],
|
|
27
|
+
local_schema: false,
|
|
28
|
+
local_yoga: false
|
|
29
|
+
},
|
|
30
|
+
queries: [],
|
|
31
|
+
layouts: [],
|
|
32
|
+
variables: {}
|
|
33
|
+
});
|
|
34
|
+
if (args.includeArtifacts) {
|
|
35
|
+
try {
|
|
36
|
+
for (const artifactPath of await fs.readdir(args.config.artifact_dir)) {
|
|
37
|
+
if (!artifactPath.endsWith(".js") || artifactPath === "index.js") {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
manifest.artifacts.push(artifactPath.substring(0, artifactPath.length - 3));
|
|
41
|
+
}
|
|
42
|
+
} catch {
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
await fs.stat(args.config.localApiDir);
|
|
47
|
+
for (const child of await fs.readdir(args.config.localApiDir, {
|
|
48
|
+
withFileTypes: true
|
|
49
|
+
})) {
|
|
50
|
+
const name = child.isDirectory() ? child.name : path.parse(child.name).name;
|
|
51
|
+
if (name === "+schema") {
|
|
52
|
+
manifest.local_schema = true;
|
|
53
|
+
} else if (name === "+yoga") {
|
|
54
|
+
manifest.local_yoga = true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
} catch {
|
|
58
|
+
}
|
|
59
|
+
return manifest;
|
|
60
|
+
}
|
|
61
|
+
async function walk_routes(args) {
|
|
62
|
+
const directory_contents = await fs.readdir(args.filepath, {
|
|
63
|
+
withFileTypes: true
|
|
64
|
+
});
|
|
65
|
+
const variables = { ...args.variables };
|
|
66
|
+
let newLayouts = args.layouts;
|
|
67
|
+
let newLayoutQueries = args.queries;
|
|
68
|
+
let layout = null;
|
|
69
|
+
let layoutQuery = null;
|
|
70
|
+
let pageQuery = null;
|
|
71
|
+
const [
|
|
72
|
+
[layoutQueryPath, layoutQueryContents],
|
|
73
|
+
[layoutViewPath, layoutViewContents],
|
|
74
|
+
[pageQueryPath, pageQueryContents],
|
|
75
|
+
[pageViewPath, pageViewContents]
|
|
76
|
+
] = await Promise.all([
|
|
77
|
+
read_layoutQuery(args.filepath),
|
|
78
|
+
read_layoutView(args.filepath),
|
|
79
|
+
read_pageQuery(args.filepath),
|
|
80
|
+
read_pageView(args.filepath)
|
|
81
|
+
]);
|
|
82
|
+
if (layoutQueryContents) {
|
|
83
|
+
layoutQuery = await add_query({
|
|
84
|
+
path: layoutQueryPath,
|
|
85
|
+
config: args.config,
|
|
86
|
+
url: args.url,
|
|
87
|
+
project: args.project,
|
|
88
|
+
type: "layout",
|
|
89
|
+
contents: layoutQueryContents,
|
|
90
|
+
variables
|
|
91
|
+
});
|
|
92
|
+
newLayoutQueries = [...args.queries, layoutQuery.name];
|
|
93
|
+
}
|
|
94
|
+
if (layoutViewContents) {
|
|
95
|
+
layout = await add_view({
|
|
96
|
+
url: args.url,
|
|
97
|
+
path: layoutViewPath,
|
|
98
|
+
project: args.project,
|
|
99
|
+
type: "layout",
|
|
100
|
+
contents: layoutViewContents,
|
|
101
|
+
layouts: args.layouts,
|
|
102
|
+
queries: newLayoutQueries,
|
|
103
|
+
config: args.config,
|
|
104
|
+
variables
|
|
105
|
+
});
|
|
106
|
+
newLayouts = [...args.layouts, page_id(layout.url)];
|
|
107
|
+
}
|
|
108
|
+
if (pageQueryContents) {
|
|
109
|
+
pageQuery = await add_query({
|
|
110
|
+
path: pageQueryPath,
|
|
111
|
+
config: args.config,
|
|
112
|
+
url: args.url,
|
|
113
|
+
project: args.project,
|
|
114
|
+
type: "page",
|
|
115
|
+
contents: pageQueryContents,
|
|
116
|
+
variables
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
if (pageViewContents) {
|
|
120
|
+
await add_view({
|
|
121
|
+
path: pageViewPath,
|
|
122
|
+
url: args.url.substring(0, args.url.length - 1) || "/",
|
|
123
|
+
project: args.project,
|
|
124
|
+
type: "page",
|
|
125
|
+
contents: pageViewContents,
|
|
126
|
+
layouts: newLayouts,
|
|
127
|
+
queries: pageQuery ? [...newLayoutQueries, pageQuery.name] : newLayoutQueries,
|
|
128
|
+
config: args.config,
|
|
129
|
+
variables
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
await Promise.all(
|
|
133
|
+
directory_contents.map((dir) => {
|
|
134
|
+
if (!dir.isDirectory()) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
return walk_routes({
|
|
138
|
+
...args,
|
|
139
|
+
filepath: path.join(args.filepath, dir.name),
|
|
140
|
+
url: `${args.url}${dir.name}/`,
|
|
141
|
+
queries: newLayoutQueries,
|
|
142
|
+
layouts: newLayouts,
|
|
143
|
+
variables
|
|
144
|
+
});
|
|
145
|
+
})
|
|
146
|
+
);
|
|
147
|
+
return args.project;
|
|
148
|
+
}
|
|
149
|
+
async function add_view(args) {
|
|
150
|
+
const target = args.type === "page" ? args.project.pages : args.project.layouts;
|
|
151
|
+
const queries = await extractQueries(args.contents);
|
|
152
|
+
const missing_queries = queries.filter((query) => !args.queries.includes(query));
|
|
153
|
+
if (missing_queries.length > 0) {
|
|
154
|
+
throw {
|
|
155
|
+
message: `Unknown queries in ${args.path}: ${missing_queries.join(", ")}`
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
const id = page_id(args.url);
|
|
159
|
+
target[id] = {
|
|
160
|
+
id,
|
|
161
|
+
queries,
|
|
162
|
+
url: args.url,
|
|
163
|
+
layouts: args.layouts,
|
|
164
|
+
path: path.relative(args.config.root_dir, args.path),
|
|
165
|
+
query_options: args.queries,
|
|
166
|
+
params: Object.fromEntries(
|
|
167
|
+
parse_page_pattern(args.url).params.map((param) => [
|
|
168
|
+
param.name,
|
|
169
|
+
args.variables[param.name] ?? null
|
|
170
|
+
])
|
|
171
|
+
)
|
|
172
|
+
};
|
|
173
|
+
return target[id];
|
|
174
|
+
}
|
|
175
|
+
async function add_query(args) {
|
|
176
|
+
const parsed = graphql.parse(args.contents);
|
|
177
|
+
const query = parsed.definitions.find(
|
|
178
|
+
(def) => def.kind === "OperationDefinition" && def.operation === "query"
|
|
179
|
+
);
|
|
180
|
+
if (!query?.name) {
|
|
181
|
+
throw new Error("No query found");
|
|
182
|
+
}
|
|
183
|
+
let loading = false;
|
|
184
|
+
await graphql.visit(parsed, {
|
|
185
|
+
Directive(node) {
|
|
186
|
+
if (node.name.value === "loading") {
|
|
187
|
+
loading = true;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
const queryVariables = Object.fromEntries(
|
|
192
|
+
query.variableDefinitions?.map((variable) => {
|
|
193
|
+
const { type, wrappers } = unwrapType(args.config, variable.type, [], true);
|
|
194
|
+
return [
|
|
195
|
+
variable.variable.name.value,
|
|
196
|
+
{ wrappers, type: type.name }
|
|
197
|
+
];
|
|
198
|
+
}) ?? []
|
|
199
|
+
);
|
|
200
|
+
Object.assign(args.variables, queryVariables);
|
|
201
|
+
const target = args.type === "page" ? args.project.page_queries : args.project.layout_queries;
|
|
202
|
+
target[page_id(args.url)] = {
|
|
203
|
+
path: path.relative(args.config.routes_dir, args.path),
|
|
204
|
+
name: query.name.value,
|
|
205
|
+
url: args.url,
|
|
206
|
+
loading,
|
|
207
|
+
variables: queryVariables
|
|
208
|
+
};
|
|
209
|
+
return target[page_id(args.url)];
|
|
210
|
+
}
|
|
211
|
+
async function extractQueries(source) {
|
|
212
|
+
const ast = parseJS(source, { plugins: ["jsx"] });
|
|
213
|
+
let defaultExportNode = null;
|
|
214
|
+
let defaultExportIdentifier = null;
|
|
215
|
+
for (const n of ast.body) {
|
|
216
|
+
const node = n;
|
|
217
|
+
if (t.isExportDefaultDeclaration(node)) {
|
|
218
|
+
if (t.isFunctionDeclaration(node.declaration) || t.isArrowFunctionExpression(node.declaration) || t.isFunctionExpression(node.declaration)) {
|
|
219
|
+
defaultExportNode = node.declaration;
|
|
220
|
+
break;
|
|
221
|
+
} else if (t.isIdentifier(node.declaration)) {
|
|
222
|
+
defaultExportIdentifier = node.declaration.name;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (defaultExportIdentifier) {
|
|
227
|
+
for (const n of ast.body) {
|
|
228
|
+
const node = n;
|
|
229
|
+
if (t.isVariableDeclaration(node)) {
|
|
230
|
+
for (const declaration of node.declarations) {
|
|
231
|
+
if (t.isVariableDeclarator(declaration) && t.isIdentifier(declaration.id) && declaration.id.name === defaultExportIdentifier) {
|
|
232
|
+
if (t.isArrowFunctionExpression(declaration.init) || t.isFunctionExpression(declaration.init)) {
|
|
233
|
+
defaultExportNode = declaration.init;
|
|
234
|
+
break;
|
|
235
|
+
} else if (t.isTSAsExpression(declaration.init) && (t.isArrowFunctionExpression(declaration.init.expression) || t.isFunctionExpression(declaration.init.expression))) {
|
|
236
|
+
defaultExportNode = declaration.init.expression;
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (!defaultExportNode) {
|
|
245
|
+
return [];
|
|
246
|
+
}
|
|
247
|
+
const props = [];
|
|
248
|
+
const componentFunction = defaultExportNode;
|
|
249
|
+
if (componentFunction && componentFunction.params.length > 0) {
|
|
250
|
+
const firstParam = componentFunction.params[0];
|
|
251
|
+
if (t.isObjectPattern(firstParam)) {
|
|
252
|
+
for (const property of firstParam.properties) {
|
|
253
|
+
if (t.isObjectProperty(property) && t.isIdentifier(property.key)) {
|
|
254
|
+
props.push(property.key.name);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
} else {
|
|
258
|
+
throw new Error("Props should be specified as an object pattern.");
|
|
259
|
+
}
|
|
260
|
+
} else {
|
|
261
|
+
return [];
|
|
262
|
+
}
|
|
263
|
+
return props.reduce((queries, query) => {
|
|
264
|
+
if (query === "children") {
|
|
265
|
+
return queries;
|
|
266
|
+
}
|
|
267
|
+
if (query.endsWith("$handle")) {
|
|
268
|
+
query = query.substring(0, query.length - "$handle".length);
|
|
269
|
+
}
|
|
270
|
+
if (queries.includes(query)) {
|
|
271
|
+
return queries;
|
|
272
|
+
}
|
|
273
|
+
return queries.concat([query]);
|
|
274
|
+
}, []);
|
|
275
|
+
}
|
|
276
|
+
export {
|
|
277
|
+
extractQueries,
|
|
278
|
+
load_manifest
|
|
279
|
+
};
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { RouterManifest, RouterPageManifest } from './types.js';
|
|
2
|
+
type GraphQLScalar = string | number | boolean | null;
|
|
3
|
+
type GraphQLVariables = Record<string, GraphQLScalar | GraphQLScalar[]> | null;
|
|
4
4
|
export type RouteParam = {
|
|
5
5
|
name: string;
|
|
6
|
-
matcher: string;
|
|
7
6
|
optional: boolean;
|
|
8
7
|
rest: boolean;
|
|
9
8
|
chained: boolean;
|
|
9
|
+
type?: string;
|
|
10
10
|
};
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export declare function find_match<_ComponentType>(config: ConfigFile, manifest: RouterManifest<_ComponentType>, current: string, allowNull: true): [RouterPageManifest<_ComponentType> | null, GraphQLVariables];
|
|
15
|
-
export declare function find_match<_ComponentType>(config: ConfigFile, manifest: RouterManifest<_ComponentType>, current: string, allowNull?: false): [RouterPageManifest<_ComponentType>, GraphQLVariables];
|
|
11
|
+
export declare function find_prefix_match<_ComponentType>(manifest: RouterManifest<_ComponentType>, url: string): RouterPageManifest<_ComponentType> | null;
|
|
12
|
+
export declare function find_match<_ComponentType>(manifest: RouterManifest<_ComponentType>, current: string, allowNull: true): [RouterPageManifest<_ComponentType> | null, GraphQLVariables, Record<string, any>];
|
|
13
|
+
export declare function find_match<_ComponentType>(manifest: RouterManifest<_ComponentType>, current: string, allowNull?: false): [RouterPageManifest<_ComponentType>, GraphQLVariables, Record<string, any>];
|
|
16
14
|
/**
|
|
17
15
|
* Creates the regex pattern, extracts parameter names, and generates types for a route
|
|
18
16
|
*/
|
|
@@ -27,7 +25,9 @@ export declare function parse_page_pattern(id: string): {
|
|
|
27
25
|
* and will be returned as `['']`.
|
|
28
26
|
*/
|
|
29
27
|
export declare function get_route_segments(route: string): string[];
|
|
30
|
-
export declare function exec(match: RegExpMatchArray, params: RouteParam[]): Record<string, string> | undefined;
|
|
28
|
+
export declare function exec(match: RegExpMatchArray, params: readonly RouteParam[]): Record<string, string> | undefined;
|
|
29
|
+
export declare function parseScalar(type: string, value?: string): string | number | boolean | undefined;
|
|
30
|
+
export {};
|
|
31
31
|
/**
|
|
32
32
|
Copyright (c) 2020 [these people](https://github.com/sveltejs/kit/graphs/contributors)
|
|
33
33
|
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
const param_pattern = /^(\[)?(\.\.\.)?(\w+)(\])?$/;
|
|
2
|
+
function find_prefix_match(manifest, url) {
|
|
3
|
+
const path = url.split("?")[0];
|
|
4
|
+
const urlSegments = path.split("/").filter(Boolean);
|
|
5
|
+
let best = null;
|
|
6
|
+
let bestCount = -1;
|
|
7
|
+
for (const page of Object.values(manifest.pages)) {
|
|
8
|
+
const pageSegments = page.url.split("/").filter(Boolean);
|
|
9
|
+
let staticCount = 0;
|
|
10
|
+
for (const seg of pageSegments) {
|
|
11
|
+
if (seg.startsWith("[") || seg.startsWith("(") || seg === "*") break;
|
|
12
|
+
staticCount++;
|
|
13
|
+
}
|
|
14
|
+
if (staticCount > urlSegments.length) continue;
|
|
15
|
+
let matches = true;
|
|
16
|
+
for (let i = 0; i < staticCount; i++) {
|
|
17
|
+
if (pageSegments[i] !== urlSegments[i]) {
|
|
18
|
+
matches = false;
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (matches && staticCount > bestCount) {
|
|
23
|
+
bestCount = staticCount;
|
|
24
|
+
best = page;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return best;
|
|
28
|
+
}
|
|
29
|
+
function find_match(manifest, current, allowNull = true) {
|
|
30
|
+
const queryIndex = current.indexOf("?");
|
|
31
|
+
const path = queryIndex === -1 ? current : current.slice(0, queryIndex);
|
|
32
|
+
const search = queryIndex === -1 ? "" : current.slice(queryIndex + 1);
|
|
33
|
+
let match = null;
|
|
34
|
+
let matchVariables = null;
|
|
35
|
+
for (const page of Object.values(manifest.pages)) {
|
|
36
|
+
const urlMatch = path.match(page.pattern);
|
|
37
|
+
if (!urlMatch) {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
match = page;
|
|
41
|
+
matchVariables = exec(urlMatch, page.params) || {};
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
if (!match && !allowNull) {
|
|
45
|
+
throw new Error("404");
|
|
46
|
+
}
|
|
47
|
+
const variables = {
|
|
48
|
+
...matchVariables
|
|
49
|
+
};
|
|
50
|
+
for (const document of Object.values(match?.documents ?? {})) {
|
|
51
|
+
for (const [variable, { type }] of Object.entries(document.variables)) {
|
|
52
|
+
if (matchVariables?.[variable]) {
|
|
53
|
+
variables[variable] = parseScalar(
|
|
54
|
+
type,
|
|
55
|
+
matchVariables[variable]
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const searchObject = {};
|
|
61
|
+
if (search) {
|
|
62
|
+
const searchParams = new URLSearchParams(search);
|
|
63
|
+
for (const key of new Set(searchParams.keys())) {
|
|
64
|
+
const values = searchParams.getAll(key);
|
|
65
|
+
searchObject[key] = values.length > 1 ? values : values[0];
|
|
66
|
+
}
|
|
67
|
+
for (const { name, type, wrappers } of match?.searchParams ?? []) {
|
|
68
|
+
if (variables[name] != null) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (wrappers.includes("List")) {
|
|
72
|
+
const raw = searchParams.getAll(name);
|
|
73
|
+
if (raw.length === 0) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
variables[name] = raw.map((value) => parseScalar(type, value)).filter((value) => value !== void 0);
|
|
77
|
+
} else if (searchParams.has(name)) {
|
|
78
|
+
const parsed = parseScalar(type, searchParams.get(name) ?? void 0);
|
|
79
|
+
if (parsed !== void 0) {
|
|
80
|
+
variables[name] = parsed;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (name in searchObject && variables[name] != null) {
|
|
84
|
+
searchObject[name] = variables[name];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return [match, variables, searchObject];
|
|
89
|
+
}
|
|
90
|
+
function parse_page_pattern(id) {
|
|
91
|
+
const params = [];
|
|
92
|
+
const pattern = id === "/" ? /^\/$/ : new RegExp(
|
|
93
|
+
`^${get_route_segments(id).map((segment) => {
|
|
94
|
+
const rest_match = /^\[\.\.\.(\w+)\]$/.exec(segment);
|
|
95
|
+
if (rest_match) {
|
|
96
|
+
params.push({
|
|
97
|
+
name: rest_match[1],
|
|
98
|
+
optional: false,
|
|
99
|
+
rest: true,
|
|
100
|
+
chained: true
|
|
101
|
+
});
|
|
102
|
+
return "(?:/(.*))?";
|
|
103
|
+
}
|
|
104
|
+
const optional_match = /^\[\[(\w+)\]\]$/.exec(segment);
|
|
105
|
+
if (optional_match) {
|
|
106
|
+
params.push({
|
|
107
|
+
name: optional_match[1],
|
|
108
|
+
optional: true,
|
|
109
|
+
rest: false,
|
|
110
|
+
chained: true
|
|
111
|
+
});
|
|
112
|
+
return "(?:/([^/]+))?";
|
|
113
|
+
}
|
|
114
|
+
if (!segment) {
|
|
115
|
+
return "";
|
|
116
|
+
}
|
|
117
|
+
const parts = segment.split(/\[(.+?)\](?!\])/);
|
|
118
|
+
const result = parts.map((content, i) => {
|
|
119
|
+
if (i % 2) {
|
|
120
|
+
if (content.startsWith("x+")) {
|
|
121
|
+
return escapeRegex(
|
|
122
|
+
String.fromCharCode(parseInt(content.slice(2), 16))
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
if (content.startsWith("u+")) {
|
|
126
|
+
return escapeRegex(
|
|
127
|
+
String.fromCharCode(
|
|
128
|
+
...content.slice(2).split("-").map((code) => parseInt(code, 16))
|
|
129
|
+
)
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
const match = param_pattern.exec(content);
|
|
133
|
+
if (!match) {
|
|
134
|
+
throw new Error(
|
|
135
|
+
`Invalid param: ${content}. Params can only have underscores and alphanumeric characters.`
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
const [, is_optional, is_rest, name] = match;
|
|
139
|
+
params.push({
|
|
140
|
+
name,
|
|
141
|
+
optional: !!is_optional,
|
|
142
|
+
rest: !!is_rest,
|
|
143
|
+
chained: is_rest ? i === 1 && parts[0] === "" : false
|
|
144
|
+
});
|
|
145
|
+
return is_rest ? "(.*?)" : is_optional ? "([^/]*)?" : "([^/]+?)";
|
|
146
|
+
}
|
|
147
|
+
return escapeRegex(content);
|
|
148
|
+
}).join("");
|
|
149
|
+
return `/${result}`;
|
|
150
|
+
}).join("")}/?$`
|
|
151
|
+
);
|
|
152
|
+
return { pattern, params, page_id: id };
|
|
153
|
+
}
|
|
154
|
+
function affects_path(segment) {
|
|
155
|
+
return !/^\([^)]+\)$/.test(segment);
|
|
156
|
+
}
|
|
157
|
+
function get_route_segments(route) {
|
|
158
|
+
return route.slice(1).split("/").filter(affects_path);
|
|
159
|
+
}
|
|
160
|
+
function exec(match, params) {
|
|
161
|
+
const result = {};
|
|
162
|
+
const values = match.slice(1);
|
|
163
|
+
let buffered = "";
|
|
164
|
+
for (let i = 0; i < (params || []).length; i += 1) {
|
|
165
|
+
const param = params[i];
|
|
166
|
+
let value = values[i];
|
|
167
|
+
if (param.chained && param.rest && buffered) {
|
|
168
|
+
value = value ? `${buffered}/${value}` : buffered;
|
|
169
|
+
}
|
|
170
|
+
buffered = "";
|
|
171
|
+
if (value === void 0) {
|
|
172
|
+
if (param.rest) result[param.name] = "";
|
|
173
|
+
} else {
|
|
174
|
+
result[param.name] = decodeURIComponent(value);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (buffered) return;
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
180
|
+
function escapeRegex(str) {
|
|
181
|
+
return str.normalize().replace(/[[\]]/g, "\\$&").replace(/%/g, "%25").replace(/\//g, "%2[Ff]").replace(/\?/g, "%3[Ff]").replace(/#/g, "%23").replace(/[.*+?^${}()|\\]/g, "\\$&");
|
|
182
|
+
}
|
|
183
|
+
function parseScalar(type, value) {
|
|
184
|
+
if (typeof value === "undefined") {
|
|
185
|
+
return void 0;
|
|
186
|
+
}
|
|
187
|
+
if (type === "Boolean") {
|
|
188
|
+
return value === "true";
|
|
189
|
+
}
|
|
190
|
+
if (type === "ID") {
|
|
191
|
+
return value;
|
|
192
|
+
}
|
|
193
|
+
if (type === "String") {
|
|
194
|
+
return value;
|
|
195
|
+
}
|
|
196
|
+
if (type === "Int") {
|
|
197
|
+
const result = parseInt(value, 10);
|
|
198
|
+
if (Number.isNaN(result)) {
|
|
199
|
+
return void 0;
|
|
200
|
+
}
|
|
201
|
+
return result;
|
|
202
|
+
}
|
|
203
|
+
if (type === "Float") {
|
|
204
|
+
const result = parseFloat(value);
|
|
205
|
+
if (Number.isNaN(result)) {
|
|
206
|
+
return void 0;
|
|
207
|
+
}
|
|
208
|
+
return result;
|
|
209
|
+
}
|
|
210
|
+
return value;
|
|
211
|
+
}
|
|
212
|
+
export {
|
|
213
|
+
exec,
|
|
214
|
+
find_match,
|
|
215
|
+
find_prefix_match,
|
|
216
|
+
get_route_segments,
|
|
217
|
+
parseScalar,
|
|
218
|
+
parse_page_pattern
|
|
219
|
+
};
|