@strapi/plugin-graphql 5.48.1 → 5.50.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/dist/server/bootstrap.js +11 -5
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/services/builders/utils.js +4 -0
- package/dist/server/services/builders/utils.js.map +1 -1
- package/dist/server/services/builders/utils.mjs +5 -1
- package/dist/server/services/builders/utils.mjs.map +1 -1
- package/dist/server/services/extension/extension.js +3 -2
- package/dist/server/services/extension/extension.js.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +20 -44
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/dynamic-zones.d.ts.map +1 -1
- package/dist/server/src/services/builders/entity.d.ts.map +1 -1
- package/dist/server/src/services/builders/enums.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/content-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/and.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/between.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/contains.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/containsi.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/ends-with.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/eq.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/eqi.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/gt.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/gte.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/in.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/index.d.ts +0 -1
- package/dist/server/src/services/builders/filters/operators/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/lt.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/lte.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/ne.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/nei.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not-contains.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not-containsi.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not-in.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not-null.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/not.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/null.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/or.d.ts.map +1 -1
- package/dist/server/src/services/builders/filters/operators/starts-with.d.ts.map +1 -1
- package/dist/server/src/services/builders/generic-morph.d.ts.map +1 -1
- package/dist/server/src/services/builders/index.d.ts +3 -4
- package/dist/server/src/services/builders/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/input.d.ts.map +1 -1
- package/dist/server/src/services/builders/mutations/collection-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/mutations/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/mutations/single-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/queries/collection-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/queries/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/queries/single-type.d.ts.map +1 -1
- package/dist/server/src/services/builders/relation-response-collection.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/association.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/component.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/dynamic-zone.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/index.d.ts +4 -4
- package/dist/server/src/services/builders/resolvers/index.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/merge-publication-args.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/pagination.d.ts.map +1 -1
- package/dist/server/src/services/builders/resolvers/query.d.ts.map +1 -1
- package/dist/server/src/services/builders/response-collection.d.ts.map +1 -1
- package/dist/server/src/services/builders/response.d.ts.map +1 -1
- package/dist/server/src/services/builders/type.d.ts.map +1 -1
- package/dist/server/src/services/builders/utils.d.ts +0 -1
- package/dist/server/src/services/builders/utils.d.ts.map +1 -1
- package/dist/server/src/services/content-api/index.d.ts.map +1 -1
- package/dist/server/src/services/content-api/policy.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/collection-type.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/component.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/dynamic-zones.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/enums.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/filters.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/inputs.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/internals.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/polymorphic.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/scalars.d.ts.map +1 -1
- package/dist/server/src/services/content-api/register-functions/single-type.d.ts.map +1 -1
- package/dist/server/src/services/content-api/wrap-resolvers.d.ts.map +1 -1
- package/dist/server/src/services/extension/extension.d.ts +10 -10
- package/dist/server/src/services/extension/extension.d.ts.map +1 -1
- package/dist/server/src/services/extension/shadow-crud-manager.d.ts +9 -9
- package/dist/server/src/services/extension/shadow-crud-manager.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +20 -44
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/args/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/args/publication-filter.d.ts.map +1 -1
- package/dist/server/src/services/internals/args/publication-status.d.ts.map +1 -1
- package/dist/server/src/services/internals/helpers/get-enabled-scalars.d.ts.map +1 -1
- package/dist/server/src/services/internals/helpers/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/delete-mutation-response.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/error.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/filters.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/index.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/pagination.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/publication-filter.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/publication-status.d.ts.map +1 -1
- package/dist/server/src/services/internals/types/response-collection-meta.d.ts.map +1 -1
- package/dist/server/src/services/type-registry.d.ts.map +1 -1
- package/dist/server/src/services/utils/attributes.d.ts.map +1 -1
- package/dist/server/src/services/utils/index.d.ts +7 -30
- package/dist/server/src/services/utils/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts +1 -3
- package/dist/server/src/services/utils/mappers/entity-to-response-entity.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/graphql-filters-to-strapi-query.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/graphql-scalar-to-operators.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/index.d.ts +1 -3
- package/dist/server/src/services/utils/mappers/index.d.ts.map +1 -1
- package/dist/server/src/services/utils/mappers/strapi-scalar-to-graphql-scalar.d.ts.map +1 -1
- package/dist/server/src/services/utils/naming.d.ts +3 -3
- package/dist/server/src/services/utils/naming.d.ts.map +1 -1
- package/dist/server/src/services/utils/playground.d.ts.map +1 -1
- package/package.json +9 -9
package/dist/server/bootstrap.js
CHANGED
|
@@ -9,6 +9,12 @@ var bodyParser = require('koa-bodyparser');
|
|
|
9
9
|
var cors = require('@koa/cors');
|
|
10
10
|
var formatGraphqlError = require('./format-graphql-error.js');
|
|
11
11
|
|
|
12
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
|
|
14
|
+
var depthLimit__default = /*#__PURE__*/_interopDefault(depthLimit);
|
|
15
|
+
var bodyParser__default = /*#__PURE__*/_interopDefault(bodyParser);
|
|
16
|
+
var cors__default = /*#__PURE__*/_interopDefault(cors);
|
|
17
|
+
|
|
12
18
|
const merge = fp.mergeWith((a, b)=>{
|
|
13
19
|
if (fp.isArray(a) && fp.isArray(b)) {
|
|
14
20
|
return a.concat(b);
|
|
@@ -120,7 +126,7 @@ async function bootstrap({ strapi }) {
|
|
|
120
126
|
schema,
|
|
121
127
|
// Validation
|
|
122
128
|
validationRules: [
|
|
123
|
-
|
|
129
|
+
depthLimit__default.default(config('depthLimit'))
|
|
124
130
|
],
|
|
125
131
|
// Errors
|
|
126
132
|
formatError: formatGraphqlError.formatGraphqlError,
|
|
@@ -153,16 +159,16 @@ async function bootstrap({ strapi }) {
|
|
|
153
159
|
// add cors middleware
|
|
154
160
|
if (serverConfig.cors === false) ; else if (serverConfig.cors === undefined || serverConfig.cors === true) {
|
|
155
161
|
// enable with defaults (backwards compatible)
|
|
156
|
-
handler.push(
|
|
162
|
+
handler.push(cors__default.default());
|
|
157
163
|
} else {
|
|
158
164
|
// Custom options object
|
|
159
|
-
handler.push(
|
|
165
|
+
handler.push(cors__default.default(serverConfig.cors));
|
|
160
166
|
}
|
|
161
167
|
// add koa bodyparser middleware
|
|
162
168
|
if (fp.isObject(serverConfig.bodyParserConfig)) {
|
|
163
|
-
handler.push(
|
|
169
|
+
handler.push(bodyParser__default.default(serverConfig.bodyParserConfig));
|
|
164
170
|
} else if (serverConfig.bodyParserConfig) {
|
|
165
|
-
handler.push(
|
|
171
|
+
handler.push(bodyParser__default.default());
|
|
166
172
|
} else {
|
|
167
173
|
strapi.log.debug('Body parser has been disabled for Apollo server');
|
|
168
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { isEmpty, mergeWith, isArray, isObject, isFunction } from 'lodash/fp';\nimport { ApolloServer, type ApolloServerPlugin, type ApolloServerOptions } from '@apollo/server';\nimport {\n ApolloServerPluginLandingPageLocalDefault,\n ApolloServerPluginLandingPageProductionDefault,\n} from '@apollo/server/plugin/landingPage/default';\nimport { koaMiddleware } from '@as-integrations/koa';\nimport depthLimit from 'graphql-depth-limit';\nimport bodyParser from 'koa-bodyparser';\nimport cors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\nimport type { Options } from '@koa/cors';\nimport type { BaseContext, DefaultContextExtends, DefaultStateExtends } from 'koa';\n\nimport { formatGraphqlError } from './format-graphql-error';\n\nconst merge = mergeWith((a, b) => {\n if (isArray(a) && isArray(b)) {\n return a.concat(b);\n }\n});\n\ntype StrapiGraphQLContext = BaseContext & {\n rootQueryArgsByPath?: Map<string | number, Record<string, unknown>>;\n};\n\nexport const determineLandingPage = (\n strapi: Core.Strapi\n): ApolloServerPlugin<StrapiGraphQLContext> => {\n const { config } = strapi.plugin('graphql');\n const utils = strapi.plugin('graphql').service('utils');\n\n /**\n * configLanding page may be one of the following:\n *\n * - true: always use \"playground\" even in production\n * - false: never show \"playground\" even in non-production\n * - undefined: default Apollo behavior (hide playground on production)\n * - a function that returns an Apollo plugin that implements renderLandingPage\n ** */\n const configLandingPage = config('landingPage');\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n const localLanding = () => {\n strapi.log.debug('Apollo landing page: local');\n utils.playground.setEnabled(true);\n return ApolloServerPluginLandingPageLocalDefault();\n };\n\n const prodLanding = () => {\n strapi.log.debug('Apollo landing page: production');\n utils.playground.setEnabled(false);\n return ApolloServerPluginLandingPageProductionDefault();\n };\n\n const userLanding = (userFunction: (strapi?: Core.Strapi) => ApolloServerPlugin | boolean) => {\n strapi.log.debug('Apollo landing page: from user-defined function...');\n const result = userFunction(strapi);\n if (result === true) {\n return localLanding();\n }\n if (result === false) {\n return prodLanding();\n }\n strapi.log.debug('Apollo landing page: user-defined');\n return result;\n };\n\n // DEPRECATED, remove in Strapi v6\n const playgroundAlways = config('playgroundAlways');\n if (playgroundAlways !== undefined) {\n strapi.log.warn(\n 'The graphql config playgroundAlways is deprecated. This will be removed in Strapi 6. Please use landingPage instead. '\n );\n }\n if (playgroundAlways === false) {\n strapi.log.warn(\n 'graphql config playgroundAlways:false has no effect, please use landingPage:false to disable Graphql Playground in all environments'\n );\n }\n\n if (playgroundAlways || configLandingPage === true) {\n return localLanding();\n }\n\n // if landing page has been disabled, use production\n if (configLandingPage === false) {\n return prodLanding();\n }\n\n // If user did not define any settings, use our defaults\n if (configLandingPage === undefined) {\n return isProduction ? prodLanding() : localLanding();\n }\n\n // if user provided a landing page function, return that\n if (isFunction(configLandingPage)) {\n return userLanding(configLandingPage);\n }\n\n // If no other setting could be found, default to production settings\n strapi.log.warn(\n 'Your Graphql landing page has been disabled because there is a problem with your Graphql settings'\n );\n return prodLanding();\n};\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n // Generate the GraphQL schema for the content API\n const schema = strapi.plugin('graphql').service('content-api').buildSchema();\n\n if (isEmpty(schema)) {\n strapi.log.warn('The GraphQL schema has not been generated because it is empty');\n\n return;\n }\n\n const { config } = strapi.plugin('graphql');\n\n const path: string = config('endpoint');\n\n const landingPage = determineLandingPage(strapi);\n /**\n * We need the arguments passed to the root query to be available in the association resolver\n * so we can forward those arguments along to any relations.\n *\n * In order to do that we are currently storing the arguments in context.\n * There is likely a better solution, but for now this is the simplest fix we could find.\n *\n * @see https://github.com/strapi/strapi/issues/23524\n */\n const pluginAddRootQueryArgs: ApolloServerPlugin<StrapiGraphQLContext> = {\n async requestDidStart() {\n return {\n async executionDidStart() {\n return {\n willResolveField({ source, args, contextValue, info }) {\n if (!source && info.operation.operation === 'query') {\n // Key args per root field (alias)\n if (!contextValue.rootQueryArgsByPath) {\n contextValue.rootQueryArgsByPath = new Map();\n }\n contextValue.rootQueryArgsByPath.set(info.path.key, {\n ...args,\n _originField: info.fieldName,\n });\n }\n },\n };\n },\n };\n },\n };\n\n type CustomOptions = {\n cors?: boolean | Options;\n uploads: boolean;\n bodyParserConfig: boolean;\n };\n\n const defaultServerConfig: ApolloServerOptions<StrapiGraphQLContext> & CustomOptions = {\n // Schema\n schema,\n\n // Validation\n validationRules: [depthLimit(config('depthLimit') as number) as any],\n\n // Errors\n formatError: formatGraphqlError,\n\n // Misc\n cors: undefined,\n uploads: false,\n bodyParserConfig: true,\n // send 400 http status instead of 200 for input validation errors\n status400ForVariableCoercionErrors: true,\n plugins: [landingPage, pluginAddRootQueryArgs],\n\n cache: 'bounded' as const,\n };\n\n const serverConfig = merge(\n defaultServerConfig,\n config('apolloServer')\n ) as ApolloServerOptions<StrapiGraphQLContext> & CustomOptions;\n\n // Create a new Apollo server\n const server = new ApolloServer(serverConfig);\n\n try {\n // server.start() must be called before using server.applyMiddleware()\n await server.start();\n } catch (error) {\n if (error instanceof Error) {\n strapi.log.error('Failed to start the Apollo server', error.message);\n }\n\n throw error;\n }\n\n // Create the route handlers for Strapi\n const handler: Core.MiddlewareHandler[] = [];\n\n // add cors middleware\n if (serverConfig.cors === false) {\n // Explicitly disabled - don't add middleware\n } else if (serverConfig.cors === undefined || serverConfig.cors === true) {\n // enable with defaults (backwards compatible)\n handler.push(cors());\n } else {\n // Custom options object\n handler.push(cors(serverConfig.cors));\n }\n\n // add koa bodyparser middleware\n if (isObject(serverConfig.bodyParserConfig)) {\n handler.push(bodyParser(serverConfig.bodyParserConfig));\n } else if (serverConfig.bodyParserConfig) {\n handler.push(bodyParser());\n } else {\n strapi.log.debug('Body parser has been disabled for Apollo server');\n }\n\n // add the Strapi auth middleware\n handler.push((ctx, next) => {\n ctx.state.route = {\n info: {\n // Indicate it's a content API route\n type: 'content-api',\n },\n };\n\n const isPlaygroundRequest =\n ctx.request.method === 'GET' &&\n ctx.request.url === path && // Matches the GraphQL endpoint\n strapi.plugin('graphql').service('utils').playground.isEnabled() && // Only allow if the Playground is enabled\n ctx.request.header.accept?.includes('text/html'); // Specific to Playground UI loading\n\n // Skip authentication for the GraphQL Playground UI\n if (isPlaygroundRequest) {\n return next();\n }\n\n return strapi.auth.authenticate(ctx, next);\n });\n\n // add the graphql server for koa\n handler.push(\n koaMiddleware<DefaultStateExtends, DefaultContextExtends>(server, {\n // Initialize loaders for this request.\n context: async ({ ctx }) => ({\n state: ctx.state,\n koaContext: ctx,\n }),\n })\n );\n\n // now that handlers are set up, add the graphql route to our apollo server\n strapi.server.routes([\n {\n method: 'ALL',\n path,\n handler,\n config: {\n auth: false,\n },\n },\n ]);\n\n // Register destroy behavior\n // We're doing it here instead of exposing a destroy method to the strapi-server.js\n // file since we need to have access to the ApolloServer instance\n strapi.plugin('graphql').destroy = async () => {\n await server.stop();\n };\n}\n"],"names":["merge","mergeWith","a","b","isArray","concat","determineLandingPage","strapi","config","plugin","utils","service","configLandingPage","isProduction","process","env","NODE_ENV","localLanding","log","debug","playground","setEnabled","ApolloServerPluginLandingPageLocalDefault","prodLanding","ApolloServerPluginLandingPageProductionDefault","userLanding","userFunction","result","playgroundAlways","undefined","warn","isFunction","bootstrap","schema","buildSchema","isEmpty","path","landingPage","pluginAddRootQueryArgs","requestDidStart","executionDidStart","willResolveField","source","args","contextValue","info","operation","rootQueryArgsByPath","Map","set","key","_originField","fieldName","defaultServerConfig","validationRules","depthLimit","formatError","formatGraphqlError","cors","uploads","bodyParserConfig","status400ForVariableCoercionErrors","plugins","cache","serverConfig","server","ApolloServer","start","error","Error","message","handler","push","isObject","bodyParser","ctx","next","state","route","type","isPlaygroundRequest","request","method","url","isEnabled","header","accept","includes","auth","authenticate","koaMiddleware","context","koaContext","routes","destroy","stop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sources":["../../server/src/bootstrap.ts"],"sourcesContent":["import { isEmpty, mergeWith, isArray, isObject, isFunction } from 'lodash/fp';\nimport { ApolloServer, type ApolloServerPlugin, type ApolloServerOptions } from '@apollo/server';\nimport {\n ApolloServerPluginLandingPageLocalDefault,\n ApolloServerPluginLandingPageProductionDefault,\n} from '@apollo/server/plugin/landingPage/default';\nimport { koaMiddleware } from '@as-integrations/koa';\nimport depthLimit from 'graphql-depth-limit';\nimport bodyParser from 'koa-bodyparser';\nimport cors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\nimport type { Options } from '@koa/cors';\nimport type { BaseContext, DefaultContextExtends, DefaultStateExtends } from 'koa';\n\nimport { formatGraphqlError } from './format-graphql-error';\n\nconst merge = mergeWith((a, b) => {\n if (isArray(a) && isArray(b)) {\n return a.concat(b);\n }\n});\n\ntype StrapiGraphQLContext = BaseContext & {\n rootQueryArgsByPath?: Map<string | number, Record<string, unknown>>;\n};\n\nexport const determineLandingPage = (\n strapi: Core.Strapi\n): ApolloServerPlugin<StrapiGraphQLContext> => {\n const { config } = strapi.plugin('graphql');\n const utils = strapi.plugin('graphql').service('utils');\n\n /**\n * configLanding page may be one of the following:\n *\n * - true: always use \"playground\" even in production\n * - false: never show \"playground\" even in non-production\n * - undefined: default Apollo behavior (hide playground on production)\n * - a function that returns an Apollo plugin that implements renderLandingPage\n ** */\n const configLandingPage = config('landingPage');\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n const localLanding = () => {\n strapi.log.debug('Apollo landing page: local');\n utils.playground.setEnabled(true);\n return ApolloServerPluginLandingPageLocalDefault();\n };\n\n const prodLanding = () => {\n strapi.log.debug('Apollo landing page: production');\n utils.playground.setEnabled(false);\n return ApolloServerPluginLandingPageProductionDefault();\n };\n\n const userLanding = (userFunction: (strapi?: Core.Strapi) => ApolloServerPlugin | boolean) => {\n strapi.log.debug('Apollo landing page: from user-defined function...');\n const result = userFunction(strapi);\n if (result === true) {\n return localLanding();\n }\n if (result === false) {\n return prodLanding();\n }\n strapi.log.debug('Apollo landing page: user-defined');\n return result;\n };\n\n // DEPRECATED, remove in Strapi v6\n const playgroundAlways = config('playgroundAlways');\n if (playgroundAlways !== undefined) {\n strapi.log.warn(\n 'The graphql config playgroundAlways is deprecated. This will be removed in Strapi 6. Please use landingPage instead. '\n );\n }\n if (playgroundAlways === false) {\n strapi.log.warn(\n 'graphql config playgroundAlways:false has no effect, please use landingPage:false to disable Graphql Playground in all environments'\n );\n }\n\n if (playgroundAlways || configLandingPage === true) {\n return localLanding();\n }\n\n // if landing page has been disabled, use production\n if (configLandingPage === false) {\n return prodLanding();\n }\n\n // If user did not define any settings, use our defaults\n if (configLandingPage === undefined) {\n return isProduction ? prodLanding() : localLanding();\n }\n\n // if user provided a landing page function, return that\n if (isFunction(configLandingPage)) {\n return userLanding(configLandingPage);\n }\n\n // If no other setting could be found, default to production settings\n strapi.log.warn(\n 'Your Graphql landing page has been disabled because there is a problem with your Graphql settings'\n );\n return prodLanding();\n};\n\nexport async function bootstrap({ strapi }: { strapi: Core.Strapi }) {\n // Generate the GraphQL schema for the content API\n const schema = strapi.plugin('graphql').service('content-api').buildSchema();\n\n if (isEmpty(schema)) {\n strapi.log.warn('The GraphQL schema has not been generated because it is empty');\n\n return;\n }\n\n const { config } = strapi.plugin('graphql');\n\n const path: string = config('endpoint');\n\n const landingPage = determineLandingPage(strapi);\n /**\n * We need the arguments passed to the root query to be available in the association resolver\n * so we can forward those arguments along to any relations.\n *\n * In order to do that we are currently storing the arguments in context.\n * There is likely a better solution, but for now this is the simplest fix we could find.\n *\n * @see https://github.com/strapi/strapi/issues/23524\n */\n const pluginAddRootQueryArgs: ApolloServerPlugin<StrapiGraphQLContext> = {\n async requestDidStart() {\n return {\n async executionDidStart() {\n return {\n willResolveField({ source, args, contextValue, info }) {\n if (!source && info.operation.operation === 'query') {\n // Key args per root field (alias)\n if (!contextValue.rootQueryArgsByPath) {\n contextValue.rootQueryArgsByPath = new Map();\n }\n contextValue.rootQueryArgsByPath.set(info.path.key, {\n ...args,\n _originField: info.fieldName,\n });\n }\n },\n };\n },\n };\n },\n };\n\n type CustomOptions = {\n cors?: boolean | Options;\n uploads: boolean;\n bodyParserConfig: boolean;\n };\n\n const defaultServerConfig: ApolloServerOptions<StrapiGraphQLContext> & CustomOptions = {\n // Schema\n schema,\n\n // Validation\n validationRules: [depthLimit(config('depthLimit') as number) as any],\n\n // Errors\n formatError: formatGraphqlError,\n\n // Misc\n cors: undefined,\n uploads: false,\n bodyParserConfig: true,\n // send 400 http status instead of 200 for input validation errors\n status400ForVariableCoercionErrors: true,\n plugins: [landingPage, pluginAddRootQueryArgs],\n\n cache: 'bounded' as const,\n };\n\n const serverConfig = merge(\n defaultServerConfig,\n config('apolloServer')\n ) as ApolloServerOptions<StrapiGraphQLContext> & CustomOptions;\n\n // Create a new Apollo server\n const server = new ApolloServer(serverConfig);\n\n try {\n // server.start() must be called before using server.applyMiddleware()\n await server.start();\n } catch (error) {\n if (error instanceof Error) {\n strapi.log.error('Failed to start the Apollo server', error.message);\n }\n\n throw error;\n }\n\n // Create the route handlers for Strapi\n const handler: Core.MiddlewareHandler[] = [];\n\n // add cors middleware\n if (serverConfig.cors === false) {\n // Explicitly disabled - don't add middleware\n } else if (serverConfig.cors === undefined || serverConfig.cors === true) {\n // enable with defaults (backwards compatible)\n handler.push(cors());\n } else {\n // Custom options object\n handler.push(cors(serverConfig.cors));\n }\n\n // add koa bodyparser middleware\n if (isObject(serverConfig.bodyParserConfig)) {\n handler.push(bodyParser(serverConfig.bodyParserConfig));\n } else if (serverConfig.bodyParserConfig) {\n handler.push(bodyParser());\n } else {\n strapi.log.debug('Body parser has been disabled for Apollo server');\n }\n\n // add the Strapi auth middleware\n handler.push((ctx, next) => {\n ctx.state.route = {\n info: {\n // Indicate it's a content API route\n type: 'content-api',\n },\n };\n\n const isPlaygroundRequest =\n ctx.request.method === 'GET' &&\n ctx.request.url === path && // Matches the GraphQL endpoint\n strapi.plugin('graphql').service('utils').playground.isEnabled() && // Only allow if the Playground is enabled\n ctx.request.header.accept?.includes('text/html'); // Specific to Playground UI loading\n\n // Skip authentication for the GraphQL Playground UI\n if (isPlaygroundRequest) {\n return next();\n }\n\n return strapi.auth.authenticate(ctx, next);\n });\n\n // add the graphql server for koa\n handler.push(\n koaMiddleware<DefaultStateExtends, DefaultContextExtends>(server, {\n // Initialize loaders for this request.\n context: async ({ ctx }) => ({\n state: ctx.state,\n koaContext: ctx,\n }),\n })\n );\n\n // now that handlers are set up, add the graphql route to our apollo server\n strapi.server.routes([\n {\n method: 'ALL',\n path,\n handler,\n config: {\n auth: false,\n },\n },\n ]);\n\n // Register destroy behavior\n // We're doing it here instead of exposing a destroy method to the strapi-server.js\n // file since we need to have access to the ApolloServer instance\n strapi.plugin('graphql').destroy = async () => {\n await server.stop();\n };\n}\n"],"names":["merge","mergeWith","a","b","isArray","concat","determineLandingPage","strapi","config","plugin","utils","service","configLandingPage","isProduction","process","env","NODE_ENV","localLanding","log","debug","playground","setEnabled","ApolloServerPluginLandingPageLocalDefault","prodLanding","ApolloServerPluginLandingPageProductionDefault","userLanding","userFunction","result","playgroundAlways","undefined","warn","isFunction","bootstrap","schema","buildSchema","isEmpty","path","landingPage","pluginAddRootQueryArgs","requestDidStart","executionDidStart","willResolveField","source","args","contextValue","info","operation","rootQueryArgsByPath","Map","set","key","_originField","fieldName","defaultServerConfig","validationRules","depthLimit","formatError","formatGraphqlError","cors","uploads","bodyParserConfig","status400ForVariableCoercionErrors","plugins","cache","serverConfig","server","ApolloServer","start","error","Error","message","handler","push","isObject","bodyParser","ctx","next","state","route","type","isPlaygroundRequest","request","method","url","isEnabled","header","accept","includes","auth","authenticate","koaMiddleware","context","koaContext","routes","destroy","stop"],"mappings":"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"}
|
|
@@ -119,6 +119,10 @@ var utils = (({ strapi })=>{
|
|
|
119
119
|
filters: mappers.graphQLFiltersToStrapiQuery(filters, contentType)
|
|
120
120
|
});
|
|
121
121
|
}
|
|
122
|
+
// GraphQL SortArg defaults to `[]`; omit meaningless sort so join-table UI order is preserved.
|
|
123
|
+
if (!utils$1.hasSort(newArgs.sort)) {
|
|
124
|
+
delete newArgs.sort;
|
|
125
|
+
}
|
|
122
126
|
return newArgs;
|
|
123
127
|
}
|
|
124
128
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../server/src/services/builders/utils.ts"],"sourcesContent":["import { entries, mapValues, omit } from 'lodash/fp';\nimport { idArg, nonNull } from 'nexus';\nimport { pagination } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nconst { withDefaultPagination } = pagination;\n\ntype ContentTypeArgsOptions = {\n multiple?: boolean;\n isNested?: boolean;\n};\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getService } = strapi.plugin('graphql');\n\n return {\n getContentTypeArgs(\n contentType: Struct.Schema,\n { multiple = true, isNested = false }: ContentTypeArgsOptions = {}\n ) {\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const { modelType } = contentType;\n\n // Components\n if (modelType === 'component') {\n if (!multiple) return {};\n\n return {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n }\n\n const { kind } = contentType;\n\n // On non–D&P roots (e.g. User) these args do not version the parent document, but they\n // are required: association resolvers inherit them into nested D&P relations (see\n // builders/resolvers/association.ts + rootQueryArgsByPath). Omitting them broke\n // draft/published control for populated relations (e.g. github.com/strapi/strapi/issues/25746).\n //\n // Future direction: add `status` / `hasPublishedVersion` / `publicationFilter` to GraphQL args on nested\n // to-many (and to-one) relation fields when the *target* content type has D&P, instead\n // of relying on root-level “context” that is easy to misread (args on User affecting\n // Articles). That would allow different publication settings per relation branch, match\n // how developers think about the graph, and let non-DP roots drop these args if desired.\n // Would require extending getContentTypeArgs(..., { isNested: true }) for D&P targets\n // and teaching association.ts to honor args.publicationFilter on nested fields, not\n // only root inheritance.\n const publicationArgs = {\n status: args.PublicationStatusArg,\n // Deprecated: prefer `publicationFilter` (enum cohorts).\n hasPublishedVersion: args.HasPublishedVersionArg,\n publicationFilter: args.PublicationFilterArg,\n };\n\n // Collection Types\n if (kind === 'collectionType') {\n if (!multiple) {\n return {\n documentId: nonNull(idArg()),\n ...publicationArgs,\n };\n }\n\n const params: Record<string, unknown> = {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n\n if (!isNested) {\n Object.assign(params, publicationArgs);\n }\n\n return params;\n }\n\n // Single Types\n if (kind === 'singleType') {\n const params: Record<string, unknown> = {};\n\n if (!isNested) {\n Object.assign(params, publicationArgs);\n }\n\n return params;\n }\n },\n\n /**\n * Filter an object entries and keep only those whose value is a unique scalar attribute\n */\n getUniqueScalarAttributes(attributes: Struct.SchemaAttributes) {\n const { isStrapiScalar } = getService('utils').attributes;\n\n const uniqueAttributes = entries(attributes).filter(\n ([, attribute]) => isStrapiScalar(attribute) && 'unique' in attribute && attribute.unique\n );\n\n return Object.fromEntries(uniqueAttributes);\n },\n\n /**\n * Map each value from an attribute to a FiltersInput type name\n * @param {object} attributes - The attributes object to transform\n * @return {Object<string, string>}\n */\n scalarAttributesToFiltersMap(attributes: Struct.SchemaAttributes) {\n return mapValues((attribute) => {\n const { mappers, naming } = getService('utils');\n\n const gqlScalar = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n return naming.getScalarFilterInputTypeName(gqlScalar);\n }, attributes);\n },\n\n /**\n * Apply basic transform to GQL args\n */\n transformArgs(\n args: any,\n {\n contentType,\n usePagination = false,\n }: { contentType: Struct.ContentTypeSchema; usePagination?: boolean }\n ) {\n const { mappers } = getService('utils');\n const { config } = strapi.plugin('graphql');\n const { pagination = {}, filters = {} } = args;\n\n // Init\n const newArgs = omit(['pagination', 'filters'], args);\n\n // Pagination\n if (usePagination) {\n const defaultLimit: number = config('defaultLimit');\n const maxLimit: number = config('maxLimit');\n\n Object.assign(\n newArgs,\n withDefaultPagination(pagination, {\n maxLimit,\n defaults: {\n offset: { limit: defaultLimit },\n page: { pageSize: defaultLimit },\n },\n })\n );\n }\n\n // Filters\n if (args.filters) {\n Object.assign(newArgs, {\n filters: mappers.graphQLFiltersToStrapiQuery(filters, contentType),\n });\n }\n\n return newArgs;\n },\n };\n};\n"],"names":["withDefaultPagination","pagination","strapi","service","getService","plugin","getContentTypeArgs","contentType","multiple","isNested","naming","args","modelType","filters","getFiltersInputTypeName","PaginationArg","sort","SortArg","kind","publicationArgs","status","PublicationStatusArg","hasPublishedVersion","HasPublishedVersionArg","publicationFilter","PublicationFilterArg","documentId","nonNull","idArg","params","Object","assign","getUniqueScalarAttributes","attributes","isStrapiScalar","uniqueAttributes","entries","filter","attribute","unique","fromEntries","scalarAttributesToFiltersMap","mapValues","mappers","gqlScalar","strapiScalarToGraphQLScalar","type","getScalarFilterInputTypeName","transformArgs","usePagination","config","newArgs","omit","defaultLimit","maxLimit","defaults","offset","limit","page","pageSize","graphQLFiltersToStrapiQuery"],"mappings":";;;;;;AAKA,MAAM,EAAEA,qBAAqB,EAAE,GAAGC,kBAAAA;AAOlC,YAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACjD,IAAA,MAAM,EAAEC,OAAAA,EAASC,UAAU,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;IAE9C,OAAO;QACLC,kBAAAA,CAAAA,CACEC,WAA0B,EAC1B,EAAEC,QAAAA,GAAW,IAAI,EAAEC,QAAAA,GAAW,KAAK,EAA0B,GAAG,EAAE,EAAA;AAElE,YAAA,MAAM,EAAEC,MAAM,EAAE,GAAGN,UAAAA,CAAW,OAAA,CAAA;AAC9B,YAAA,MAAM,EAAEO,IAAI,EAAE,GAAGP,UAAAA,CAAW,WAAA,CAAA;YAE5B,MAAM,EAAEQ,SAAS,EAAE,GAAGL,WAAAA;;AAGtB,YAAA,IAAIK,cAAc,WAAA,EAAa;gBAC7B,IAAI,CAACJ,QAAAA,EAAU,OAAO,EAAC;gBAEvB,OAAO;oBACLK,OAAAA,EAASH,MAAAA,CAAOI,uBAAuB,CAACP,WAAAA,CAAAA;AACxCN,oBAAAA,UAAAA,EAAYU,KAAKI,aAAa;AAC9BC,oBAAAA,IAAAA,EAAML,KAAKM;AACb,iBAAA;AACF,YAAA;YAEA,MAAM,EAAEC,IAAI,EAAE,GAAGX,WAAAA;;;;;;;;;;;;;;AAejB,YAAA,MAAMY,eAAAA,GAAkB;AACtBC,gBAAAA,MAAAA,EAAQT,KAAKU,oBAAoB;;AAEjCC,gBAAAA,mBAAAA,EAAqBX,KAAKY,sBAAsB;AAChDC,gBAAAA,iBAAAA,EAAmBb,KAAKc;AAC1B,aAAA;;AAGA,YAAA,IAAIP,SAAS,gBAAA,EAAkB;AAC7B,gBAAA,IAAI,CAACV,QAAAA,EAAU;oBACb,OAAO;AACLkB,wBAAAA,UAAAA,EAAYC,aAAAA,CAAQC,WAAAA,EAAAA,CAAAA;AACpB,wBAAA,GAAGT;AACL,qBAAA;AACF,gBAAA;AAEA,gBAAA,MAAMU,MAAAA,GAAkC;oBACtChB,OAAAA,EAASH,MAAAA,CAAOI,uBAAuB,CAACP,WAAAA,CAAAA;AACxCN,oBAAAA,UAAAA,EAAYU,KAAKI,aAAa;AAC9BC,oBAAAA,IAAAA,EAAML,KAAKM;AACb,iBAAA;AAEA,gBAAA,IAAI,CAACR,QAAAA,EAAU;oBACbqB,MAAAA,CAAOC,MAAM,CAACF,MAAAA,EAAQV,eAAAA,CAAAA;AACxB,gBAAA;gBAEA,OAAOU,MAAAA;AACT,YAAA;;AAGA,YAAA,IAAIX,SAAS,YAAA,EAAc;AACzB,gBAAA,MAAMW,SAAkC,EAAC;AAEzC,gBAAA,IAAI,CAACpB,QAAAA,EAAU;oBACbqB,MAAAA,CAAOC,MAAM,CAACF,MAAAA,EAAQV,eAAAA,CAAAA;AACxB,gBAAA;gBAEA,OAAOU,MAAAA;AACT,YAAA;AACF,QAAA,CAAA;AAEA;;AAEC,QACDG,2BAA0BC,UAAmC,EAAA;AAC3D,YAAA,MAAM,EAAEC,cAAc,EAAE,GAAG9B,UAAAA,CAAW,SAAS6B,UAAU;AAEzD,YAAA,MAAME,gBAAAA,GAAmBC,UAAAA,CAAQH,UAAAA,CAAAA,CAAYI,MAAM,CACjD,CAAC,GAAGC,SAAAA,CAAU,GAAKJ,cAAAA,CAAeI,SAAAA,CAAAA,IAAc,QAAA,IAAYA,SAAAA,IAAaA,UAAUC,MAAM,CAAA;YAG3F,OAAOT,MAAAA,CAAOU,WAAW,CAACL,gBAAAA,CAAAA;AAC5B,QAAA,CAAA;AAEA;;;;AAIC,QACDM,8BAA6BR,UAAmC,EAAA;AAC9D,YAAA,OAAOS,aAAU,CAACJ,SAAAA,GAAAA;AAChB,gBAAA,MAAM,EAAEK,OAAO,EAAEjC,MAAM,EAAE,GAAGN,UAAAA,CAAW,OAAA,CAAA;AAEvC,gBAAA,MAAMwC,SAAAA,GAAYD,OAAAA,CAAQE,2BAA2B,CAACP,UAAUQ,IAAI,CAAA;gBAEpE,OAAOpC,MAAAA,CAAOqC,4BAA4B,CAACH,SAAAA,CAAAA;YAC7C,CAAA,EAAGX,UAAAA,CAAAA;AACL,QAAA,CAAA;AAEA;;QAGAe,aAAAA,CAAAA,CACErC,IAAS,EACT,EACEJ,WAAW,EACX0C,aAAAA,GAAgB,KAAK,EAC8C,EAAA;AAErE,YAAA,MAAM,EAAEN,OAAO,EAAE,GAAGvC,UAAAA,CAAW,OAAA,CAAA;AAC/B,YAAA,MAAM,EAAE8C,MAAM,EAAE,GAAGhD,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;YACjC,MAAM,EAAEJ,aAAa,EAAE,EAAEY,OAAAA,GAAU,EAAE,EAAE,GAAGF,IAAAA;;AAG1C,YAAA,MAAMwC,UAAUC,OAAAA,CAAK;AAAC,gBAAA,YAAA;AAAc,gBAAA;aAAU,EAAEzC,IAAAA,CAAAA;;AAGhD,YAAA,IAAIsC,aAAAA,EAAe;AACjB,gBAAA,MAAMI,eAAuBH,MAAAA,CAAO,cAAA,CAAA;AACpC,gBAAA,MAAMI,WAAmBJ,MAAAA,CAAO,UAAA,CAAA;AAEhCpB,gBAAAA,MAAAA,CAAOC,MAAM,CACXoB,OAAAA,EACAnD,qBAAAA,CAAsBC,UAAAA,EAAY;AAChCqD,oBAAAA,QAAAA;oBACAC,QAAAA,EAAU;wBACRC,MAAAA,EAAQ;4BAAEC,KAAAA,EAAOJ;AAAa,yBAAA;wBAC9BK,IAAAA,EAAM;4BAAEC,QAAAA,EAAUN;AAAa;AACjC;AACF,iBAAA,CAAA,CAAA;AAEJ,YAAA;;YAGA,IAAI1C,IAAAA,CAAKE,OAAO,EAAE;gBAChBiB,MAAAA,CAAOC,MAAM,CAACoB,OAAAA,EAAS;oBACrBtC,OAAAA,EAAS8B,OAAAA,CAAQiB,2BAA2B,CAAC/C,OAAAA,EAASN,WAAAA;AACxD,iBAAA,CAAA;AACF,YAAA;YAEA,
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../server/src/services/builders/utils.ts"],"sourcesContent":["import { entries, mapValues, omit } from 'lodash/fp';\nimport { idArg, nonNull } from 'nexus';\nimport { hasSort, pagination } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nconst { withDefaultPagination } = pagination;\n\ntype ContentTypeArgsOptions = {\n multiple?: boolean;\n isNested?: boolean;\n};\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getService } = strapi.plugin('graphql');\n\n return {\n getContentTypeArgs(\n contentType: Struct.Schema,\n { multiple = true, isNested = false }: ContentTypeArgsOptions = {}\n ) {\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const { modelType } = contentType;\n\n // Components\n if (modelType === 'component') {\n if (!multiple) return {};\n\n return {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n }\n\n const { kind } = contentType;\n\n // On non–D&P roots (e.g. User) these args do not version the parent document, but they\n // are required: association resolvers inherit them into nested D&P relations (see\n // builders/resolvers/association.ts + rootQueryArgsByPath). Omitting them broke\n // draft/published control for populated relations (e.g. github.com/strapi/strapi/issues/25746).\n //\n // Future direction: add `status` / `hasPublishedVersion` / `publicationFilter` to GraphQL args on nested\n // to-many (and to-one) relation fields when the *target* content type has D&P, instead\n // of relying on root-level “context” that is easy to misread (args on User affecting\n // Articles). That would allow different publication settings per relation branch, match\n // how developers think about the graph, and let non-DP roots drop these args if desired.\n // Would require extending getContentTypeArgs(..., { isNested: true }) for D&P targets\n // and teaching association.ts to honor args.publicationFilter on nested fields, not\n // only root inheritance.\n const publicationArgs = {\n status: args.PublicationStatusArg,\n // Deprecated: prefer `publicationFilter` (enum cohorts).\n hasPublishedVersion: args.HasPublishedVersionArg,\n publicationFilter: args.PublicationFilterArg,\n };\n\n // Collection Types\n if (kind === 'collectionType') {\n if (!multiple) {\n return {\n documentId: nonNull(idArg()),\n ...publicationArgs,\n };\n }\n\n const params: Record<string, unknown> = {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n\n if (!isNested) {\n Object.assign(params, publicationArgs);\n }\n\n return params;\n }\n\n // Single Types\n if (kind === 'singleType') {\n const params: Record<string, unknown> = {};\n\n if (!isNested) {\n Object.assign(params, publicationArgs);\n }\n\n return params;\n }\n },\n\n /**\n * Filter an object entries and keep only those whose value is a unique scalar attribute\n */\n getUniqueScalarAttributes(attributes: Struct.SchemaAttributes) {\n const { isStrapiScalar } = getService('utils').attributes;\n\n const uniqueAttributes = entries(attributes).filter(\n ([, attribute]) => isStrapiScalar(attribute) && 'unique' in attribute && attribute.unique\n );\n\n return Object.fromEntries(uniqueAttributes);\n },\n\n /**\n * Map each value from an attribute to a FiltersInput type name\n * @param {object} attributes - The attributes object to transform\n * @return {Object<string, string>}\n */\n scalarAttributesToFiltersMap(attributes: Struct.SchemaAttributes) {\n return mapValues((attribute) => {\n const { mappers, naming } = getService('utils');\n\n const gqlScalar = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n return naming.getScalarFilterInputTypeName(gqlScalar);\n }, attributes);\n },\n\n /**\n * Apply basic transform to GQL args\n */\n transformArgs(\n args: any,\n {\n contentType,\n usePagination = false,\n }: { contentType: Struct.ContentTypeSchema; usePagination?: boolean }\n ) {\n const { mappers } = getService('utils');\n const { config } = strapi.plugin('graphql');\n const { pagination = {}, filters = {} } = args;\n\n // Init\n const newArgs = omit(['pagination', 'filters'], args);\n\n // Pagination\n if (usePagination) {\n const defaultLimit: number = config('defaultLimit');\n const maxLimit: number = config('maxLimit');\n\n Object.assign(\n newArgs,\n withDefaultPagination(pagination, {\n maxLimit,\n defaults: {\n offset: { limit: defaultLimit },\n page: { pageSize: defaultLimit },\n },\n })\n );\n }\n\n // Filters\n if (args.filters) {\n Object.assign(newArgs, {\n filters: mappers.graphQLFiltersToStrapiQuery(filters, contentType),\n });\n }\n\n // GraphQL SortArg defaults to `[]`; omit meaningless sort so join-table UI order is preserved.\n if (!hasSort(newArgs.sort)) {\n delete newArgs.sort;\n }\n\n return newArgs;\n },\n };\n};\n"],"names":["withDefaultPagination","pagination","strapi","service","getService","plugin","getContentTypeArgs","contentType","multiple","isNested","naming","args","modelType","filters","getFiltersInputTypeName","PaginationArg","sort","SortArg","kind","publicationArgs","status","PublicationStatusArg","hasPublishedVersion","HasPublishedVersionArg","publicationFilter","PublicationFilterArg","documentId","nonNull","idArg","params","Object","assign","getUniqueScalarAttributes","attributes","isStrapiScalar","uniqueAttributes","entries","filter","attribute","unique","fromEntries","scalarAttributesToFiltersMap","mapValues","mappers","gqlScalar","strapiScalarToGraphQLScalar","type","getScalarFilterInputTypeName","transformArgs","usePagination","config","newArgs","omit","defaultLimit","maxLimit","defaults","offset","limit","page","pageSize","graphQLFiltersToStrapiQuery","hasSort"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { omit, mapValues, entries } from 'lodash/fp';
|
|
2
2
|
import { nonNull, idArg } from 'nexus';
|
|
3
|
-
import { pagination } from '@strapi/utils';
|
|
3
|
+
import { pagination, hasSort } from '@strapi/utils';
|
|
4
4
|
|
|
5
5
|
const { withDefaultPagination } = pagination;
|
|
6
6
|
var utils = (({ strapi })=>{
|
|
@@ -117,6 +117,10 @@ var utils = (({ strapi })=>{
|
|
|
117
117
|
filters: mappers.graphQLFiltersToStrapiQuery(filters, contentType)
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
|
+
// GraphQL SortArg defaults to `[]`; omit meaningless sort so join-table UI order is preserved.
|
|
121
|
+
if (!hasSort(newArgs.sort)) {
|
|
122
|
+
delete newArgs.sort;
|
|
123
|
+
}
|
|
120
124
|
return newArgs;
|
|
121
125
|
}
|
|
122
126
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","sources":["../../../../server/src/services/builders/utils.ts"],"sourcesContent":["import { entries, mapValues, omit } from 'lodash/fp';\nimport { idArg, nonNull } from 'nexus';\nimport { pagination } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nconst { withDefaultPagination } = pagination;\n\ntype ContentTypeArgsOptions = {\n multiple?: boolean;\n isNested?: boolean;\n};\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getService } = strapi.plugin('graphql');\n\n return {\n getContentTypeArgs(\n contentType: Struct.Schema,\n { multiple = true, isNested = false }: ContentTypeArgsOptions = {}\n ) {\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const { modelType } = contentType;\n\n // Components\n if (modelType === 'component') {\n if (!multiple) return {};\n\n return {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n }\n\n const { kind } = contentType;\n\n // On non–D&P roots (e.g. User) these args do not version the parent document, but they\n // are required: association resolvers inherit them into nested D&P relations (see\n // builders/resolvers/association.ts + rootQueryArgsByPath). Omitting them broke\n // draft/published control for populated relations (e.g. github.com/strapi/strapi/issues/25746).\n //\n // Future direction: add `status` / `hasPublishedVersion` / `publicationFilter` to GraphQL args on nested\n // to-many (and to-one) relation fields when the *target* content type has D&P, instead\n // of relying on root-level “context” that is easy to misread (args on User affecting\n // Articles). That would allow different publication settings per relation branch, match\n // how developers think about the graph, and let non-DP roots drop these args if desired.\n // Would require extending getContentTypeArgs(..., { isNested: true }) for D&P targets\n // and teaching association.ts to honor args.publicationFilter on nested fields, not\n // only root inheritance.\n const publicationArgs = {\n status: args.PublicationStatusArg,\n // Deprecated: prefer `publicationFilter` (enum cohorts).\n hasPublishedVersion: args.HasPublishedVersionArg,\n publicationFilter: args.PublicationFilterArg,\n };\n\n // Collection Types\n if (kind === 'collectionType') {\n if (!multiple) {\n return {\n documentId: nonNull(idArg()),\n ...publicationArgs,\n };\n }\n\n const params: Record<string, unknown> = {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n\n if (!isNested) {\n Object.assign(params, publicationArgs);\n }\n\n return params;\n }\n\n // Single Types\n if (kind === 'singleType') {\n const params: Record<string, unknown> = {};\n\n if (!isNested) {\n Object.assign(params, publicationArgs);\n }\n\n return params;\n }\n },\n\n /**\n * Filter an object entries and keep only those whose value is a unique scalar attribute\n */\n getUniqueScalarAttributes(attributes: Struct.SchemaAttributes) {\n const { isStrapiScalar } = getService('utils').attributes;\n\n const uniqueAttributes = entries(attributes).filter(\n ([, attribute]) => isStrapiScalar(attribute) && 'unique' in attribute && attribute.unique\n );\n\n return Object.fromEntries(uniqueAttributes);\n },\n\n /**\n * Map each value from an attribute to a FiltersInput type name\n * @param {object} attributes - The attributes object to transform\n * @return {Object<string, string>}\n */\n scalarAttributesToFiltersMap(attributes: Struct.SchemaAttributes) {\n return mapValues((attribute) => {\n const { mappers, naming } = getService('utils');\n\n const gqlScalar = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n return naming.getScalarFilterInputTypeName(gqlScalar);\n }, attributes);\n },\n\n /**\n * Apply basic transform to GQL args\n */\n transformArgs(\n args: any,\n {\n contentType,\n usePagination = false,\n }: { contentType: Struct.ContentTypeSchema; usePagination?: boolean }\n ) {\n const { mappers } = getService('utils');\n const { config } = strapi.plugin('graphql');\n const { pagination = {}, filters = {} } = args;\n\n // Init\n const newArgs = omit(['pagination', 'filters'], args);\n\n // Pagination\n if (usePagination) {\n const defaultLimit: number = config('defaultLimit');\n const maxLimit: number = config('maxLimit');\n\n Object.assign(\n newArgs,\n withDefaultPagination(pagination, {\n maxLimit,\n defaults: {\n offset: { limit: defaultLimit },\n page: { pageSize: defaultLimit },\n },\n })\n );\n }\n\n // Filters\n if (args.filters) {\n Object.assign(newArgs, {\n filters: mappers.graphQLFiltersToStrapiQuery(filters, contentType),\n });\n }\n\n return newArgs;\n },\n };\n};\n"],"names":["withDefaultPagination","pagination","strapi","service","getService","plugin","getContentTypeArgs","contentType","multiple","isNested","naming","args","modelType","filters","getFiltersInputTypeName","PaginationArg","sort","SortArg","kind","publicationArgs","status","PublicationStatusArg","hasPublishedVersion","HasPublishedVersionArg","publicationFilter","PublicationFilterArg","documentId","nonNull","idArg","params","Object","assign","getUniqueScalarAttributes","attributes","isStrapiScalar","uniqueAttributes","entries","filter","attribute","unique","fromEntries","scalarAttributesToFiltersMap","mapValues","mappers","gqlScalar","strapiScalarToGraphQLScalar","type","getScalarFilterInputTypeName","transformArgs","usePagination","config","newArgs","omit","defaultLimit","maxLimit","defaults","offset","limit","page","pageSize","graphQLFiltersToStrapiQuery"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../../server/src/services/builders/utils.ts"],"sourcesContent":["import { entries, mapValues, omit } from 'lodash/fp';\nimport { idArg, nonNull } from 'nexus';\nimport { hasSort, pagination } from '@strapi/utils';\nimport type { Core, Struct } from '@strapi/types';\n\nconst { withDefaultPagination } = pagination;\n\ntype ContentTypeArgsOptions = {\n multiple?: boolean;\n isNested?: boolean;\n};\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getService } = strapi.plugin('graphql');\n\n return {\n getContentTypeArgs(\n contentType: Struct.Schema,\n { multiple = true, isNested = false }: ContentTypeArgsOptions = {}\n ) {\n const { naming } = getService('utils');\n const { args } = getService('internals');\n\n const { modelType } = contentType;\n\n // Components\n if (modelType === 'component') {\n if (!multiple) return {};\n\n return {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n }\n\n const { kind } = contentType;\n\n // On non–D&P roots (e.g. User) these args do not version the parent document, but they\n // are required: association resolvers inherit them into nested D&P relations (see\n // builders/resolvers/association.ts + rootQueryArgsByPath). Omitting them broke\n // draft/published control for populated relations (e.g. github.com/strapi/strapi/issues/25746).\n //\n // Future direction: add `status` / `hasPublishedVersion` / `publicationFilter` to GraphQL args on nested\n // to-many (and to-one) relation fields when the *target* content type has D&P, instead\n // of relying on root-level “context” that is easy to misread (args on User affecting\n // Articles). That would allow different publication settings per relation branch, match\n // how developers think about the graph, and let non-DP roots drop these args if desired.\n // Would require extending getContentTypeArgs(..., { isNested: true }) for D&P targets\n // and teaching association.ts to honor args.publicationFilter on nested fields, not\n // only root inheritance.\n const publicationArgs = {\n status: args.PublicationStatusArg,\n // Deprecated: prefer `publicationFilter` (enum cohorts).\n hasPublishedVersion: args.HasPublishedVersionArg,\n publicationFilter: args.PublicationFilterArg,\n };\n\n // Collection Types\n if (kind === 'collectionType') {\n if (!multiple) {\n return {\n documentId: nonNull(idArg()),\n ...publicationArgs,\n };\n }\n\n const params: Record<string, unknown> = {\n filters: naming.getFiltersInputTypeName(contentType),\n pagination: args.PaginationArg,\n sort: args.SortArg,\n };\n\n if (!isNested) {\n Object.assign(params, publicationArgs);\n }\n\n return params;\n }\n\n // Single Types\n if (kind === 'singleType') {\n const params: Record<string, unknown> = {};\n\n if (!isNested) {\n Object.assign(params, publicationArgs);\n }\n\n return params;\n }\n },\n\n /**\n * Filter an object entries and keep only those whose value is a unique scalar attribute\n */\n getUniqueScalarAttributes(attributes: Struct.SchemaAttributes) {\n const { isStrapiScalar } = getService('utils').attributes;\n\n const uniqueAttributes = entries(attributes).filter(\n ([, attribute]) => isStrapiScalar(attribute) && 'unique' in attribute && attribute.unique\n );\n\n return Object.fromEntries(uniqueAttributes);\n },\n\n /**\n * Map each value from an attribute to a FiltersInput type name\n * @param {object} attributes - The attributes object to transform\n * @return {Object<string, string>}\n */\n scalarAttributesToFiltersMap(attributes: Struct.SchemaAttributes) {\n return mapValues((attribute) => {\n const { mappers, naming } = getService('utils');\n\n const gqlScalar = mappers.strapiScalarToGraphQLScalar(attribute.type);\n\n return naming.getScalarFilterInputTypeName(gqlScalar);\n }, attributes);\n },\n\n /**\n * Apply basic transform to GQL args\n */\n transformArgs(\n args: any,\n {\n contentType,\n usePagination = false,\n }: { contentType: Struct.ContentTypeSchema; usePagination?: boolean }\n ) {\n const { mappers } = getService('utils');\n const { config } = strapi.plugin('graphql');\n const { pagination = {}, filters = {} } = args;\n\n // Init\n const newArgs = omit(['pagination', 'filters'], args);\n\n // Pagination\n if (usePagination) {\n const defaultLimit: number = config('defaultLimit');\n const maxLimit: number = config('maxLimit');\n\n Object.assign(\n newArgs,\n withDefaultPagination(pagination, {\n maxLimit,\n defaults: {\n offset: { limit: defaultLimit },\n page: { pageSize: defaultLimit },\n },\n })\n );\n }\n\n // Filters\n if (args.filters) {\n Object.assign(newArgs, {\n filters: mappers.graphQLFiltersToStrapiQuery(filters, contentType),\n });\n }\n\n // GraphQL SortArg defaults to `[]`; omit meaningless sort so join-table UI order is preserved.\n if (!hasSort(newArgs.sort)) {\n delete newArgs.sort;\n }\n\n return newArgs;\n },\n };\n};\n"],"names":["withDefaultPagination","pagination","strapi","service","getService","plugin","getContentTypeArgs","contentType","multiple","isNested","naming","args","modelType","filters","getFiltersInputTypeName","PaginationArg","sort","SortArg","kind","publicationArgs","status","PublicationStatusArg","hasPublishedVersion","HasPublishedVersionArg","publicationFilter","PublicationFilterArg","documentId","nonNull","idArg","params","Object","assign","getUniqueScalarAttributes","attributes","isStrapiScalar","uniqueAttributes","entries","filter","attribute","unique","fromEntries","scalarAttributesToFiltersMap","mapValues","mappers","gqlScalar","strapiScalarToGraphQLScalar","type","getScalarFilterInputTypeName","transformArgs","usePagination","config","newArgs","omit","defaultLimit","maxLimit","defaults","offset","limit","page","pageSize","graphQLFiltersToStrapiQuery","hasSort"],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@ var nexus = require('nexus');
|
|
|
4
4
|
var fp = require('lodash/fp');
|
|
5
5
|
var shadowCrudManager = require('./shadow-crud-manager.js');
|
|
6
6
|
|
|
7
|
-
function
|
|
7
|
+
function _interopNamespace(e) {
|
|
8
|
+
if (e && e.__esModule) return e;
|
|
8
9
|
var n = Object.create(null);
|
|
9
10
|
if (e) {
|
|
10
11
|
Object.keys(e).forEach(function (k) {
|
|
@@ -21,7 +22,7 @@ function _interopNamespaceDefault(e) {
|
|
|
21
22
|
return Object.freeze(n);
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
var nexus__namespace = /*#__PURE__*/
|
|
25
|
+
var nexus__namespace = /*#__PURE__*/_interopNamespace(nexus);
|
|
25
26
|
|
|
26
27
|
const getDefaultState = ()=>({
|
|
27
28
|
types: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension.js","sources":["../../../../server/src/services/extension/extension.ts"],"sourcesContent":["import * as nexus from 'nexus';\nimport { merge } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport type * as Nexus from 'nexus';\n\nimport createShadowCRUDManager from './shadow-crud-manager';\n\nexport type Configuration = {\n types?: NexusGen[];\n typeDefs?: string;\n resolvers?: object;\n resolversConfig?: object;\n plugins?: Nexus.PluginConfig[];\n};\n\nexport type ConfigurationFactory = (options: {\n strapi: Core.Strapi;\n nexus: typeof nexus;\n typeRegistry: object;\n}) => Configuration;\n\nexport type Extension = {\n types: NexusGen[];\n typeDefs: string[];\n resolvers: object;\n resolversConfig: object;\n plugins: Nexus.PluginConfig[];\n};\n\nconst getDefaultState = (): Extension => ({\n types: [],\n typeDefs: [],\n resolvers: {},\n resolversConfig: {},\n plugins: [],\n});\n\nconst createExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const configs: Array<Configuration | ConfigurationFactory> = [];\n\n return {\n shadowCRUD: createShadowCRUDManager(),\n\n /**\n * Register a new extension configuration\n */\n use(configuration: Configuration | ConfigurationFactory) {\n configs.push(configuration);\n\n return this;\n },\n\n /**\n * Convert the registered configuration into a single extension object & return it\n */\n generate({ typeRegistry }: { typeRegistry: object }) {\n const resolveConfig = (config: Configuration | ConfigurationFactory): Configuration => {\n return typeof config === 'function' ? config({ strapi, nexus, typeRegistry }) : config;\n };\n\n // Evaluate & merge every registered configuration object, then return the result\n return configs.reduce((acc, configuration) => {\n const { types, typeDefs, resolvers, resolversConfig, plugins } =\n resolveConfig(configuration);\n\n // Register type definitions\n if (typeof typeDefs === 'string') {\n acc.typeDefs.push(typeDefs);\n }\n\n // Register nexus types\n if (Array.isArray(types)) {\n acc.types.push(...types);\n }\n\n // Register nexus plugins\n if (Array.isArray(plugins)) {\n acc.plugins.push(...plugins);\n }\n\n // Register resolvers\n if (typeof resolvers === 'object') {\n acc.resolvers = merge(acc.resolvers, resolvers);\n }\n\n // Register resolvers configuration\n if (typeof resolversConfig === 'object') {\n // TODO: smarter merge for auth, middlewares & policies\n acc.resolversConfig = merge(resolversConfig, acc.resolversConfig);\n }\n\n return acc;\n }, getDefaultState());\n },\n };\n};\n\nexport default createExtension;\n"],"names":["getDefaultState","types","typeDefs","resolvers","resolversConfig","plugins","createExtension","strapi","configs","shadowCRUD","createShadowCRUDManager","use","configuration","push","generate","typeRegistry","resolveConfig","config","nexus","reduce","acc","Array","isArray","merge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,eAAAA,GAAkB,KAAkB;AACxCC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,QAAAA,EAAU,EAAE;AACZC,QAAAA,SAAAA,EAAW,EAAC;AACZC,QAAAA,eAAAA,EAAiB,EAAC;AAClBC,QAAAA,OAAAA,EAAS;KACX,CAAA;AAEA,MAAMC,eAAAA,GAAkB,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAC1D,IAAA,MAAMC,UAAuD,EAAE;IAE/D,OAAO;QACLC,UAAAA,EAAYC,iBAAAA,EAAAA;AAEZ;;AAEC,QACDC,KAAIC,aAAmD,EAAA;AACrDJ,YAAAA,OAAAA,CAAQK,IAAI,CAACD,aAAAA,CAAAA;AAEb,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEA;;QAGAE,QAAAA,CAAAA,CAAS,EAAEC,YAAY,EAA4B,EAAA;AACjD,YAAA,MAAMC,gBAAgB,CAACC,MAAAA,GAAAA;gBACrB,OAAO,OAAOA,MAAAA,KAAW,UAAA,GAAaA,MAAAA,CAAO;AAAEV,oBAAAA,MAAAA;AAAQW,2BAAAA,gBAAAA;AAAOH,oBAAAA;iBAAa,CAAA,GAAKE,MAAAA;AAClF,YAAA,CAAA;;AAGA,YAAA,OAAOT,OAAAA,CAAQW,MAAM,CAAC,CAACC,GAAAA,EAAKR,aAAAA,GAAAA;AAC1B,gBAAA,MAAM,EAAEX,KAAK,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAE,GAC5DW,aAAAA,CAAcJ,aAAAA,CAAAA;;gBAGhB,IAAI,OAAOV,aAAa,QAAA,EAAU;oBAChCkB,GAAAA,CAAIlB,QAAQ,CAACW,IAAI,CAACX,QAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAImB,KAAAA,CAAMC,OAAO,CAACrB,KAAAA,CAAAA,EAAQ;oBACxBmB,GAAAA,CAAInB,KAAK,CAACY,IAAI,CAAA,GAAIZ,KAAAA,CAAAA;AACpB,gBAAA;;gBAGA,IAAIoB,KAAAA,CAAMC,OAAO,CAACjB,OAAAA,CAAAA,EAAU;oBAC1Be,GAAAA,CAAIf,OAAO,CAACQ,IAAI,CAAA,GAAIR,OAAAA,CAAAA;AACtB,gBAAA;;gBAGA,IAAI,OAAOF,cAAc,QAAA,EAAU;AACjCiB,oBAAAA,GAAAA,CAAIjB,SAAS,GAAGoB,QAAAA,CAAMH,GAAAA,CAAIjB,SAAS,EAAEA,SAAAA,CAAAA;AACvC,gBAAA;;gBAGA,IAAI,OAAOC,oBAAoB,QAAA,EAAU;;AAEvCgB,oBAAAA,GAAAA,CAAIhB,eAAe,GAAGmB,QAAAA,CAAMnB,eAAAA,EAAiBgB,IAAIhB,eAAe,CAAA;AAClE,gBAAA;gBAEA,OAAOgB,GAAAA;YACT,CAAA,EAAGpB,eAAAA,EAAAA,CAAAA;AACL,QAAA;AACF,KAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,kBAAkB,EAA4B,MAAM,gBAAgB,CAAC;AAUjG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAA8C,MAAM,KAAK,CAAC;AAUnF,KAAK,oBAAoB,GAAG,WAAW,GAAG;IACxC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrE,CAAC;AAEF,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,kBAAkB,EAA4B,MAAM,gBAAgB,CAAC;AAUjG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAA8C,MAAM,KAAK,CAAC;AAUnF,KAAK,oBAAoB,GAAG,WAAW,GAAG;IACxC,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,IAAI,CAAC,MAAM,KAClB,kBAAkB,CAAC,oBAAoB,CA8EzC,CAAC;AAEF,wBAAsB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,iBAwKlE"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="lodash" />
|
|
2
1
|
import { bootstrap } from './bootstrap';
|
|
3
2
|
declare const _default: {
|
|
4
3
|
config: {
|
|
@@ -28,8 +27,8 @@ declare const _default: {
|
|
|
28
27
|
};
|
|
29
28
|
utils: {
|
|
30
29
|
getContentTypeArgs(contentType: import("@strapi/types/dist/struct").Schema, { multiple, isNested }?: {
|
|
31
|
-
multiple?: boolean
|
|
32
|
-
isNested?: boolean
|
|
30
|
+
multiple?: boolean;
|
|
31
|
+
isNested?: boolean;
|
|
33
32
|
}): Record<string, unknown> | {
|
|
34
33
|
filters: any;
|
|
35
34
|
pagination: any;
|
|
@@ -49,7 +48,7 @@ declare const _default: {
|
|
|
49
48
|
scalarAttributesToFiltersMap(attributes: import("@strapi/types/dist/struct").SchemaAttributes): import("lodash").Dictionary<any>;
|
|
50
49
|
transformArgs(args: any, { contentType, usePagination, }: {
|
|
51
50
|
contentType: import("@strapi/types/dist/struct").ContentTypeSchema;
|
|
52
|
-
usePagination?: boolean
|
|
51
|
+
usePagination?: boolean;
|
|
53
52
|
}): import("lodash").Omit<any, "filters" | "pagination">;
|
|
54
53
|
};
|
|
55
54
|
};
|
|
@@ -135,23 +134,23 @@ declare const _default: {
|
|
|
135
134
|
areMutationsDisabled(): boolean;
|
|
136
135
|
isActionEnabled(action: string): boolean;
|
|
137
136
|
isActionDisabled(action: string): boolean;
|
|
138
|
-
disable(): any;
|
|
139
|
-
disableQueries(): any;
|
|
140
|
-
disableMutations(): any;
|
|
141
|
-
disableAction(action: string): any;
|
|
142
|
-
disableActions(actions?: never[]): any;
|
|
137
|
+
disable(): /*elided*/ any;
|
|
138
|
+
disableQueries(): /*elided*/ any;
|
|
139
|
+
disableMutations(): /*elided*/ any;
|
|
140
|
+
disableAction(action: string): /*elided*/ any;
|
|
141
|
+
disableActions(actions?: never[]): /*elided*/ any;
|
|
143
142
|
field(fieldName: string): {
|
|
144
143
|
isEnabled(): boolean;
|
|
145
144
|
hasInputEnabled(): boolean;
|
|
146
145
|
hasOutputEnabled(): boolean;
|
|
147
146
|
hasFiltersEnabeld(): boolean;
|
|
148
|
-
disable(): any;
|
|
149
|
-
disableOutput(): any;
|
|
150
|
-
disableInput(): any;
|
|
151
|
-
disableFilters(): any;
|
|
147
|
+
disable(): /*elided*/ any;
|
|
148
|
+
disableOutput(): /*elided*/ any;
|
|
149
|
+
disableInput(): /*elided*/ any;
|
|
150
|
+
disableFilters(): /*elided*/ any;
|
|
152
151
|
};
|
|
153
152
|
};
|
|
154
|
-
use(configuration: import("./services/extension/extension").Configuration | import("./services/extension/extension").ConfigurationFactory): any;
|
|
153
|
+
use(configuration: import("./services/extension/extension").Configuration | import("./services/extension/extension").ConfigurationFactory): /*elided*/ any;
|
|
155
154
|
generate({ typeRegistry }: {
|
|
156
155
|
typeRegistry: object;
|
|
157
156
|
}): import("./services/extension/extension").Extension;
|
|
@@ -239,7 +238,7 @@ declare const _default: {
|
|
|
239
238
|
naming: {
|
|
240
239
|
getEnumName: (contentType: import("@strapi/types/dist/struct").Schema, attributeName: string) => string;
|
|
241
240
|
getTypeName: (contentType: import("@strapi/types/dist/struct").Schema, { plurality, }?: {
|
|
242
|
-
plurality?: "singular" | "plural"
|
|
241
|
+
plurality?: "singular" | "plural";
|
|
243
242
|
}) => string;
|
|
244
243
|
getEntityName: (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
245
244
|
getEntityMetaName: (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
@@ -247,28 +246,7 @@ declare const _default: {
|
|
|
247
246
|
getEntityResponseCollectionName: (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
248
247
|
getRelationResponseCollectionName: (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
249
248
|
getComponentName: (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
250
|
-
getComponentNameFromAttribute: (attribute:
|
|
251
|
-
type: "component";
|
|
252
|
-
pluginOptions?: object | undefined;
|
|
253
|
-
searchable?: boolean | undefined;
|
|
254
|
-
conditions?: {
|
|
255
|
-
visible: string | number | boolean | import("json-logic-js").JsonLogicIf | import("json-logic-js").JsonLogicEqual | import("json-logic-js").JsonLogicStrictEqual | import("json-logic-js").JsonLogicNotEqual | import("json-logic-js").JsonLogicStrictNotEqual | import("json-logic-js").JsonLogicNegation | import("json-logic-js").JsonLogicDoubleNegation | import("json-logic-js").AdditionalOperation | import("json-logic-js").JsonLogicVar<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicMissing<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicMissingSome<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicOr<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicAnd<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicGreaterThan<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicGreaterThanOrEqual<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicLessThan<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicLessThanOrEqual<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicMax<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicMin<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicSum<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicDifference<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicProduct<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicQuotient<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicRemainder<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicMap<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicFilter<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicReduce<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicAll<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicNone<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicSome<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicMerge<import("json-logic-js").AdditionalOperation> | {
|
|
256
|
-
in: [import("json-logic-js").RulesLogic<import("json-logic-js").AdditionalOperation>, import("json-logic-js").RulesLogic<import("json-logic-js").AdditionalOperation>[]];
|
|
257
|
-
} | {
|
|
258
|
-
in: [import("json-logic-js").RulesLogic<import("json-logic-js").AdditionalOperation>, import("json-logic-js").RulesLogic<import("json-logic-js").AdditionalOperation>];
|
|
259
|
-
} | import("json-logic-js").JsonLogicCat<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicSubstr<import("json-logic-js").AdditionalOperation> | import("json-logic-js").JsonLogicLog<import("json-logic-js").AdditionalOperation> | null;
|
|
260
|
-
} | undefined;
|
|
261
|
-
column?: Partial<import("@strapi/types/dist/schema/attribute").Column> | undefined;
|
|
262
|
-
component: `${string}.${string}`;
|
|
263
|
-
repeatable?: false | undefined;
|
|
264
|
-
configurable?: boolean | undefined;
|
|
265
|
-
min?: number | undefined;
|
|
266
|
-
max?: number | undefined;
|
|
267
|
-
private?: boolean | undefined;
|
|
268
|
-
required?: boolean | undefined;
|
|
269
|
-
writable?: boolean | undefined;
|
|
270
|
-
visible?: boolean | undefined;
|
|
271
|
-
}) => string;
|
|
249
|
+
getComponentNameFromAttribute: (attribute: import("@strapi/types/dist/schema/attribute").Component) => string;
|
|
272
250
|
getDynamicZoneName: (contentType: import("@strapi/types/dist/struct").Schema, attributeName: string) => string;
|
|
273
251
|
getDynamicZoneInputName: (contentType: import("@strapi/types/dist/struct").Schema, attributeName: string) => string;
|
|
274
252
|
getComponentInputName: (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
@@ -279,10 +257,10 @@ declare const _default: {
|
|
|
279
257
|
getScalarFilterInputTypeName: (scalarType: string) => string;
|
|
280
258
|
getMorphRelationTypeName: (contentType: import("@strapi/types/dist/struct").Schema, attributeName: string) => string;
|
|
281
259
|
buildCustomTypeNameGenerator: (options: {
|
|
282
|
-
prefix?: string
|
|
283
|
-
suffix?: string
|
|
284
|
-
firstLetterCase?: "upper" | "lower"
|
|
285
|
-
plurality?: "
|
|
260
|
+
prefix?: string;
|
|
261
|
+
suffix?: string;
|
|
262
|
+
firstLetterCase?: "upper" | "lower";
|
|
263
|
+
plurality?: "plural" | "singular";
|
|
286
264
|
}) => (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
287
265
|
getFindQueryName: (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
288
266
|
getFindOneQueryName: (contentType: import("@strapi/types/dist/struct").Schema) => string;
|
|
@@ -303,10 +281,8 @@ declare const _default: {
|
|
|
303
281
|
};
|
|
304
282
|
mappers: {
|
|
305
283
|
entityToResponseEntity: (entity: {
|
|
306
|
-
[key: string]: unknown;
|
|
307
|
-
[key: number]: unknown;
|
|
308
|
-
[key: symbol]: unknown;
|
|
309
284
|
id: import("@strapi/types/dist/data").ID;
|
|
285
|
+
[key: keyof any]: unknown;
|
|
310
286
|
}) => {
|
|
311
287
|
id: import("@strapi/types/dist/data").ID;
|
|
312
288
|
attributes: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAQ6jI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAAxsG,CAAC;;;;;;;;;;;;;;;;;;;0BAAg9I,CAAC;0BAAoB,CAAC;mCAA6B,CAAC;6BAAkC,CAAC;uBAA2iB,uDAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAL3gM,wBAIE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-zones.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/builders/dynamic-zones.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamic-zones.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/builders/dynamic-zones.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAY,MAAM,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;yBAIxB,YAAY,OAAO;IAyE/B;;OAEG;2CAEW,MAAM,CAAC,SAAS,CAAC,WAAW,QAClC,MAAM,aACD,MAAM;;AA/EvB,wBAyFE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/builders/entity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/builders/entity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;yBAExB,YAAY,OAAO;IAI/B;;;;OAIG;uCACgC,MAAM,CAAC,WAAW;;AATzD,wBAiCE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/builders/enums.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB
|
|
1
|
+
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/builders/enums.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;;0CAS4C,UAAU,QAAQ,MAAM;;AAUrE,wBAEG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-type.d.ts","sourceRoot":"","sources":["../../../../../../server/src/services/builders/filters/content-type.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"content-type.d.ts","sourceRoot":"","sources":["../../../../../../server/src/services/builders/filters/content-type.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;yBAE3B,YAAY,OAAO;2CA6Da,MAAM,CAAC,iBAAiB;;AA7DxE,wBA2HE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../server/src/services/builders/filters/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../server/src/services/builders/filters/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;yBAE3B,SAAS,OAAO;;;AAAhC,wBAEG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"and.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/and.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"and.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/and.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"between.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/between.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"between.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/between.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contains.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/contains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"contains.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/contains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containsi.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/containsi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"containsi.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/containsi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ends-with.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/ends-with.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"ends-with.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/ends-with.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eq.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/eq.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"eq.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/eq.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;yBAM1B,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;;;WAK1C,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAgBG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eqi.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/eqi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"eqi.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/eqi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gt.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/gt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"gt.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/gt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gte.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/gte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"gte.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/gte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/in.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"in.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/in.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;yBAoD1B,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;;;;;AAAnD,wBACuD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lt.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/lt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"lt.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/lt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lte.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/lte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"lte.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/lte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ne.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/ne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"ne.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/ne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nei.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/nei.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"nei.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/nei.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not-contains.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/not-contains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"not-contains.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/not-contains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not-containsi.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/not-containsi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,
|
|
1
|
+
{"version":3,"file":"not-containsi.d.ts","sourceRoot":"","sources":["../../../../../../../server/src/services/builders/filters/operators/not-containsi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;;;;WAS3B,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,MAAM;;AALjE,wBAQG"}
|