@webiny/api-aco 5.42.2 → 5.42.3-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/createAcoContext.js +1 -1
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.d.ts +2 -1
- package/createAcoGraphQL.js +39 -1
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoModels.d.ts +1 -1
- package/createAcoModels.js +9 -3
- package/createAcoModels.js.map +1 -1
- package/createAcoStorageOperations.d.ts +1 -1
- package/createAcoStorageOperations.js +2 -2
- package/createAcoStorageOperations.js.map +1 -1
- package/folder/createFolderModelModifier.d.ts +36 -0
- package/folder/createFolderModelModifier.js +70 -0
- package/folder/createFolderModelModifier.js.map +1 -0
- package/folder/createFolderTypeDefs.d.ts +7 -0
- package/folder/createFolderTypeDefs.js +177 -0
- package/folder/createFolderTypeDefs.js.map +1 -0
- package/folder/folder.gql.d.ts +2 -1
- package/folder/folder.gql.js +94 -205
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.model.js +10 -1
- package/folder/folder.model.js.map +1 -1
- package/folder/folder.types.d.ts +1 -0
- package/folder/folder.types.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +12 -0
- package/index.js.map +1 -1
- package/package.json +24 -24
package/createAcoContext.js
CHANGED
|
@@ -37,7 +37,7 @@ const setupAcoContext = async (context, setupAcoContextParams) => {
|
|
|
37
37
|
const getTenant = () => {
|
|
38
38
|
return tenancy.getCurrentTenant();
|
|
39
39
|
};
|
|
40
|
-
const storageOperations = (0, _createAcoStorageOperations.createAcoStorageOperations)({
|
|
40
|
+
const storageOperations = await (0, _createAcoStorageOperations.createAcoStorageOperations)({
|
|
41
41
|
/**
|
|
42
42
|
* TODO: We need to figure out a way to pass "cms" from outside (e.g. apps/api/graphql)
|
|
43
43
|
*/
|
package/createAcoContext.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_api","_apiHeadlessCms","_createAcoHooks","_createAcoStorageOperations","_folder","_record","_apps","_record2","_plugins","_FolderLevelPermissions","_CmsEntriesCrudDecorators","_folder2","_createOperationsWrapper","_pickEntryFieldValues","_filter","setupAcoContext","context","setupAcoContextParams","tenancy","security","i18n","getLocale","locale","getContentLocale","WebinyError","getTenant","getCurrentTenant","storageOperations","createAcoStorageOperations","cms","getCmsContext","folderLevelPermissions","FolderLevelPermissions","getIdentity","listIdentityTeams","withoutAuthorization","identity","adminUser","adminUsers","getUser","where","id","hasTeams","teams","length","listTeams","id_in","listPermissions","listAllFolders","params","withModel","createOperationsWrapper","modelName","FOLDER_MODEL_ID","model","response","entries","list","limit","latest","after","sort","items","map","pickEntryFieldValues","cursor","totalCount","hasMoreItems","ex","message","canUseTeams","wcp","canUseFolderLevelPermissions","useFolderLevelPermissions","isAuthorizationEnabled","defaultRecordModel","getModel","SEARCH_RECORD_MODEL_ID","apps","AcoApps","plugins","byType","AcoAppRegisterPlugin","type","plugin","register","app","listAdminUsers","listUsers","aco","folder","createFolderCrudMethods","search","createSearchRecordCrudMethods","filter","createFilterCrudMethods","getApp","name","get","listApps","registerApp","CmsEntriesCrudDecorators","decorate","createAcoContext","ContextPlugin","isHeadlessCmsReady","benchmark","measure","createAcoHooks","exports"],"sources":["createAcoContext.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { createAcoHooks } from \"~/createAcoHooks\";\nimport { createAcoStorageOperations } from \"~/createAcoStorageOperations\";\nimport {\n AcoContext,\n CreateAcoParams,\n Folder,\n IAcoAppRegisterParams,\n ListFoldersParams\n} from \"~/types\";\nimport { createFolderCrudMethods } from \"~/folder/folder.crud\";\nimport { createSearchRecordCrudMethods } from \"~/record/record.crud\";\nimport { AcoApps } from \"./apps\";\nimport { SEARCH_RECORD_MODEL_ID } from \"~/record/record.model\";\nimport { AcoAppRegisterPlugin } from \"~/plugins\";\nimport { FolderLevelPermissions } from \"~/utils/FolderLevelPermissions\";\nimport { CmsEntriesCrudDecorators } from \"~/utils/decorators/CmsEntriesCrudDecorators\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues\";\nimport { createFilterCrudMethods } from \"~/filter/filter.crud\";\n\ninterface CreateAcoContextParams {\n useFolderLevelPermissions?: boolean;\n}\n\nconst setupAcoContext = async (\n context: AcoContext,\n setupAcoContextParams: CreateAcoContextParams\n): Promise<void> => {\n const { tenancy, security, i18n } = context;\n\n const getLocale = (): I18NLocale => {\n const locale = i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in api-aco/plugins/context.ts\",\n \"LOCALE_ERROR\"\n );\n }\n\n return locale;\n };\n\n const getTenant = (): Tenant => {\n return tenancy.getCurrentTenant();\n };\n\n const storageOperations = createAcoStorageOperations({\n /**\n * TODO: We need to figure out a way to pass \"cms\" from outside (e.g. apps/api/graphql)\n */\n cms: context.cms,\n /**\n * TODO: This is required for \"entryFieldFromStorageTransform\" which access plugins from context.\n */\n getCmsContext: () => context,\n security\n });\n\n const folderLevelPermissions = new FolderLevelPermissions({\n getIdentity: () => security.getIdentity(),\n listIdentityTeams: async () => {\n return security.withoutAuthorization(async () => {\n const identity = security.getIdentity();\n if (!identity) {\n return [];\n }\n\n const adminUser = await context.adminUsers.getUser({ where: { id: identity.id } });\n if (!adminUser) {\n return [];\n }\n\n const hasTeams = adminUser.teams && adminUser.teams.length > 0;\n if (hasTeams) {\n return context.security.listTeams({ where: { id_in: adminUser.teams } });\n }\n\n return [];\n });\n },\n listPermissions: () => security.listPermissions(),\n listAllFolders: (params: ListFoldersParams) => {\n // When retrieving a list of all folders, we want to do it in the\n // fastest way and that is by directly using CMS's storage operations.\n const { withModel } = createOperationsWrapper({\n modelName: FOLDER_MODEL_ID,\n cms: context.cms,\n getCmsContext: () => context,\n security\n });\n\n return withModel(async model => {\n try {\n const response = await context.cms.storageOperations.entries.list(model, {\n limit: 10_000,\n where: {\n ...params.where,\n\n // Folders always work with latest entries. We never publish them.\n latest: true\n },\n after: params.after,\n sort: [\"title_ASC\"]\n });\n\n return [\n response.items.map(pickEntryFieldValues<Folder>),\n {\n cursor: response.cursor,\n totalCount: response.totalCount,\n hasMoreItems: response.hasMoreItems\n }\n ];\n } catch (ex) {\n /**\n * Skip throwing an error if the error is related to the search phase execution.\n * This is a temporary solution to avoid breaking the entire system when no entries were ever inserted in the index.\n *\n * TODO: figure out better way to handle this.\n */\n if (ex.message === \"search_phase_execution_exception\") {\n return [\n [],\n {\n cursor: null,\n totalCount: 0,\n hasMoreItems: false\n }\n ];\n }\n throw ex;\n }\n });\n },\n canUseTeams: () => context.wcp.canUseTeams(),\n canUseFolderLevelPermissions: () => {\n if (setupAcoContextParams.useFolderLevelPermissions === false) {\n return false;\n }\n\n return context.wcp.canUseFolderLevelPermissions();\n },\n isAuthorizationEnabled: () => context.security.isAuthorizationEnabled()\n });\n\n const params: CreateAcoParams = {\n getLocale,\n getTenant,\n storageOperations,\n folderLevelPermissions\n };\n\n const defaultRecordModel = await context.security.withoutAuthorization(async () => {\n return context.cms.getModel(SEARCH_RECORD_MODEL_ID);\n });\n\n if (!defaultRecordModel) {\n throw new WebinyError(`There is no default record model in ${SEARCH_RECORD_MODEL_ID}`);\n }\n\n /**\n * First we need to create all the apps.\n */\n const apps = new AcoApps(context, params);\n const plugins = context.plugins.byType<AcoAppRegisterPlugin>(AcoAppRegisterPlugin.type);\n for (const plugin of plugins) {\n await apps.register({\n model: defaultRecordModel,\n ...plugin.app\n });\n }\n\n const listAdminUsers = () => {\n return security.withoutAuthorization(async () => {\n return context.adminUsers.listUsers();\n });\n };\n const listTeams = () => {\n return security.withoutAuthorization(async () => {\n return context.security.listTeams();\n });\n };\n\n context.aco = {\n folder: createFolderCrudMethods({\n ...params,\n listAdminUsers,\n listTeams\n }),\n search: createSearchRecordCrudMethods(params),\n folderLevelPermissions,\n filter: createFilterCrudMethods(params),\n apps,\n getApp: (name: string) => apps.get(name),\n listApps: () => apps.list(),\n registerApp: async (params: IAcoAppRegisterParams) => {\n return apps.register({\n model: defaultRecordModel,\n ...params\n });\n }\n };\n\n if (context.wcp.canUseFolderLevelPermissions()) {\n new CmsEntriesCrudDecorators({ context }).decorate();\n\n // PB decorators registered here: packages/api-page-builder-aco/src/index.ts\n // new PageBuilderCrudDecorators({ context }).decorate();\n }\n};\n\nexport const createAcoContext = (params: CreateAcoContextParams = {}) => {\n const plugin = new ContextPlugin<AcoContext>(async context => {\n /**\n * We can skip the ACO initialization if the installation is pending.\n */\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n await context.benchmark.measure(\"aco.context.setup\", async () => {\n await setupAcoContext(context, params);\n });\n\n await context.benchmark.measure(\"aco.context.hooks\", async () => {\n await createAcoHooks(context);\n });\n });\n\n plugin.name = \"aco.createContext\";\n\n return plugin;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_api","_apiHeadlessCms","_createAcoHooks","_createAcoStorageOperations","_folder","_record","_apps","_record2","_plugins","_FolderLevelPermissions","_CmsEntriesCrudDecorators","_folder2","_createOperationsWrapper","_pickEntryFieldValues","_filter","setupAcoContext","context","setupAcoContextParams","tenancy","security","i18n","getLocale","locale","getContentLocale","WebinyError","getTenant","getCurrentTenant","storageOperations","createAcoStorageOperations","cms","getCmsContext","folderLevelPermissions","FolderLevelPermissions","getIdentity","listIdentityTeams","withoutAuthorization","identity","adminUser","adminUsers","getUser","where","id","hasTeams","teams","length","listTeams","id_in","listPermissions","listAllFolders","params","withModel","createOperationsWrapper","modelName","FOLDER_MODEL_ID","model","response","entries","list","limit","latest","after","sort","items","map","pickEntryFieldValues","cursor","totalCount","hasMoreItems","ex","message","canUseTeams","wcp","canUseFolderLevelPermissions","useFolderLevelPermissions","isAuthorizationEnabled","defaultRecordModel","getModel","SEARCH_RECORD_MODEL_ID","apps","AcoApps","plugins","byType","AcoAppRegisterPlugin","type","plugin","register","app","listAdminUsers","listUsers","aco","folder","createFolderCrudMethods","search","createSearchRecordCrudMethods","filter","createFilterCrudMethods","getApp","name","get","listApps","registerApp","CmsEntriesCrudDecorators","decorate","createAcoContext","ContextPlugin","isHeadlessCmsReady","benchmark","measure","createAcoHooks","exports"],"sources":["createAcoContext.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport { createAcoHooks } from \"~/createAcoHooks\";\nimport { createAcoStorageOperations } from \"~/createAcoStorageOperations\";\nimport {\n AcoContext,\n CreateAcoParams,\n Folder,\n IAcoAppRegisterParams,\n ListFoldersParams\n} from \"~/types\";\nimport { createFolderCrudMethods } from \"~/folder/folder.crud\";\nimport { createSearchRecordCrudMethods } from \"~/record/record.crud\";\nimport { AcoApps } from \"./apps\";\nimport { SEARCH_RECORD_MODEL_ID } from \"~/record/record.model\";\nimport { AcoAppRegisterPlugin } from \"~/plugins\";\nimport { FolderLevelPermissions } from \"~/utils/FolderLevelPermissions\";\nimport { CmsEntriesCrudDecorators } from \"~/utils/decorators/CmsEntriesCrudDecorators\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues\";\nimport { createFilterCrudMethods } from \"~/filter/filter.crud\";\n\ninterface CreateAcoContextParams {\n useFolderLevelPermissions?: boolean;\n}\n\nconst setupAcoContext = async (\n context: AcoContext,\n setupAcoContextParams: CreateAcoContextParams\n): Promise<void> => {\n const { tenancy, security, i18n } = context;\n\n const getLocale = (): I18NLocale => {\n const locale = i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in api-aco/plugins/context.ts\",\n \"LOCALE_ERROR\"\n );\n }\n\n return locale;\n };\n\n const getTenant = (): Tenant => {\n return tenancy.getCurrentTenant();\n };\n\n const storageOperations = await createAcoStorageOperations({\n /**\n * TODO: We need to figure out a way to pass \"cms\" from outside (e.g. apps/api/graphql)\n */\n cms: context.cms,\n /**\n * TODO: This is required for \"entryFieldFromStorageTransform\" which access plugins from context.\n */\n getCmsContext: () => context,\n security\n });\n\n const folderLevelPermissions = new FolderLevelPermissions({\n getIdentity: () => security.getIdentity(),\n listIdentityTeams: async () => {\n return security.withoutAuthorization(async () => {\n const identity = security.getIdentity();\n if (!identity) {\n return [];\n }\n\n const adminUser = await context.adminUsers.getUser({ where: { id: identity.id } });\n if (!adminUser) {\n return [];\n }\n\n const hasTeams = adminUser.teams && adminUser.teams.length > 0;\n if (hasTeams) {\n return context.security.listTeams({ where: { id_in: adminUser.teams } });\n }\n\n return [];\n });\n },\n listPermissions: () => security.listPermissions(),\n listAllFolders: (params: ListFoldersParams) => {\n // When retrieving a list of all folders, we want to do it in the\n // fastest way and that is by directly using CMS's storage operations.\n const { withModel } = createOperationsWrapper({\n modelName: FOLDER_MODEL_ID,\n cms: context.cms,\n getCmsContext: () => context,\n security\n });\n\n return withModel(async model => {\n try {\n const response = await context.cms.storageOperations.entries.list(model, {\n limit: 10_000,\n where: {\n ...params.where,\n\n // Folders always work with latest entries. We never publish them.\n latest: true\n },\n after: params.after,\n sort: [\"title_ASC\"]\n });\n\n return [\n response.items.map(pickEntryFieldValues<Folder>),\n {\n cursor: response.cursor,\n totalCount: response.totalCount,\n hasMoreItems: response.hasMoreItems\n }\n ];\n } catch (ex) {\n /**\n * Skip throwing an error if the error is related to the search phase execution.\n * This is a temporary solution to avoid breaking the entire system when no entries were ever inserted in the index.\n *\n * TODO: figure out better way to handle this.\n */\n if (ex.message === \"search_phase_execution_exception\") {\n return [\n [],\n {\n cursor: null,\n totalCount: 0,\n hasMoreItems: false\n }\n ];\n }\n throw ex;\n }\n });\n },\n canUseTeams: () => context.wcp.canUseTeams(),\n canUseFolderLevelPermissions: () => {\n if (setupAcoContextParams.useFolderLevelPermissions === false) {\n return false;\n }\n\n return context.wcp.canUseFolderLevelPermissions();\n },\n isAuthorizationEnabled: () => context.security.isAuthorizationEnabled()\n });\n\n const params: CreateAcoParams = {\n getLocale,\n getTenant,\n storageOperations,\n folderLevelPermissions\n };\n\n const defaultRecordModel = await context.security.withoutAuthorization(async () => {\n return context.cms.getModel(SEARCH_RECORD_MODEL_ID);\n });\n\n if (!defaultRecordModel) {\n throw new WebinyError(`There is no default record model in ${SEARCH_RECORD_MODEL_ID}`);\n }\n\n /**\n * First we need to create all the apps.\n */\n const apps = new AcoApps(context, params);\n const plugins = context.plugins.byType<AcoAppRegisterPlugin>(AcoAppRegisterPlugin.type);\n for (const plugin of plugins) {\n await apps.register({\n model: defaultRecordModel,\n ...plugin.app\n });\n }\n\n const listAdminUsers = () => {\n return security.withoutAuthorization(async () => {\n return context.adminUsers.listUsers();\n });\n };\n const listTeams = () => {\n return security.withoutAuthorization(async () => {\n return context.security.listTeams();\n });\n };\n\n context.aco = {\n folder: createFolderCrudMethods({\n ...params,\n listAdminUsers,\n listTeams\n }),\n search: createSearchRecordCrudMethods(params),\n folderLevelPermissions,\n filter: createFilterCrudMethods(params),\n apps,\n getApp: (name: string) => apps.get(name),\n listApps: () => apps.list(),\n registerApp: async (params: IAcoAppRegisterParams) => {\n return apps.register({\n model: defaultRecordModel,\n ...params\n });\n }\n };\n\n if (context.wcp.canUseFolderLevelPermissions()) {\n new CmsEntriesCrudDecorators({ context }).decorate();\n\n // PB decorators registered here: packages/api-page-builder-aco/src/index.ts\n // new PageBuilderCrudDecorators({ context }).decorate();\n }\n};\n\nexport const createAcoContext = (params: CreateAcoContextParams = {}) => {\n const plugin = new ContextPlugin<AcoContext>(async context => {\n /**\n * We can skip the ACO initialization if the installation is pending.\n */\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n await context.benchmark.measure(\"aco.context.setup\", async () => {\n await setupAcoContext(context, params);\n });\n\n await context.benchmark.measure(\"aco.context.hooks\", async () => {\n await createAcoHooks(context);\n });\n });\n\n plugin.name = \"aco.createContext\";\n\n return plugin;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/createAcoGraphQL.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
2
2
|
import { AcoContext } from "./types";
|
|
3
|
-
|
|
3
|
+
import { ContextPlugin } from "@webiny/api";
|
|
4
|
+
export declare const createAcoGraphQL: () => (ContextPlugin<AcoContext> | GraphQLSchemaPlugin<AcoContext>)[];
|
package/createAcoGraphQL.js
CHANGED
|
@@ -8,6 +8,11 @@ var _handlerGraphql = require("@webiny/handler-graphql");
|
|
|
8
8
|
var _filter = require("./filter/filter.gql");
|
|
9
9
|
var _folder = require("./folder/folder.gql");
|
|
10
10
|
var _app = require("./apps/app.gql");
|
|
11
|
+
var _api = require("@webiny/api");
|
|
12
|
+
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
13
|
+
var _createFieldTypePluginRecords = require("@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords");
|
|
14
|
+
var _getSchemaFromFieldPlugins = require("@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins");
|
|
15
|
+
var _folder2 = require("./folder/folder.model");
|
|
11
16
|
const emptyResolver = () => ({});
|
|
12
17
|
const baseSchema = new _handlerGraphql.GraphQLSchemaPlugin({
|
|
13
18
|
typeDefs: /* GraphQL */`
|
|
@@ -118,7 +123,40 @@ const baseSchema = new _handlerGraphql.GraphQLSchemaPlugin({
|
|
|
118
123
|
}
|
|
119
124
|
});
|
|
120
125
|
const createAcoGraphQL = () => {
|
|
121
|
-
|
|
126
|
+
const folderSchema = new _api.ContextPlugin(async context => {
|
|
127
|
+
if (!(await (0, _apiHeadlessCms.isHeadlessCmsReady)(context))) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
await context.security.withoutAuthorization(async () => {
|
|
131
|
+
const model = await context.cms.getModel(_folder2.FOLDER_MODEL_ID);
|
|
132
|
+
const models = await context.cms.listModels();
|
|
133
|
+
const fieldPlugins = (0, _createFieldTypePluginRecords.createFieldTypePluginRecords)(context.plugins);
|
|
134
|
+
/**
|
|
135
|
+
* We need to register all plugins for all the CMS fields.
|
|
136
|
+
*/
|
|
137
|
+
const plugins = (0, _getSchemaFromFieldPlugins.createGraphQLSchemaPluginFromFieldPlugins)({
|
|
138
|
+
models,
|
|
139
|
+
type: "manage",
|
|
140
|
+
fieldTypePlugins: fieldPlugins,
|
|
141
|
+
createPlugin: ({
|
|
142
|
+
schema,
|
|
143
|
+
type,
|
|
144
|
+
fieldType
|
|
145
|
+
}) => {
|
|
146
|
+
const plugin = new _handlerGraphql.GraphQLSchemaPlugin(schema);
|
|
147
|
+
plugin.name = `aco.graphql.folder.schema.${type}.field.${fieldType}`;
|
|
148
|
+
return plugin;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
const graphQlPlugin = (0, _folder.createFoldersSchema)({
|
|
152
|
+
model,
|
|
153
|
+
models,
|
|
154
|
+
plugins: fieldPlugins
|
|
155
|
+
});
|
|
156
|
+
context.plugins.register([...plugins, graphQlPlugin]);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
return [baseSchema, _app.appGql, folderSchema, _filter.filterSchema];
|
|
122
160
|
};
|
|
123
161
|
exports.createAcoGraphQL = createAcoGraphQL;
|
|
124
162
|
|
package/createAcoGraphQL.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_handlerGraphql","require","_filter","_folder","_app","emptyResolver","baseSchema","GraphQLSchemaPlugin","typeDefs","resolvers","Query","aco","search","Mutation","createAcoGraphQL","
|
|
1
|
+
{"version":3,"names":["_handlerGraphql","require","_filter","_folder","_app","_api","_apiHeadlessCms","_createFieldTypePluginRecords","_getSchemaFromFieldPlugins","_folder2","emptyResolver","baseSchema","GraphQLSchemaPlugin","typeDefs","resolvers","Query","aco","search","Mutation","createAcoGraphQL","folderSchema","ContextPlugin","context","isHeadlessCmsReady","security","withoutAuthorization","model","cms","getModel","FOLDER_MODEL_ID","models","listModels","fieldPlugins","createFieldTypePluginRecords","plugins","createGraphQLSchemaPluginFromFieldPlugins","type","fieldTypePlugins","createPlugin","schema","fieldType","plugin","name","graphQlPlugin","createFoldersSchema","register","appGql","filterSchema","exports"],"sources":["createAcoGraphQL.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { filterSchema } from \"~/filter/filter.gql\";\nimport { createFoldersSchema } from \"~/folder/folder.gql\";\nimport { appGql } from \"~/apps/app.gql\";\nimport { AcoContext } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { isHeadlessCmsReady } from \"@webiny/api-headless-cms\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords\";\nimport { createGraphQLSchemaPluginFromFieldPlugins } from \"@webiny/api-headless-cms/utils/getSchemaFromFieldPlugins\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nconst emptyResolver = () => ({});\n\nconst baseSchema = new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type AcoQuery {\n _empty: String\n }\n\n type AcoMutation {\n _empty: String\n }\n\n type SearchQuery {\n _empty: String\n }\n\n type SearchMutation {\n _empty: String\n }\n\n type AcoMeta {\n hasMoreItems: Boolean\n totalCount: Int\n cursor: String\n }\n\n type AcoUser {\n id: ID\n displayName: String\n type: String\n }\n\n type AcoError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type AcoBooleanResponse {\n data: Boolean\n error: AcoError\n }\n\n enum AcoSortDirection {\n ASC\n DESC\n }\n\n input AcoSort {\n id: AcoSortDirection\n createdOn: AcoSortDirection\n modifiedOn: AcoSortDirection\n savedOn: AcoSortDirection\n title: AcoSortDirection\n }\n\n input AcoSearchRecordTagListWhereInput {\n tags_in: [String!]\n tags_startsWith: String\n tags_not_startsWith: String\n createdBy: ID\n AND: [AcoSearchRecordTagListWhereInput!]\n OR: [AcoSearchRecordTagListWhereInput!]\n }\n\n type AcoSearchRecordMoveResponse {\n data: Boolean\n error: AcoError\n }\n\n type TagItem {\n tag: String!\n count: Int!\n }\n\n type AcoSearchRecordTagListResponse {\n data: [TagItem!]\n error: AcoError\n meta: AcoMeta\n }\n\n type AcoSearchLocationType {\n folderId: ID!\n }\n input AcoSearchLocationInput {\n folderId: ID!\n }\n\n extend type Query {\n aco: AcoQuery\n search: SearchQuery\n }\n\n extend type Mutation {\n aco: AcoMutation\n search: SearchMutation\n }\n `,\n resolvers: {\n Query: {\n aco: emptyResolver,\n search: emptyResolver\n },\n Mutation: {\n aco: emptyResolver,\n search: emptyResolver\n }\n }\n});\n\nexport const createAcoGraphQL = () => {\n const folderSchema = new ContextPlugin<AcoContext>(async context => {\n if (!(await isHeadlessCmsReady(context))) {\n return;\n }\n\n await context.security.withoutAuthorization(async () => {\n const model = (await context.cms.getModel(FOLDER_MODEL_ID)) as CmsModel;\n const models = await context.cms.listModels();\n const fieldPlugins = createFieldTypePluginRecords(context.plugins);\n /**\n * We need to register all plugins for all the CMS fields.\n */\n const plugins = createGraphQLSchemaPluginFromFieldPlugins({\n models,\n type: \"manage\",\n fieldTypePlugins: fieldPlugins,\n createPlugin: ({ schema, type, fieldType }) => {\n const plugin = new GraphQLSchemaPlugin(schema);\n plugin.name = `aco.graphql.folder.schema.${type}.field.${fieldType}`;\n return plugin;\n }\n });\n\n const graphQlPlugin = createFoldersSchema({\n model,\n models,\n plugins: fieldPlugins\n });\n\n context.plugins.register([...plugins, graphQlPlugin]);\n });\n });\n\n return [baseSchema, appGql, folderSchema, filterSchema];\n};\n"],"mappings":"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","ignoreList":[]}
|
package/createAcoModels.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { CmsContext } from "@webiny/api-headless-cms/types";
|
|
2
|
-
export declare const createAcoModels: (context: CmsContext) => void
|
|
2
|
+
export declare const createAcoModels: (context: CmsContext) => Promise<void>;
|
package/createAcoModels.js
CHANGED
|
@@ -8,11 +8,17 @@ var _filter = require("./filter/filter.model");
|
|
|
8
8
|
var _folder = require("./folder/folder.model");
|
|
9
9
|
var _record = require("./record/record.model");
|
|
10
10
|
var _modelFactory = require("./utils/modelFactory");
|
|
11
|
-
|
|
11
|
+
var _createFolderModelModifier = require("./folder/createFolderModelModifier");
|
|
12
|
+
const createAcoModels = async context => {
|
|
12
13
|
/**
|
|
13
|
-
* Create
|
|
14
|
+
* Create CmsModel plugins.
|
|
14
15
|
*/
|
|
15
|
-
const
|
|
16
|
+
const folderModel = (0, _folder.createFolderModel)();
|
|
17
|
+
const modelModifiers = context.plugins.byType(_createFolderModelModifier.FolderCmsModelModifierPlugin.type);
|
|
18
|
+
for (const modifier of modelModifiers) {
|
|
19
|
+
await modifier.modifyModel(folderModel);
|
|
20
|
+
}
|
|
21
|
+
const modelDefinitions = [folderModel, (0, _record.createSearchModel)(), (0, _filter.createFilterModel)()];
|
|
16
22
|
const cmsModelPlugins = modelDefinitions.map(modelDefinition => {
|
|
17
23
|
return (0, _modelFactory.modelFactory)({
|
|
18
24
|
modelDefinition
|
package/createAcoModels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_filter","require","_folder","_record","_modelFactory","createAcoModels","context","
|
|
1
|
+
{"version":3,"names":["_filter","require","_folder","_record","_modelFactory","_createFolderModelModifier","createAcoModels","context","folderModel","createFolderModel","modelModifiers","plugins","byType","FolderCmsModelModifierPlugin","type","modifier","modifyModel","modelDefinitions","createSearchModel","createFilterModel","cmsModelPlugins","map","modelDefinition","modelFactory","register","exports"],"sources":["createAcoModels.ts"],"sourcesContent":["import { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { createFilterModel } from \"~/filter/filter.model\";\nimport { createFolderModel } from \"~/folder/folder.model\";\nimport { createSearchModel } from \"~/record/record.model\";\nimport { modelFactory } from \"~/utils/modelFactory\";\nimport { FolderCmsModelModifierPlugin } from \"~/folder/createFolderModelModifier\";\n\nexport const createAcoModels = async (context: CmsContext) => {\n /**\n * Create CmsModel plugins.\n */\n const folderModel = createFolderModel();\n\n const modelModifiers = context.plugins.byType<FolderCmsModelModifierPlugin>(\n FolderCmsModelModifierPlugin.type\n );\n\n for (const modifier of modelModifiers) {\n await modifier.modifyModel(folderModel);\n }\n\n const modelDefinitions = [folderModel, createSearchModel(), createFilterModel()];\n const cmsModelPlugins = modelDefinitions.map(modelDefinition => {\n return modelFactory({\n modelDefinition\n });\n });\n\n /**\n * Register them so that they are accessible in cms context\n */\n context.plugins.register([cmsModelPlugins]);\n};\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AAEO,MAAMK,eAAe,GAAG,MAAOC,OAAmB,IAAK;EAC1D;AACJ;AACA;EACI,MAAMC,WAAW,GAAG,IAAAC,yBAAiB,EAAC,CAAC;EAEvC,MAAMC,cAAc,GAAGH,OAAO,CAACI,OAAO,CAACC,MAAM,CACzCC,uDAA4B,CAACC,IACjC,CAAC;EAED,KAAK,MAAMC,QAAQ,IAAIL,cAAc,EAAE;IACnC,MAAMK,QAAQ,CAACC,WAAW,CAACR,WAAW,CAAC;EAC3C;EAEA,MAAMS,gBAAgB,GAAG,CAACT,WAAW,EAAE,IAAAU,yBAAiB,EAAC,CAAC,EAAE,IAAAC,yBAAiB,EAAC,CAAC,CAAC;EAChF,MAAMC,eAAe,GAAGH,gBAAgB,CAACI,GAAG,CAACC,eAAe,IAAI;IAC5D,OAAO,IAAAC,0BAAY,EAAC;MAChBD;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;;EAEF;AACJ;AACA;EACIf,OAAO,CAACI,OAAO,CAACa,QAAQ,CAAC,CAACJ,eAAe,CAAC,CAAC;AAC/C,CAAC;AAACK,OAAA,CAAAnB,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -6,4 +6,4 @@ export interface CreateAcoStorageOperationsParams {
|
|
|
6
6
|
security: Security;
|
|
7
7
|
getCmsContext: () => CmsContext;
|
|
8
8
|
}
|
|
9
|
-
export declare const createAcoStorageOperations: (params: CreateAcoStorageOperationsParams) => AcoStorageOperations
|
|
9
|
+
export declare const createAcoStorageOperations: (params: CreateAcoStorageOperationsParams) => Promise<AcoStorageOperations>;
|
|
@@ -8,9 +8,9 @@ var _filter = require("./filter/filter.so");
|
|
|
8
8
|
var _folder = require("./folder/folder.so");
|
|
9
9
|
var _record = require("./record/record.so");
|
|
10
10
|
var _createAcoModels = require("./createAcoModels");
|
|
11
|
-
const createAcoStorageOperations = params => {
|
|
11
|
+
const createAcoStorageOperations = async params => {
|
|
12
12
|
const context = params.getCmsContext();
|
|
13
|
-
(0, _createAcoModels.createAcoModels)(context);
|
|
13
|
+
await (0, _createAcoModels.createAcoModels)(context);
|
|
14
14
|
return {
|
|
15
15
|
...(0, _folder.createFolderOperations)(params),
|
|
16
16
|
...(0, _record.createSearchRecordOperations)(params),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_filter","require","_folder","_record","_createAcoModels","createAcoStorageOperations","params","context","getCmsContext","createAcoModels","createFolderOperations","createSearchRecordOperations","createFilterOperations","exports"],"sources":["createAcoStorageOperations.ts"],"sourcesContent":["import { CmsContext, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\n\nimport { createFilterOperations } from \"~/filter/filter.so\";\nimport { createFolderOperations } from \"~/folder/folder.so\";\nimport { createSearchRecordOperations } from \"~/record/record.so\";\nimport { createAcoModels } from \"~/createAcoModels\";\n\nimport { AcoStorageOperations } from \"~/types\";\n\nexport interface CreateAcoStorageOperationsParams {\n cms: HeadlessCms;\n security: Security;\n getCmsContext: () => CmsContext;\n}\n\nexport const createAcoStorageOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoStorageOperations => {\n const context = params.getCmsContext();\n\n createAcoModels(context);\n\n return {\n ...createFolderOperations(params),\n ...createSearchRecordOperations(params),\n ...createFilterOperations(params)\n };\n};\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAUO,MAAMI,0BAA0B,
|
|
1
|
+
{"version":3,"names":["_filter","require","_folder","_record","_createAcoModels","createAcoStorageOperations","params","context","getCmsContext","createAcoModels","createFolderOperations","createSearchRecordOperations","createFilterOperations","exports"],"sources":["createAcoStorageOperations.ts"],"sourcesContent":["import { CmsContext, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\n\nimport { createFilterOperations } from \"~/filter/filter.so\";\nimport { createFolderOperations } from \"~/folder/folder.so\";\nimport { createSearchRecordOperations } from \"~/record/record.so\";\nimport { createAcoModels } from \"~/createAcoModels\";\n\nimport { AcoStorageOperations } from \"~/types\";\n\nexport interface CreateAcoStorageOperationsParams {\n cms: HeadlessCms;\n security: Security;\n getCmsContext: () => CmsContext;\n}\n\nexport const createAcoStorageOperations = async (\n params: CreateAcoStorageOperationsParams\n): Promise<AcoStorageOperations> => {\n const context = params.getCmsContext();\n\n await createAcoModels(context);\n\n return {\n ...createFolderOperations(params),\n ...createSearchRecordOperations(params),\n ...createFilterOperations(params)\n };\n};\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAUO,MAAMI,0BAA0B,GAAG,MACtCC,MAAwC,IACR;EAChC,MAAMC,OAAO,GAAGD,MAAM,CAACE,aAAa,CAAC,CAAC;EAEtC,MAAM,IAAAC,gCAAe,EAACF,OAAO,CAAC;EAE9B,OAAO;IACH,GAAG,IAAAG,8BAAsB,EAACJ,MAAM,CAAC;IACjC,GAAG,IAAAK,oCAA4B,EAACL,MAAM,CAAC;IACvC,GAAG,IAAAM,8BAAsB,EAACN,MAAM;EACpC,CAAC;AACL,CAAC;AAACO,OAAA,CAAAR,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
import { CmsPrivateModelFull } from "@webiny/api-headless-cms";
|
|
3
|
+
import { CmsModelField as BaseModelField } from "@webiny/api-headless-cms/types";
|
|
4
|
+
export type CmsModelField = Omit<BaseModelField, "storageId"> & {
|
|
5
|
+
modelIds?: string[];
|
|
6
|
+
};
|
|
7
|
+
export interface IFolderModelFieldsModifier {
|
|
8
|
+
setFields: (fields: BaseModelField[]) => void;
|
|
9
|
+
addField: (field: CmsModelField) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare class FolderModelFieldsModifier implements IFolderModelFieldsModifier {
|
|
12
|
+
private fields;
|
|
13
|
+
private readonly namespace;
|
|
14
|
+
constructor(namespace: string);
|
|
15
|
+
setFields(fields: BaseModelField[]): void;
|
|
16
|
+
addField(field: CmsModelField): void;
|
|
17
|
+
}
|
|
18
|
+
interface CmsModelModifierCallableParams {
|
|
19
|
+
modifier: IFolderModelFieldsModifier;
|
|
20
|
+
}
|
|
21
|
+
export interface CmsModelModifierCallable {
|
|
22
|
+
(params: CmsModelModifierCallableParams): Promise<void> | void;
|
|
23
|
+
}
|
|
24
|
+
interface FolderCmsModelModifierPluginParams {
|
|
25
|
+
modifier: IFolderModelFieldsModifier;
|
|
26
|
+
callback: CmsModelModifierCallable;
|
|
27
|
+
}
|
|
28
|
+
export declare class FolderCmsModelModifierPlugin extends Plugin {
|
|
29
|
+
static type: string;
|
|
30
|
+
private readonly modifier;
|
|
31
|
+
private readonly callback;
|
|
32
|
+
constructor(params: FolderCmsModelModifierPluginParams);
|
|
33
|
+
modifyModel(model: CmsPrivateModelFull): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
export declare const createFolderModelModifier: (callback: CmsModelModifierCallable) => FolderCmsModelModifierPlugin;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFolderModelModifier = exports.FolderModelFieldsModifier = exports.FolderCmsModelModifierPlugin = void 0;
|
|
7
|
+
var _plugins = require("@webiny/plugins");
|
|
8
|
+
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
|
9
|
+
var _folder = require("./folder.model");
|
|
10
|
+
class FolderModelFieldsModifier {
|
|
11
|
+
fields = [];
|
|
12
|
+
constructor(namespace) {
|
|
13
|
+
this.namespace = namespace;
|
|
14
|
+
}
|
|
15
|
+
setFields(fields) {
|
|
16
|
+
this.fields = fields;
|
|
17
|
+
}
|
|
18
|
+
addField(field) {
|
|
19
|
+
const {
|
|
20
|
+
tags,
|
|
21
|
+
...rest
|
|
22
|
+
} = field;
|
|
23
|
+
this.fields.push({
|
|
24
|
+
...rest,
|
|
25
|
+
storageId: `${field.type}@${this.namespace}_${field.id}`,
|
|
26
|
+
tags: (tags ?? []).concat([`$namespace:${this.namespace}`])
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.FolderModelFieldsModifier = FolderModelFieldsModifier;
|
|
31
|
+
class FolderCmsModelModifierPlugin extends _plugins.Plugin {
|
|
32
|
+
static type = "aco.folder.cms-model-modifier";
|
|
33
|
+
constructor(params) {
|
|
34
|
+
super();
|
|
35
|
+
this.modifier = params.modifier;
|
|
36
|
+
this.callback = params.callback;
|
|
37
|
+
}
|
|
38
|
+
async modifyModel(model) {
|
|
39
|
+
if (model.modelId !== _folder.FOLDER_MODEL_ID) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
let extensionsField = model.fields.find(field => field.fieldId === "extensions");
|
|
43
|
+
if (!extensionsField) {
|
|
44
|
+
extensionsField = (0, _apiHeadlessCms.createModelField)({
|
|
45
|
+
label: "Extensions",
|
|
46
|
+
type: "object",
|
|
47
|
+
settings: {
|
|
48
|
+
layout: [],
|
|
49
|
+
fields: []
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
model.fields.push(extensionsField);
|
|
53
|
+
}
|
|
54
|
+
this.modifier.setFields(extensionsField.settings.fields);
|
|
55
|
+
await this.callback({
|
|
56
|
+
modifier: this.modifier
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.FolderCmsModelModifierPlugin = FolderCmsModelModifierPlugin;
|
|
61
|
+
const createFolderModelModifier = callback => {
|
|
62
|
+
const modifier = new FolderModelFieldsModifier("global");
|
|
63
|
+
return new FolderCmsModelModifierPlugin({
|
|
64
|
+
callback,
|
|
65
|
+
modifier
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
exports.createFolderModelModifier = createFolderModelModifier;
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=createFolderModelModifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_plugins","require","_apiHeadlessCms","_folder","FolderModelFieldsModifier","fields","constructor","namespace","setFields","addField","field","tags","rest","push","storageId","type","id","concat","exports","FolderCmsModelModifierPlugin","Plugin","params","modifier","callback","modifyModel","model","modelId","FOLDER_MODEL_ID","extensionsField","find","fieldId","createModelField","label","settings","layout","createFolderModelModifier"],"sources":["createFolderModelModifier.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsPrivateModelFull, createModelField } from \"@webiny/api-headless-cms\";\nimport { CmsModelField as BaseModelField } from \"@webiny/api-headless-cms/types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nexport type CmsModelField = Omit<BaseModelField, \"storageId\"> & { modelIds?: string[] };\n\nexport interface IFolderModelFieldsModifier {\n setFields: (fields: BaseModelField[]) => void;\n addField: (field: CmsModelField) => void;\n}\n\nexport class FolderModelFieldsModifier implements IFolderModelFieldsModifier {\n private fields: BaseModelField[] = [];\n private readonly namespace: string;\n\n constructor(namespace: string) {\n this.namespace = namespace;\n }\n\n setFields(fields: BaseModelField[]) {\n this.fields = fields;\n }\n\n addField(field: CmsModelField) {\n const { tags, ...rest } = field;\n\n this.fields.push({\n ...rest,\n storageId: `${field.type}@${this.namespace}_${field.id}`,\n tags: (tags ?? []).concat([`$namespace:${this.namespace}`])\n });\n }\n}\n\ninterface CmsModelModifierCallableParams {\n modifier: IFolderModelFieldsModifier;\n}\n\nexport interface CmsModelModifierCallable {\n (params: CmsModelModifierCallableParams): Promise<void> | void;\n}\n\ninterface FolderCmsModelModifierPluginParams {\n modifier: IFolderModelFieldsModifier;\n callback: CmsModelModifierCallable;\n}\n\nexport class FolderCmsModelModifierPlugin extends Plugin {\n public static override type = \"aco.folder.cms-model-modifier\";\n private readonly modifier: IFolderModelFieldsModifier;\n private readonly callback: CmsModelModifierCallable;\n\n constructor(params: FolderCmsModelModifierPluginParams) {\n super();\n this.modifier = params.modifier;\n this.callback = params.callback;\n }\n\n async modifyModel(model: CmsPrivateModelFull): Promise<void> {\n if (model.modelId !== FOLDER_MODEL_ID) {\n return;\n }\n\n let extensionsField = model.fields.find(field => field.fieldId === \"extensions\");\n if (!extensionsField) {\n extensionsField = createModelField({\n label: \"Extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n model.fields.push(extensionsField);\n }\n\n this.modifier.setFields(extensionsField.settings!.fields!);\n\n await this.callback({ modifier: this.modifier });\n }\n}\n\nexport const createFolderModelModifier = (callback: CmsModelModifierCallable) => {\n const modifier = new FolderModelFieldsModifier(\"global\");\n\n return new FolderCmsModelModifierPlugin({\n callback,\n modifier\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AASO,MAAMG,yBAAyB,CAAuC;EACjEC,MAAM,GAAqB,EAAE;EAGrCC,WAAWA,CAACC,SAAiB,EAAE;IAC3B,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC9B;EAEAC,SAASA,CAACH,MAAwB,EAAE;IAChC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAI,QAAQA,CAACC,KAAoB,EAAE;IAC3B,MAAM;MAAEC,IAAI;MAAE,GAAGC;IAAK,CAAC,GAAGF,KAAK;IAE/B,IAAI,CAACL,MAAM,CAACQ,IAAI,CAAC;MACb,GAAGD,IAAI;MACPE,SAAS,EAAE,GAAGJ,KAAK,CAACK,IAAI,IAAI,IAAI,CAACR,SAAS,IAAIG,KAAK,CAACM,EAAE,EAAE;MACxDL,IAAI,EAAE,CAACA,IAAI,IAAI,EAAE,EAAEM,MAAM,CAAC,CAAC,cAAc,IAAI,CAACV,SAAS,EAAE,CAAC;IAC9D,CAAC,CAAC;EACN;AACJ;AAACW,OAAA,CAAAd,yBAAA,GAAAA,yBAAA;AAeM,MAAMe,4BAA4B,SAASC,eAAM,CAAC;EACrD,OAAuBL,IAAI,GAAG,+BAA+B;EAI7DT,WAAWA,CAACe,MAA0C,EAAE;IACpD,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,QAAQ,GAAGD,MAAM,CAACC,QAAQ;IAC/B,IAAI,CAACC,QAAQ,GAAGF,MAAM,CAACE,QAAQ;EACnC;EAEA,MAAMC,WAAWA,CAACC,KAA0B,EAAiB;IACzD,IAAIA,KAAK,CAACC,OAAO,KAAKC,uBAAe,EAAE;MACnC;IACJ;IAEA,IAAIC,eAAe,GAAGH,KAAK,CAACpB,MAAM,CAACwB,IAAI,CAACnB,KAAK,IAAIA,KAAK,CAACoB,OAAO,KAAK,YAAY,CAAC;IAChF,IAAI,CAACF,eAAe,EAAE;MAClBA,eAAe,GAAG,IAAAG,gCAAgB,EAAC;QAC/BC,KAAK,EAAE,YAAY;QACnBjB,IAAI,EAAE,QAAQ;QACdkB,QAAQ,EAAE;UACNC,MAAM,EAAE,EAAE;UACV7B,MAAM,EAAE;QACZ;MACJ,CAAC,CAAC;MACFoB,KAAK,CAACpB,MAAM,CAACQ,IAAI,CAACe,eAAe,CAAC;IACtC;IAEA,IAAI,CAACN,QAAQ,CAACd,SAAS,CAACoB,eAAe,CAACK,QAAQ,CAAE5B,MAAO,CAAC;IAE1D,MAAM,IAAI,CAACkB,QAAQ,CAAC;MAAED,QAAQ,EAAE,IAAI,CAACA;IAAS,CAAC,CAAC;EACpD;AACJ;AAACJ,OAAA,CAAAC,4BAAA,GAAAA,4BAAA;AAEM,MAAMgB,yBAAyB,GAAIZ,QAAkC,IAAK;EAC7E,MAAMD,QAAQ,GAAG,IAAIlB,yBAAyB,CAAC,QAAQ,CAAC;EAExD,OAAO,IAAIe,4BAA4B,CAAC;IACpCI,QAAQ;IACRD;EACJ,CAAC,CAAC;AACN,CAAC;AAACJ,OAAA,CAAAiB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CmsFieldTypePlugins, CmsModel } from "@webiny/api-headless-cms/types";
|
|
2
|
+
export interface CreateFolderTypeDefsParams {
|
|
3
|
+
model: CmsModel;
|
|
4
|
+
models: CmsModel[];
|
|
5
|
+
plugins: CmsFieldTypePlugins;
|
|
6
|
+
}
|
|
7
|
+
export declare const createFolderTypeDefs: (params: CreateFolderTypeDefsParams) => string;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFolderTypeDefs = void 0;
|
|
7
|
+
var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
|
|
8
|
+
var _renderInputFields = require("@webiny/api-headless-cms/utils/renderInputFields");
|
|
9
|
+
const removeFieldRequiredValidation = field => {
|
|
10
|
+
if (field.validation) {
|
|
11
|
+
field.validation = field.validation.filter(validation => validation.name !== "required");
|
|
12
|
+
}
|
|
13
|
+
if (field.listValidation) {
|
|
14
|
+
field.listValidation = field.listValidation.filter(v => v.name !== "required");
|
|
15
|
+
}
|
|
16
|
+
return field;
|
|
17
|
+
};
|
|
18
|
+
const createUpdateFields = fields => {
|
|
19
|
+
return fields.reduce((collection, field) => {
|
|
20
|
+
collection.push(removeFieldRequiredValidation({
|
|
21
|
+
...field
|
|
22
|
+
}));
|
|
23
|
+
return collection;
|
|
24
|
+
}, []);
|
|
25
|
+
};
|
|
26
|
+
const createFolderTypeDefs = params => {
|
|
27
|
+
const {
|
|
28
|
+
model,
|
|
29
|
+
models,
|
|
30
|
+
plugins: fieldTypePlugins
|
|
31
|
+
} = params;
|
|
32
|
+
const {
|
|
33
|
+
fields
|
|
34
|
+
} = model;
|
|
35
|
+
const fieldTypes = (0, _renderFields.renderFields)({
|
|
36
|
+
models,
|
|
37
|
+
model,
|
|
38
|
+
fields,
|
|
39
|
+
type: "manage",
|
|
40
|
+
fieldTypePlugins
|
|
41
|
+
});
|
|
42
|
+
const inputCreateFields = (0, _renderInputFields.renderInputFields)({
|
|
43
|
+
models,
|
|
44
|
+
model,
|
|
45
|
+
fields,
|
|
46
|
+
fieldTypePlugins
|
|
47
|
+
});
|
|
48
|
+
const inputUpdateFields = (0, _renderInputFields.renderInputFields)({
|
|
49
|
+
models,
|
|
50
|
+
model,
|
|
51
|
+
fields: createUpdateFields(fields),
|
|
52
|
+
fieldTypePlugins
|
|
53
|
+
});
|
|
54
|
+
return /* GraphQL */`
|
|
55
|
+
${fieldTypes.map(f => f.typeDefs).join("\n")}
|
|
56
|
+
|
|
57
|
+
type CompressedResponse {
|
|
58
|
+
compression: String
|
|
59
|
+
value: String
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
type Folder {
|
|
63
|
+
id: ID!
|
|
64
|
+
# Tells us if the current user can manage folder structure.
|
|
65
|
+
canManageStructure: Boolean
|
|
66
|
+
|
|
67
|
+
# Tells us if the current user can manage folder permissions.
|
|
68
|
+
canManagePermissions: Boolean
|
|
69
|
+
|
|
70
|
+
# Tells us if the current user can manage folder content.
|
|
71
|
+
canManageContent: Boolean
|
|
72
|
+
|
|
73
|
+
# Tells us if the folder contains non-inherited permissions.
|
|
74
|
+
hasNonInheritedPermissions: Boolean
|
|
75
|
+
|
|
76
|
+
createdOn: DateTime
|
|
77
|
+
modifiedOn: DateTime
|
|
78
|
+
savedOn: DateTime
|
|
79
|
+
createdBy: AcoUser
|
|
80
|
+
modifiedBy: AcoUser
|
|
81
|
+
savedBy: AcoUser
|
|
82
|
+
|
|
83
|
+
${fieldTypes.map(f => f.fields).join("\n")}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
${inputCreateFields.map(f => f.typeDefs).join("\n")}
|
|
87
|
+
|
|
88
|
+
input FolderCreateInput {
|
|
89
|
+
${inputCreateFields.map(f => f.fields).join("\n")}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
input FolderUpdateInput {
|
|
93
|
+
${inputUpdateFields.map(f => f.fields).join("\n")}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
input FoldersListWhereInput {
|
|
97
|
+
type: String!
|
|
98
|
+
parentId: String
|
|
99
|
+
createdBy: ID
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
type FolderResponse {
|
|
103
|
+
data: Folder
|
|
104
|
+
error: AcoError
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
type FoldersListResponse {
|
|
108
|
+
data: [Folder]
|
|
109
|
+
error: AcoError
|
|
110
|
+
meta: AcoMeta
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
type FoldersListCompressedResponse {
|
|
114
|
+
data: CompressedResponse
|
|
115
|
+
error: AcoError
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
type FolderLevelPermissionsTarget {
|
|
119
|
+
id: ID!
|
|
120
|
+
type: String!
|
|
121
|
+
target: ID!
|
|
122
|
+
name: String!
|
|
123
|
+
meta: JSON
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
type FolderLevelPermissionsTargetsListMeta {
|
|
127
|
+
totalCount: Int!
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
type FolderLevelPermissionsTargetsListResponse {
|
|
131
|
+
data: [FolderLevelPermissionsTarget]
|
|
132
|
+
meta: FolderLevelPermissionsTargetsListMeta
|
|
133
|
+
error: AcoError
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
type FolderModelResponse {
|
|
137
|
+
data: JSON
|
|
138
|
+
error: AcoError
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
extend type AcoQuery {
|
|
142
|
+
getFolderModel: FolderModelResponse!
|
|
143
|
+
getFolder(id: ID!): FolderResponse
|
|
144
|
+
listFolders(
|
|
145
|
+
where: FoldersListWhereInput!
|
|
146
|
+
limit: Int
|
|
147
|
+
after: String
|
|
148
|
+
sort: AcoSort
|
|
149
|
+
): FoldersListResponse
|
|
150
|
+
listFoldersCompressed(
|
|
151
|
+
where: FoldersListWhereInput!
|
|
152
|
+
limit: Int
|
|
153
|
+
after: String
|
|
154
|
+
sort: AcoSort
|
|
155
|
+
): FoldersListCompressedResponse
|
|
156
|
+
|
|
157
|
+
listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
extend type AcoMutation {
|
|
161
|
+
createFolder(data: FolderCreateInput!): FolderResponse
|
|
162
|
+
updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse
|
|
163
|
+
deleteFolder(id: ID!): AcoBooleanResponse
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
extend type AcoFolder_Permissions {
|
|
167
|
+
inheritedFrom: ID
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
extend input AcoFolder_PermissionsInput {
|
|
171
|
+
inheritedFrom: ID
|
|
172
|
+
}
|
|
173
|
+
`;
|
|
174
|
+
};
|
|
175
|
+
exports.createFolderTypeDefs = createFolderTypeDefs;
|
|
176
|
+
|
|
177
|
+
//# sourceMappingURL=createFolderTypeDefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_renderFields","require","_renderInputFields","removeFieldRequiredValidation","field","validation","filter","name","listValidation","v","createUpdateFields","fields","reduce","collection","push","createFolderTypeDefs","params","model","models","plugins","fieldTypePlugins","fieldTypes","renderFields","type","inputCreateFields","renderInputFields","inputUpdateFields","map","f","typeDefs","join","exports"],"sources":["createFolderTypeDefs.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { renderInputFields } from \"@webiny/api-headless-cms/utils/renderInputFields\";\n\nexport interface CreateFolderTypeDefsParams {\n model: CmsModel;\n models: CmsModel[];\n plugins: CmsFieldTypePlugins;\n}\n\nconst removeFieldRequiredValidation = (field: CmsModelField) => {\n if (field.validation) {\n field.validation = field.validation.filter(validation => validation.name !== \"required\");\n }\n if (field.listValidation) {\n field.listValidation = field.listValidation.filter(v => v.name !== \"required\");\n }\n return field;\n};\n\nconst createUpdateFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.reduce<CmsModelField[]>((collection, field) => {\n collection.push(removeFieldRequiredValidation({ ...field }));\n return collection;\n }, []);\n};\n\nexport const createFolderTypeDefs = (params: CreateFolderTypeDefsParams): string => {\n const { model, models, plugins: fieldTypePlugins } = params;\n const { fields } = model;\n\n const fieldTypes = renderFields({\n models,\n model,\n fields,\n type: \"manage\",\n fieldTypePlugins\n });\n const inputCreateFields = renderInputFields({\n models,\n model,\n fields,\n fieldTypePlugins\n });\n const inputUpdateFields = renderInputFields({\n models,\n model,\n fields: createUpdateFields(fields),\n fieldTypePlugins\n });\n\n return /* GraphQL */ `\n ${fieldTypes.map(f => f.typeDefs).join(\"\\n\")}\n \n type CompressedResponse {\n compression: String\n value: String\n }\n\n type Folder {\n id: ID!\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n \n ${fieldTypes.map(f => f.fields).join(\"\\n\")}\n }\n\n ${inputCreateFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input FolderCreateInput {\n ${inputCreateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FolderUpdateInput {\n ${inputUpdateFields.map(f => f.fields).join(\"\\n\")}\n }\n \n input FoldersListWhereInput {\n type: String!\n parentId: String\n createdBy: ID\n }\n \n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n \n type FolderModelResponse {\n data: JSON\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolderModel: FolderModelResponse!\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n \n extend type AcoFolder_Permissions {\n inheritedFrom: ID\n }\n \n extend input AcoFolder_PermissionsInput {\n inheritedFrom: ID\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAQA,MAAME,6BAA6B,GAAIC,KAAoB,IAAK;EAC5D,IAAIA,KAAK,CAACC,UAAU,EAAE;IAClBD,KAAK,CAACC,UAAU,GAAGD,KAAK,CAACC,UAAU,CAACC,MAAM,CAACD,UAAU,IAAIA,UAAU,CAACE,IAAI,KAAK,UAAU,CAAC;EAC5F;EACA,IAAIH,KAAK,CAACI,cAAc,EAAE;IACtBJ,KAAK,CAACI,cAAc,GAAGJ,KAAK,CAACI,cAAc,CAACF,MAAM,CAACG,CAAC,IAAIA,CAAC,CAACF,IAAI,KAAK,UAAU,CAAC;EAClF;EACA,OAAOH,KAAK;AAChB,CAAC;AAED,MAAMM,kBAAkB,GAAIC,MAAuB,IAAsB;EACrE,OAAOA,MAAM,CAACC,MAAM,CAAkB,CAACC,UAAU,EAAET,KAAK,KAAK;IACzDS,UAAU,CAACC,IAAI,CAACX,6BAA6B,CAAC;MAAE,GAAGC;IAAM,CAAC,CAAC,CAAC;IAC5D,OAAOS,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;AAEM,MAAME,oBAAoB,GAAIC,MAAkC,IAAa;EAChF,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO,EAAEC;EAAiB,CAAC,GAAGJ,MAAM;EAC3D,MAAM;IAAEL;EAAO,CAAC,GAAGM,KAAK;EAExB,MAAMI,UAAU,GAAG,IAAAC,0BAAY,EAAC;IAC5BJ,MAAM;IACND,KAAK;IACLN,MAAM;IACNY,IAAI,EAAE,QAAQ;IACdH;EACJ,CAAC,CAAC;EACF,MAAMI,iBAAiB,GAAG,IAAAC,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM;IACNS;EACJ,CAAC,CAAC;EACF,MAAMM,iBAAiB,GAAG,IAAAD,oCAAiB,EAAC;IACxCP,MAAM;IACND,KAAK;IACLN,MAAM,EAAED,kBAAkB,CAACC,MAAM,CAAC;IAClCS;EACJ,CAAC,CAAC;EAEF,OAAO,aAAc;AACzB,UAAUC,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcT,UAAU,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,UAAUN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA,eAAeN,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA,cAAcJ,iBAAiB,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACmB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
package/folder/folder.gql.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
|
|
2
|
+
import { CreateFolderTypeDefsParams } from "./createFolderTypeDefs";
|
|
2
3
|
import { AcoContext } from "../types";
|
|
3
|
-
export declare const
|
|
4
|
+
export declare const createFoldersSchema: (params: CreateFolderTypeDefsParams) => GraphQLSchemaPlugin<AcoContext>;
|
package/folder/folder.gql.js
CHANGED
|
@@ -3,222 +3,111 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createFoldersSchema = void 0;
|
|
7
7
|
var _responses = require("@webiny/handler-graphql/responses");
|
|
8
8
|
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
9
|
+
var _createFolderTypeDefs = require("./createFolderTypeDefs");
|
|
9
10
|
var _ensureAuthentication = require("../utils/ensureAuthentication");
|
|
10
11
|
var _resolve = require("../utils/resolve");
|
|
11
12
|
var _compress = require("../utils/compress");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
var _folder = require("./folder.model");
|
|
14
|
+
const createFoldersSchema = params => {
|
|
15
|
+
const folderGraphQL = new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
|
|
16
|
+
typeDefs: (0, _createFolderTypeDefs.createFolderTypeDefs)(params),
|
|
17
|
+
resolvers: {
|
|
18
|
+
Folder: {
|
|
19
|
+
hasNonInheritedPermissions: (folder, _, context) => {
|
|
20
|
+
return context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(folder.permissions);
|
|
21
|
+
},
|
|
22
|
+
canManageStructure: (folder, _, context) => {
|
|
23
|
+
return context.aco.folderLevelPermissions.canManageFolderStructure(folder);
|
|
24
|
+
},
|
|
25
|
+
canManagePermissions: (folder, _, context) => {
|
|
26
|
+
return context.aco.folderLevelPermissions.canManageFolderPermissions(folder);
|
|
27
|
+
},
|
|
28
|
+
canManageContent: (folder, _, context) => {
|
|
29
|
+
return context.aco.folderLevelPermissions.canManageFolderContent(folder);
|
|
18
30
|
}
|
|
19
|
-
|
|
20
|
-
type CompressedResponse {
|
|
21
|
-
compression: String
|
|
22
|
-
value: String
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
input FolderPermissionInput {
|
|
26
|
-
target: String!
|
|
27
|
-
level: String!
|
|
28
|
-
inheritedFrom: ID
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
type Folder {
|
|
32
|
-
id: ID!
|
|
33
|
-
title: String!
|
|
34
|
-
slug: String!
|
|
35
|
-
permissions: [FolderPermission]
|
|
36
|
-
|
|
37
|
-
# Tells us if the current user can manage folder structure.
|
|
38
|
-
canManageStructure: Boolean
|
|
39
|
-
|
|
40
|
-
# Tells us if the current user can manage folder permissions.
|
|
41
|
-
canManagePermissions: Boolean
|
|
42
|
-
|
|
43
|
-
# Tells us if the current user can manage folder content.
|
|
44
|
-
canManageContent: Boolean
|
|
45
|
-
|
|
46
|
-
# Tells us if the folder contains non-inherited permissions.
|
|
47
|
-
hasNonInheritedPermissions: Boolean
|
|
48
|
-
|
|
49
|
-
type: String!
|
|
50
|
-
parentId: ID
|
|
51
|
-
createdOn: DateTime
|
|
52
|
-
modifiedOn: DateTime
|
|
53
|
-
savedOn: DateTime
|
|
54
|
-
createdBy: AcoUser
|
|
55
|
-
modifiedBy: AcoUser
|
|
56
|
-
savedBy: AcoUser
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
input FolderCreateInput {
|
|
60
|
-
title: String!
|
|
61
|
-
slug: String!
|
|
62
|
-
permissions: [FolderPermissionInput]
|
|
63
|
-
type: String!
|
|
64
|
-
parentId: ID
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
input FolderUpdateInput {
|
|
68
|
-
title: String
|
|
69
|
-
slug: String
|
|
70
|
-
permissions: [FolderPermissionInput]
|
|
71
|
-
parentId: ID
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
input FoldersListWhereInput {
|
|
75
|
-
type: String!
|
|
76
|
-
parentId: String
|
|
77
|
-
createdBy: ID
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
type FolderResponse {
|
|
81
|
-
data: Folder
|
|
82
|
-
error: AcoError
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
type FoldersListResponse {
|
|
86
|
-
data: [Folder]
|
|
87
|
-
error: AcoError
|
|
88
|
-
meta: AcoMeta
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
type FoldersListCompressedResponse {
|
|
92
|
-
data: CompressedResponse
|
|
93
|
-
error: AcoError
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
type FolderLevelPermissionsTarget {
|
|
97
|
-
id: ID!
|
|
98
|
-
type: String!
|
|
99
|
-
target: ID!
|
|
100
|
-
name: String!
|
|
101
|
-
meta: JSON
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
type FolderLevelPermissionsTargetsListMeta {
|
|
105
|
-
totalCount: Int!
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
type FolderLevelPermissionsTargetsListResponse {
|
|
109
|
-
data: [FolderLevelPermissionsTarget]
|
|
110
|
-
meta: FolderLevelPermissionsTargetsListMeta
|
|
111
|
-
error: AcoError
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
extend type AcoQuery {
|
|
115
|
-
getFolder(id: ID!): FolderResponse
|
|
116
|
-
listFolders(
|
|
117
|
-
where: FoldersListWhereInput!
|
|
118
|
-
limit: Int
|
|
119
|
-
after: String
|
|
120
|
-
sort: AcoSort
|
|
121
|
-
): FoldersListResponse
|
|
122
|
-
listFoldersCompressed(
|
|
123
|
-
where: FoldersListWhereInput!
|
|
124
|
-
limit: Int
|
|
125
|
-
after: String
|
|
126
|
-
sort: AcoSort
|
|
127
|
-
): FoldersListCompressedResponse
|
|
128
|
-
|
|
129
|
-
listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
extend type AcoMutation {
|
|
133
|
-
createFolder(data: FolderCreateInput!): FolderResponse
|
|
134
|
-
updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse
|
|
135
|
-
deleteFolder(id: ID!): AcoBooleanResponse
|
|
136
|
-
}
|
|
137
|
-
`,
|
|
138
|
-
resolvers: {
|
|
139
|
-
Folder: {
|
|
140
|
-
hasNonInheritedPermissions: (folder, _, context) => {
|
|
141
|
-
return context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(folder.permissions);
|
|
142
|
-
},
|
|
143
|
-
canManageStructure: (folder, _, context) => {
|
|
144
|
-
return context.aco.folderLevelPermissions.canManageFolderStructure(folder);
|
|
145
|
-
},
|
|
146
|
-
canManagePermissions: (folder, _, context) => {
|
|
147
|
-
return context.aco.folderLevelPermissions.canManageFolderPermissions(folder);
|
|
148
|
-
},
|
|
149
|
-
canManageContent: (folder, _, context) => {
|
|
150
|
-
return context.aco.folderLevelPermissions.canManageFolderContent(folder);
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
AcoQuery: {
|
|
154
|
-
getFolder: async (_, {
|
|
155
|
-
id
|
|
156
|
-
}, context) => {
|
|
157
|
-
return (0, _resolve.resolve)(() => {
|
|
158
|
-
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
159
|
-
return context.aco.folder.get(id);
|
|
160
|
-
});
|
|
161
31
|
},
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
(0,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
32
|
+
AcoQuery: {
|
|
33
|
+
getFolderModel(_, __, context) {
|
|
34
|
+
return (0, _resolve.resolve)(() => {
|
|
35
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
36
|
+
return context.cms.getModel(_folder.FOLDER_MODEL_ID);
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
getFolder: async (_, {
|
|
40
|
+
id
|
|
41
|
+
}, context) => {
|
|
42
|
+
return (0, _resolve.resolve)(() => {
|
|
43
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
44
|
+
return context.aco.folder.get(id);
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
listFolders: async (_, args, context) => {
|
|
48
|
+
try {
|
|
49
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
50
|
+
const [entries, meta] = await context.aco.folder.list(args);
|
|
51
|
+
return new _responses.ListResponse(entries, meta);
|
|
52
|
+
} catch (e) {
|
|
53
|
+
return new _responses.ErrorResponse(e);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
listFoldersCompressed: async (_, args, context) => {
|
|
57
|
+
return (0, _resolve.resolve)(async () => {
|
|
58
|
+
const [entries] = await context.aco.folder.list(args);
|
|
59
|
+
const folders = entries.map(folder => ({
|
|
60
|
+
...folder,
|
|
61
|
+
hasNonInheritedPermissions: context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(folder.permissions),
|
|
62
|
+
canManageStructure: context.aco.folderLevelPermissions.canManageFolderStructure(folder),
|
|
63
|
+
canManagePermissions: context.aco.folderLevelPermissions.canManageFolderPermissions(folder),
|
|
64
|
+
canManageContent: context.aco.folderLevelPermissions.canManageFolderContent(folder)
|
|
65
|
+
}));
|
|
66
|
+
return (0, _compress.compress)(folders);
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
listFolderLevelPermissionsTargets: async (_, args, context) => {
|
|
70
|
+
try {
|
|
71
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
72
|
+
const [entries, meta] = await context.aco.folder.listFolderLevelPermissionsTargets();
|
|
73
|
+
return new _responses.ListResponse(entries, meta);
|
|
74
|
+
} catch (e) {
|
|
75
|
+
return new _responses.ErrorResponse(e);
|
|
76
|
+
}
|
|
169
77
|
}
|
|
170
78
|
},
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
79
|
+
AcoMutation: {
|
|
80
|
+
createFolder: async (_, {
|
|
81
|
+
data
|
|
82
|
+
}, context) => {
|
|
83
|
+
return (0, _resolve.resolve)(() => {
|
|
84
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
85
|
+
return context.aco.folder.create(data);
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
updateFolder: async (_, {
|
|
89
|
+
id,
|
|
90
|
+
data
|
|
91
|
+
}, context) => {
|
|
92
|
+
return (0, _resolve.resolve)(() => {
|
|
93
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
94
|
+
return context.aco.folder.update(id, data);
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
deleteFolder: async (_, {
|
|
98
|
+
id
|
|
99
|
+
}, context) => {
|
|
100
|
+
return (0, _resolve.resolve)(() => {
|
|
101
|
+
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
102
|
+
return context.aco.folder.delete(id);
|
|
103
|
+
});
|
|
191
104
|
}
|
|
192
105
|
}
|
|
193
|
-
},
|
|
194
|
-
AcoMutation: {
|
|
195
|
-
createFolder: async (_, {
|
|
196
|
-
data
|
|
197
|
-
}, context) => {
|
|
198
|
-
return (0, _resolve.resolve)(() => {
|
|
199
|
-
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
200
|
-
return context.aco.folder.create(data);
|
|
201
|
-
});
|
|
202
|
-
},
|
|
203
|
-
updateFolder: async (_, {
|
|
204
|
-
id,
|
|
205
|
-
data
|
|
206
|
-
}, context) => {
|
|
207
|
-
return (0, _resolve.resolve)(() => {
|
|
208
|
-
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
209
|
-
return context.aco.folder.update(id, data);
|
|
210
|
-
});
|
|
211
|
-
},
|
|
212
|
-
deleteFolder: async (_, {
|
|
213
|
-
id
|
|
214
|
-
}, context) => {
|
|
215
|
-
return (0, _resolve.resolve)(() => {
|
|
216
|
-
(0, _ensureAuthentication.ensureAuthentication)(context);
|
|
217
|
-
return context.aco.folder.delete(id);
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
106
|
}
|
|
221
|
-
}
|
|
222
|
-
|
|
107
|
+
});
|
|
108
|
+
folderGraphQL.name = "aco.graphql.folders";
|
|
109
|
+
return folderGraphQL;
|
|
110
|
+
};
|
|
111
|
+
exports.createFoldersSchema = createFoldersSchema;
|
|
223
112
|
|
|
224
113
|
//# sourceMappingURL=folder.gql.js.map
|
package/folder/folder.gql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_ensureAuthentication","_resolve","_compress","folderSchema","exports","GraphQLSchemaPlugin","typeDefs","resolvers","Folder","hasNonInheritedPermissions","folder","_","context","aco","folderLevelPermissions","permissionsIncludeNonInheritedPermissions","permissions","canManageStructure","canManageFolderStructure","canManagePermissions","canManageFolderPermissions","canManageContent","canManageFolderContent","AcoQuery","getFolder","id","resolve","ensureAuthentication","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","listFoldersCompressed","folders","map","compress","listFolderLevelPermissionsTargets","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\nimport { compress } from \"~/utils/compress\";\n\nimport { AcoContext, Folder } from \"~/types\";\n\nexport const folderSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n type FolderPermission {\n target: String!\n level: String!\n inheritedFrom: ID\n }\n\n type CompressedResponse {\n compression: String\n value: String\n }\n\n input FolderPermissionInput {\n target: String!\n level: String!\n inheritedFrom: ID\n }\n\n type Folder {\n id: ID!\n title: String!\n slug: String!\n permissions: [FolderPermission]\n\n # Tells us if the current user can manage folder structure.\n canManageStructure: Boolean\n\n # Tells us if the current user can manage folder permissions.\n canManagePermissions: Boolean\n\n # Tells us if the current user can manage folder content.\n canManageContent: Boolean\n\n # Tells us if the folder contains non-inherited permissions.\n hasNonInheritedPermissions: Boolean\n\n type: String!\n parentId: ID\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n }\n\n input FolderCreateInput {\n title: String!\n slug: String!\n permissions: [FolderPermissionInput]\n type: String!\n parentId: ID\n }\n\n input FolderUpdateInput {\n title: String\n slug: String\n permissions: [FolderPermissionInput]\n parentId: ID\n }\n\n input FoldersListWhereInput {\n type: String!\n parentId: String\n createdBy: ID\n }\n\n type FolderResponse {\n data: Folder\n error: AcoError\n }\n\n type FoldersListResponse {\n data: [Folder]\n error: AcoError\n meta: AcoMeta\n }\n\n type FoldersListCompressedResponse {\n data: CompressedResponse\n error: AcoError\n }\n\n type FolderLevelPermissionsTarget {\n id: ID!\n type: String!\n target: ID!\n name: String!\n meta: JSON\n }\n\n type FolderLevelPermissionsTargetsListMeta {\n totalCount: Int!\n }\n\n type FolderLevelPermissionsTargetsListResponse {\n data: [FolderLevelPermissionsTarget]\n meta: FolderLevelPermissionsTargetsListMeta\n error: AcoError\n }\n\n extend type AcoQuery {\n getFolder(id: ID!): FolderResponse\n listFolders(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListResponse\n listFoldersCompressed(\n where: FoldersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FoldersListCompressedResponse\n\n listFolderLevelPermissionsTargets: FolderLevelPermissionsTargetsListResponse\n }\n\n extend type AcoMutation {\n createFolder(data: FolderCreateInput!): FolderResponse\n updateFolder(id: ID!, data: FolderUpdateInput!): FolderResponse\n deleteFolder(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n Folder: {\n hasNonInheritedPermissions: (folder: Folder, _, context) => {\n return context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(\n folder.permissions\n );\n },\n canManageStructure: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderStructure(folder);\n },\n canManagePermissions: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderPermissions(folder);\n },\n canManageContent: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderContent(folder);\n }\n },\n AcoQuery: {\n getFolder: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.get(id);\n });\n },\n listFolders: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.aco.folder.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listFoldersCompressed: async (_, args: any, context) => {\n return resolve(async () => {\n const [entries] = await context.aco.folder.list(args);\n\n const folders = entries.map(folder => ({\n ...folder,\n hasNonInheritedPermissions:\n context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(\n folder.permissions\n ),\n canManageStructure:\n context.aco.folderLevelPermissions.canManageFolderStructure(folder),\n canManagePermissions:\n context.aco.folderLevelPermissions.canManageFolderPermissions(folder),\n canManageContent:\n context.aco.folderLevelPermissions.canManageFolderContent(folder)\n }));\n\n return compress(folders);\n });\n },\n listFolderLevelPermissionsTargets: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] =\n await context.aco.folder.listFolderLevelPermissionsTargets();\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFolder: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.create(data);\n });\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.update(id, data);\n });\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAIO,MAAMK,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAIE,wCAAmB,CAAa;EAC5DC,QAAQ,EAAE,aAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,MAAM,EAAE;MACJC,0BAA0B,EAAEA,CAACC,MAAc,EAAEC,CAAC,EAAEC,OAAO,KAAK;QACxD,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACC,yCAAyC,CAC/EL,MAAM,CAACM,WACX,CAAC;MACL,CAAC;MACDC,kBAAkB,EAAEA,CAACP,MAAM,EAAEC,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAOA,OAAO,CAACC,GAAG,CAACC,sBAAsB,CAACI,wBAAwB,CAACR,MAAM,CAAC;MAC9E,CAAC;MACDS,oBAAoB,EAAEA,CAACT,MAAM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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_responses","require","_GraphQLSchemaPlugin","_createFolderTypeDefs","_ensureAuthentication","_resolve","_compress","_folder","createFoldersSchema","params","folderGraphQL","GraphQLSchemaPlugin","typeDefs","createFolderTypeDefs","resolvers","Folder","hasNonInheritedPermissions","folder","_","context","aco","folderLevelPermissions","permissionsIncludeNonInheritedPermissions","permissions","canManageStructure","canManageFolderStructure","canManagePermissions","canManageFolderPermissions","canManageContent","canManageFolderContent","AcoQuery","getFolderModel","__","resolve","ensureAuthentication","cms","getModel","FOLDER_MODEL_ID","getFolder","id","get","listFolders","args","entries","meta","list","ListResponse","e","ErrorResponse","listFoldersCompressed","folders","map","compress","listFolderLevelPermissionsTargets","AcoMutation","createFolder","data","create","updateFolder","update","deleteFolder","delete","name","exports"],"sources":["folder.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\n\nimport { createFolderTypeDefs, CreateFolderTypeDefsParams } from \"./createFolderTypeDefs\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication\";\nimport { resolve } from \"~/utils/resolve\";\nimport { compress } from \"~/utils/compress\";\n\nimport { AcoContext, Folder } from \"~/types\";\nimport { FOLDER_MODEL_ID } from \"~/folder/folder.model\";\n\nexport const createFoldersSchema = (params: CreateFolderTypeDefsParams) => {\n const folderGraphQL = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: createFolderTypeDefs(params),\n resolvers: {\n Folder: {\n hasNonInheritedPermissions: (folder: Folder, _, context) => {\n return context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(\n folder.permissions\n );\n },\n canManageStructure: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderStructure(folder);\n },\n canManagePermissions: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderPermissions(folder);\n },\n canManageContent: (folder, _, context) => {\n return context.aco.folderLevelPermissions.canManageFolderContent(folder);\n }\n },\n AcoQuery: {\n getFolderModel(_, __, context) {\n return resolve(() => {\n ensureAuthentication(context);\n return context.cms.getModel(FOLDER_MODEL_ID);\n });\n },\n getFolder: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.get(id);\n });\n },\n listFolders: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.aco.folder.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listFoldersCompressed: async (_, args: any, context) => {\n return resolve(async () => {\n const [entries] = await context.aco.folder.list(args);\n\n const folders = entries.map(folder => ({\n ...folder,\n hasNonInheritedPermissions:\n context.aco.folderLevelPermissions.permissionsIncludeNonInheritedPermissions(\n folder.permissions\n ),\n canManageStructure:\n context.aco.folderLevelPermissions.canManageFolderStructure(folder),\n canManagePermissions:\n context.aco.folderLevelPermissions.canManageFolderPermissions(\n folder\n ),\n canManageContent:\n context.aco.folderLevelPermissions.canManageFolderContent(folder)\n }));\n\n return compress(folders);\n });\n },\n listFolderLevelPermissionsTargets: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] =\n await context.aco.folder.listFolderLevelPermissionsTargets();\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFolder: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.create(data);\n });\n },\n updateFolder: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.update(id, data);\n });\n },\n deleteFolder: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.folder.delete(id);\n });\n }\n }\n }\n });\n\n folderGraphQL.name = \"aco.graphql.folders\";\n\n return folderGraphQL;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/folder/folder.model.js
CHANGED
|
@@ -89,6 +89,15 @@ const permissionsField = () => (0, _createModelField.createModelField)({
|
|
|
89
89
|
layout: [["target"], ["level"]]
|
|
90
90
|
}
|
|
91
91
|
});
|
|
92
|
+
const extensionsField = () => (0, _createModelField.createModelField)({
|
|
93
|
+
label: "Extensions",
|
|
94
|
+
fieldId: "extensions",
|
|
95
|
+
type: "object",
|
|
96
|
+
settings: {
|
|
97
|
+
layout: [],
|
|
98
|
+
fields: []
|
|
99
|
+
}
|
|
100
|
+
});
|
|
92
101
|
const FOLDER_MODEL_ID = exports.FOLDER_MODEL_ID = "acoFolder";
|
|
93
102
|
const createFolderModel = () => {
|
|
94
103
|
return (0, _apiHeadlessCms.createPrivateModel)({
|
|
@@ -102,7 +111,7 @@ const createFolderModel = () => {
|
|
|
102
111
|
// flp: true
|
|
103
112
|
},
|
|
104
113
|
titleFieldId: "title",
|
|
105
|
-
fields: [titleField(), slugField(), typeField(), parentIdField(), permissionsField()]
|
|
114
|
+
fields: [titleField(), slugField(), typeField(), parentIdField(), permissionsField(), extensionsField()]
|
|
106
115
|
});
|
|
107
116
|
};
|
|
108
117
|
exports.createFolderModel = createFolderModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createModelField","require","_apiHeadlessCms","titleField","createModelField","label","type","validation","name","message","slugField","settings","preset","regex","flags","typeField","parentIdField","permissionsField","fieldId","multipleValues","listValidation","fields","id","storageId","predefinedValues","enabled","values","value","layout","FOLDER_MODEL_ID","exports","createFolderModel","createPrivateModel","modelId","authorization","permissions","titleFieldId"],"sources":["folder.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { createPrivateModel } from \"@webiny/api-headless-cms\";\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst slugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"pattern\",\n settings: {\n preset: \"custom\",\n regex: \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n flags: \"g\"\n },\n message: \"Value must consist of only 'a-z', '0-9' and '-'.\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst parentIdField = () =>\n createModelField({\n label: \"Parent Id\",\n type: \"text\"\n });\n\nconst permissionsField = () =>\n createModelField({\n label: \"Permissions\",\n fieldId: \"permissions\",\n type: \"object\",\n multipleValues: true,\n listValidation: [],\n settings: {\n fields: [\n {\n id: \"target\",\n type: \"text\",\n storageId: \"text@target\",\n fieldId: \"target\",\n label: \"Target\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n },\n {\n id: \"level\",\n type: \"text\",\n storageId: \"text@level\",\n fieldId: \"level\",\n label: \"Level\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Viewer\",\n value: \"viewer\"\n },\n {\n label: \"Editor\",\n value: \"editor\"\n },\n {\n label: \"Owner\",\n value: \"owner\"\n },\n {\n label: \"Public\",\n value: \"public\"\n }\n ]\n }\n }\n ],\n layout: [[\"target\"], [\"level\"]]\n }\n });\n\nexport const FOLDER_MODEL_ID = \"acoFolder\";\n\nexport const createFolderModel = () => {\n return createPrivateModel({\n name: \"ACO - Folder\",\n modelId: FOLDER_MODEL_ID,\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n\n // We're leaving FLP enabled (no need to set `flp: true`).\n // flp: true\n },\n titleFieldId: \"title\",\n fields: [titleField()
|
|
1
|
+
{"version":3,"names":["_createModelField","require","_apiHeadlessCms","titleField","createModelField","label","type","validation","name","message","slugField","settings","preset","regex","flags","typeField","parentIdField","permissionsField","fieldId","multipleValues","listValidation","fields","id","storageId","predefinedValues","enabled","values","value","layout","extensionsField","FOLDER_MODEL_ID","exports","createFolderModel","createPrivateModel","modelId","authorization","permissions","titleFieldId"],"sources":["folder.model.ts"],"sourcesContent":["import { createModelField } from \"~/utils/createModelField\";\nimport { createPrivateModel } from \"@webiny/api-headless-cms\";\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst slugField = () =>\n createModelField({\n label: \"Slug\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n },\n {\n name: \"pattern\",\n settings: {\n preset: \"custom\",\n regex: \"^[a-z0-9]+(-[a-z0-9]+)*$\",\n flags: \"g\"\n },\n message: \"Value must consist of only 'a-z', '0-9' and '-'.\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n });\n\nconst parentIdField = () =>\n createModelField({\n label: \"Parent Id\",\n type: \"text\"\n });\n\nconst permissionsField = () =>\n createModelField({\n label: \"Permissions\",\n fieldId: \"permissions\",\n type: \"object\",\n multipleValues: true,\n listValidation: [],\n settings: {\n fields: [\n {\n id: \"target\",\n type: \"text\",\n storageId: \"text@target\",\n fieldId: \"target\",\n label: \"Target\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ]\n },\n {\n id: \"level\",\n type: \"text\",\n storageId: \"text@level\",\n fieldId: \"level\",\n label: \"Level\",\n validation: [\n {\n name: \"required\",\n message: \"Value is required.\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Viewer\",\n value: \"viewer\"\n },\n {\n label: \"Editor\",\n value: \"editor\"\n },\n {\n label: \"Owner\",\n value: \"owner\"\n },\n {\n label: \"Public\",\n value: \"public\"\n }\n ]\n }\n }\n ],\n layout: [[\"target\"], [\"level\"]]\n }\n });\n\nconst extensionsField = () =>\n createModelField({\n label: \"Extensions\",\n fieldId: \"extensions\",\n type: \"object\",\n settings: {\n layout: [],\n fields: []\n }\n });\n\nexport const FOLDER_MODEL_ID = \"acoFolder\";\n\nexport const createFolderModel = () => {\n return createPrivateModel({\n name: \"ACO - Folder\",\n modelId: FOLDER_MODEL_ID,\n authorization: {\n // Disables base permission checks, but leaves FLP checks enabled.\n permissions: false\n\n // We're leaving FLP enabled (no need to set `flp: true`).\n // flp: true\n },\n titleFieldId: \"title\",\n fields: [\n titleField(),\n slugField(),\n typeField(),\n parentIdField(),\n permissionsField(),\n extensionsField()\n ]\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
package/folder/folder.types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import { ListMeta, ListSort, User } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport { FolderPermission } from \"~/utils/FolderLevelPermissions\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n createdBy: User;\n modifiedBy: User | null;\n savedBy: User;\n title: string;\n slug: string;\n permissions?: FolderPermission[];\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type ListAllFoldersParams = Omit<ListFoldersParams, \"limit\" | \"after\">;\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n permissions?: FolderPermission[];\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface FolderLevelPermissionsTarget<TMeta = Record<string, any>> {\n id: string;\n target: string;\n name: string;\n type: string;\n meta: TMeta;\n}\n\nexport interface FolderLevelPermissionsTargetListMeta {\n totalCount: number;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string): Promise<Folder>;\n\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n listFolderLevelPermissionsTargets(): Promise<\n [FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]\n >;\n\n listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;\n\n create(data: CreateFolderParams): Promise<Folder>;\n\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n\n delete(id: string): Promise<boolean>;\n\n getAncestors(folder: Folder): Promise<Folder[]>;\n\n /**\n * @deprecated use `getAncestors` instead\n */\n getFolderWithAncestors(id: string): Promise<Folder[]>;\n\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["folder.types.ts"],"sourcesContent":["import { ListMeta, ListSort, User } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport { FolderPermission } from \"~/utils/FolderLevelPermissions\";\n\nexport interface Folder {\n id: string;\n entryId: string;\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n createdBy: User;\n modifiedBy: User | null;\n savedBy: User;\n title: string;\n slug: string;\n permissions?: FolderPermission[];\n type: string;\n parentId?: string | null;\n extensions?: Record<string, any>;\n}\n\nexport interface ListFoldersWhere {\n type: string;\n parentId?: string | null;\n}\n\nexport interface ListFoldersParams {\n where: ListFoldersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type ListAllFoldersParams = Omit<ListFoldersParams, \"limit\" | \"after\">;\n\nexport type CreateFolderParams = Pick<Folder, \"title\" | \"slug\" | \"type\" | \"parentId\">;\n\nexport interface UpdateFolderParams {\n title?: string;\n slug?: string;\n permissions?: FolderPermission[];\n parentId?: string;\n}\n\nexport interface DeleteFolderParams {\n id: string;\n}\n\nexport interface FolderLevelPermissionsTarget<TMeta = Record<string, any>> {\n id: string;\n target: string;\n name: string;\n type: string;\n meta: TMeta;\n}\n\nexport interface FolderLevelPermissionsTargetListMeta {\n totalCount: number;\n}\n\nexport interface StorageOperationsGetFolderParams {\n id?: string;\n slug?: string;\n type?: string;\n parentId?: string | null;\n}\n\nexport type StorageOperationsListFoldersParams = ListFoldersParams;\n\nexport interface StorageOperationsCreateFolderParams {\n data: CreateFolderParams;\n}\n\nexport interface StorageOperationsUpdateFolderParams {\n id: string;\n data: UpdateFolderParams;\n}\n\nexport type StorageOperationsDeleteFolderParams = DeleteFolderParams;\n\nexport interface OnFolderBeforeCreateTopicParams {\n input: CreateFolderParams;\n}\n\nexport interface OnFolderAfterCreateTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderBeforeUpdateTopicParams {\n original: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderAfterUpdateTopicParams {\n original: Folder;\n folder: Folder;\n input: Record<string, any>;\n}\n\nexport interface OnFolderBeforeDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface OnFolderAfterDeleteTopicParams {\n folder: Folder;\n}\n\nexport interface AcoFolderCrud {\n get(id: string): Promise<Folder>;\n\n list(params: ListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n listFolderLevelPermissionsTargets(): Promise<\n [FolderLevelPermissionsTarget[], FolderLevelPermissionsTargetListMeta]\n >;\n\n listAll(params: ListAllFoldersParams): Promise<[Folder[], ListMeta]>;\n\n create(data: CreateFolderParams): Promise<Folder>;\n\n update(id: string, data: UpdateFolderParams): Promise<Folder>;\n\n delete(id: string): Promise<boolean>;\n\n getAncestors(folder: Folder): Promise<Folder[]>;\n\n /**\n * @deprecated use `getAncestors` instead\n */\n getFolderWithAncestors(id: string): Promise<Folder[]>;\n\n onFolderBeforeCreate: Topic<OnFolderBeforeCreateTopicParams>;\n onFolderAfterCreate: Topic<OnFolderAfterCreateTopicParams>;\n onFolderBeforeUpdate: Topic<OnFolderBeforeUpdateTopicParams>;\n onFolderAfterUpdate: Topic<OnFolderAfterUpdateTopicParams>;\n onFolderBeforeDelete: Topic<OnFolderBeforeDeleteTopicParams>;\n onFolderAfterDelete: Topic<OnFolderAfterDeleteTopicParams>;\n}\n\nexport interface AcoFolderStorageOperations {\n getFolder(params: StorageOperationsGetFolderParams): Promise<Folder>;\n\n listFolders(params: StorageOperationsListFoldersParams): Promise<[Folder[], ListMeta]>;\n\n createFolder(params: StorageOperationsCreateFolderParams): Promise<Folder>;\n\n updateFolder(params: StorageOperationsUpdateFolderParams): Promise<Folder>;\n\n deleteFolder(params: StorageOperationsDeleteFolderParams): Promise<boolean>;\n}\n"],"mappings":"","ignoreList":[]}
|
package/index.d.ts
CHANGED
|
@@ -7,3 +7,4 @@ export interface CreateAcoParams {
|
|
|
7
7
|
useFolderLevelPermissions?: boolean;
|
|
8
8
|
}
|
|
9
9
|
export declare const createAco: (params?: CreateAcoParams) => (import("@webiny/api").ContextPlugin<import("./types").AcoContext> | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("./types").AcoContext>)[];
|
|
10
|
+
export * from "./folder/createFolderModelModifier";
|
package/index.js
CHANGED
|
@@ -57,6 +57,18 @@ Object.keys(_plugins).forEach(function (key) {
|
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
|
+
var _createFolderModelModifier = require("./folder/createFolderModelModifier");
|
|
61
|
+
Object.keys(_createFolderModelModifier).forEach(function (key) {
|
|
62
|
+
if (key === "default" || key === "__esModule") return;
|
|
63
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
64
|
+
if (key in exports && exports[key] === _createFolderModelModifier[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _createFolderModelModifier[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
60
72
|
const createAco = (params = {}) => {
|
|
61
73
|
return [(0, _createAcoContext.createAcoContext)(params), ...(0, _createAcoGraphQL.createAcoGraphQL)()];
|
|
62
74
|
};
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createAcoContext","require","_createAcoGraphQL","_record","_folder","_filter","_apps","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_plugins","createAco","params","createAcoContext","createAcoGraphQL"],"sources":["index.ts"],"sourcesContent":["import { createAcoContext } from \"~/createAcoContext\";\nimport { createAcoGraphQL } from \"~/createAcoGraphQL\";\n\nexport { SEARCH_RECORD_MODEL_ID } from \"./record/record.model\";\nexport { FOLDER_MODEL_ID } from \"./folder/folder.model\";\nexport { FILTER_MODEL_ID } from \"./filter/filter.model\";\nexport * from \"./apps\";\nexport * from \"./plugins\";\n\nexport interface CreateAcoParams {\n useFolderLevelPermissions?: boolean;\n}\n\nexport const createAco = (params: CreateAcoParams = {}) => {\n return [createAcoContext(params), ...createAcoGraphQL()];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,GAAAlB,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAW,QAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,QAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;
|
|
1
|
+
{"version":3,"names":["_createAcoContext","require","_createAcoGraphQL","_record","_folder","_filter","_apps","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_plugins","_createFolderModelModifier","createAco","params","createAcoContext","createAcoGraphQL"],"sources":["index.ts"],"sourcesContent":["import { createAcoContext } from \"~/createAcoContext\";\nimport { createAcoGraphQL } from \"~/createAcoGraphQL\";\n\nexport { SEARCH_RECORD_MODEL_ID } from \"./record/record.model\";\nexport { FOLDER_MODEL_ID } from \"./folder/folder.model\";\nexport { FILTER_MODEL_ID } from \"./filter/filter.model\";\nexport * from \"./apps\";\nexport * from \"./plugins\";\n\nexport interface CreateAcoParams {\n useFolderLevelPermissions?: boolean;\n}\n\nexport const createAco = (params: CreateAcoParams = {}) => {\n return [createAcoContext(params), ...createAcoGraphQL()];\n};\n\nexport * from \"./folder/createFolderModelModifier\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,GAAAlB,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAW,QAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,QAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAUA,IAAAU,0BAAA,GAAAnB,OAAA;AAAAM,MAAA,CAAAC,IAAA,CAAAY,0BAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,0BAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,0BAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AAJO,MAAMW,SAAS,GAAGA,CAACC,MAAuB,GAAG,CAAC,CAAC,KAAK;EACvD,OAAO,CAAC,IAAAC,kCAAgB,EAACD,MAAM,CAAC,EAAE,GAAG,IAAAE,kCAAgB,EAAC,CAAC,CAAC;AAC5D,CAAC;AAACT,OAAA,CAAAM,SAAA,GAAAA,SAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-aco",
|
|
3
|
-
"version": "5.42.
|
|
3
|
+
"version": "5.42.3-beta.1",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aco:base"
|
|
@@ -22,36 +22,36 @@
|
|
|
22
22
|
"directory": "dist"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@webiny/api": "5.42.
|
|
26
|
-
"@webiny/api-authentication": "5.42.
|
|
27
|
-
"@webiny/api-headless-cms": "5.42.
|
|
28
|
-
"@webiny/api-i18n": "5.42.
|
|
29
|
-
"@webiny/api-security": "5.42.
|
|
30
|
-
"@webiny/api-tenancy": "5.42.
|
|
31
|
-
"@webiny/error": "5.42.
|
|
32
|
-
"@webiny/handler": "5.42.
|
|
33
|
-
"@webiny/handler-graphql": "5.42.
|
|
34
|
-
"@webiny/pubsub": "5.42.
|
|
35
|
-
"@webiny/utils": "5.42.
|
|
36
|
-
"@webiny/validation": "5.42.
|
|
25
|
+
"@webiny/api": "5.42.3-beta.1",
|
|
26
|
+
"@webiny/api-authentication": "5.42.3-beta.1",
|
|
27
|
+
"@webiny/api-headless-cms": "5.42.3-beta.1",
|
|
28
|
+
"@webiny/api-i18n": "5.42.3-beta.1",
|
|
29
|
+
"@webiny/api-security": "5.42.3-beta.1",
|
|
30
|
+
"@webiny/api-tenancy": "5.42.3-beta.1",
|
|
31
|
+
"@webiny/error": "5.42.3-beta.1",
|
|
32
|
+
"@webiny/handler": "5.42.3-beta.1",
|
|
33
|
+
"@webiny/handler-graphql": "5.42.3-beta.1",
|
|
34
|
+
"@webiny/pubsub": "5.42.3-beta.1",
|
|
35
|
+
"@webiny/utils": "5.42.3-beta.1",
|
|
36
|
+
"@webiny/validation": "5.42.3-beta.1",
|
|
37
37
|
"lodash": "4.17.21"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@webiny/api-admin-users": "5.42.
|
|
41
|
-
"@webiny/api-file-manager": "5.42.
|
|
42
|
-
"@webiny/api-i18n-ddb": "5.42.
|
|
43
|
-
"@webiny/api-security-so-ddb": "5.42.
|
|
44
|
-
"@webiny/api-tenancy-so-ddb": "5.42.
|
|
45
|
-
"@webiny/api-wcp": "5.42.
|
|
46
|
-
"@webiny/handler-aws": "5.42.
|
|
47
|
-
"@webiny/plugins": "5.42.
|
|
48
|
-
"@webiny/project-utils": "5.42.
|
|
49
|
-
"@webiny/wcp": "5.42.
|
|
40
|
+
"@webiny/api-admin-users": "5.42.3-beta.1",
|
|
41
|
+
"@webiny/api-file-manager": "5.42.3-beta.1",
|
|
42
|
+
"@webiny/api-i18n-ddb": "5.42.3-beta.1",
|
|
43
|
+
"@webiny/api-security-so-ddb": "5.42.3-beta.1",
|
|
44
|
+
"@webiny/api-tenancy-so-ddb": "5.42.3-beta.1",
|
|
45
|
+
"@webiny/api-wcp": "5.42.3-beta.1",
|
|
46
|
+
"@webiny/handler-aws": "5.42.3-beta.1",
|
|
47
|
+
"@webiny/plugins": "5.42.3-beta.1",
|
|
48
|
+
"@webiny/project-utils": "5.42.3-beta.1",
|
|
49
|
+
"@webiny/wcp": "5.42.3-beta.1",
|
|
50
50
|
"graphql": "15.9.0",
|
|
51
51
|
"prettier": "2.8.8",
|
|
52
52
|
"rimraf": "6.0.1",
|
|
53
53
|
"ttypescript": "1.5.15",
|
|
54
54
|
"typescript": "4.9.5"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "fdf4a5e06080e16be06ca5b538fd17ed70603706"
|
|
57
57
|
}
|