@wix/patterns-cms 1.15.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -105,17 +105,20 @@ describe('useCmsSchemaSource', () => {
105
105
  patternsType: 'NUMBER',
106
106
  label: 'Number',
107
107
  subtitle: 'ID, rating, order number',
108
- group: essentials
108
+ group: essentials,
109
+ supportsPii: false
109
110
  }, {
110
111
  patternsType: 'BOOLEAN',
111
112
  label: 'Boolean',
112
113
  subtitle: 'Yes or no, true or false',
113
- group: essentials
114
+ group: essentials,
115
+ supportsPii: false
114
116
  }, {
115
117
  patternsType: 'DATE',
116
118
  label: 'Date',
117
119
  subtitle: 'Date of event, date added',
118
- group: timeAndLocation
120
+ group: timeAndLocation,
121
+ supportsPii: false
119
122
  }]);
120
123
  });
121
124
  it('builds an offset source keyed by the collectionId', () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_patterns","require","_schema","_data","_useCmsSchemaSource","_fetchUserPermissions","_fetchExternalDbConnections","jest","mock","errorHandler","withErrorHandler","fn","actual","requireActual","collections","getDataCollection","fetchUserPermissions","fetchExternalDbConnections","fetchUserPermissionsMock","fetchExternalDbConnectionsMock","httpClient","collectionWithReference","_id","collectionType","displayField","capabilities","dataOperations","permissions","read","insert","update","remove","plugins","fields","key","type","Type","TEXT","systemField","encrypted","displayName","queryOperators","sortable","REFERENCE","typeMetadata","reference","referencedCollectionId","describe","beforeEach","clearAllMocks","mockResolvedValue","it","source","defineSchemaSource","cmsSchemaSourceInput","collectionId","essentials","timeAndLocation","expect","creatableFieldTypes","toEqual","patternsType","label","subtitle","group","toBe","paginationMode","rating","defineFieldType","display","icons","Small","Medium","filter","filterable","fieldTypes","references","loadSchema","Camels","toBeDefined","seeded"],"sources":["../../../../src/adapter/__tests__/useCmsSchemaSource.spec.ts"],"sourcesContent":["import { defineFieldType } from '@wix/patterns';\nimport { defineSchemaSource } from '@wix/patterns/schema';\nimport { collections } from '@wix/data';\nimport { cmsSchemaSourceInput } from '../useCmsSchemaSource';\nimport { fetchUserPermissions } from '../fetchUserPermissions';\nimport { fetchExternalDbConnections } from '../fetchExternalDbConnections';\n\n// loadCmsSchema imports errorHandler at evaluation time; stub it so importing\n// the source builder is side-effect free.\njest.mock('@wix/essentials', () => ({\n errorHandler: {\n withErrorHandler: (fn: () => unknown) => fn(),\n },\n}));\n\n// Keep @wix/data real (cmsFieldTypeMap reads `collections.Type` at evaluation\n// time) and stub only the collection fetch, so loadSchema runs the real\n// loader + transform against a fixed collection.\njest.mock('@wix/data', () => {\n const actual = jest.requireActual('@wix/data');\n return {\n ...actual,\n collections: {\n ...actual.collections,\n getDataCollection: jest.fn(),\n },\n };\n});\njest.mock('../fetchUserPermissions', () => ({\n fetchUserPermissions: jest.fn(),\n}));\njest.mock('../fetchExternalDbConnections', () => ({\n fetchExternalDbConnections: jest.fn(),\n}));\n\nconst getDataCollection = collections.getDataCollection as unknown as jest.Mock;\nconst fetchUserPermissionsMock = fetchUserPermissions as unknown as jest.Mock;\nconst fetchExternalDbConnectionsMock =\n fetchExternalDbConnections as unknown as jest.Mock;\n\nconst httpClient = {} as unknown as Parameters<\n typeof cmsSchemaSourceInput\n>[0]['httpClient'];\n\n// A collection with one reference field pointing at \"Camels\".\nconst collectionWithReference = (): collections.DataCollection => ({\n _id: 'Products',\n collectionType: 'NATIVE',\n displayField: 'title',\n capabilities: { dataOperations: ['SAVE', 'UPDATE', 'REMOVE'] },\n permissions: {\n read: 'ANYONE',\n insert: 'SITE_MEMBER',\n update: 'SITE_MEMBER',\n remove: 'SITE_MEMBER',\n },\n plugins: [],\n fields: [\n {\n key: 'title',\n type: collections.Type.TEXT,\n systemField: false,\n encrypted: false,\n plugins: [],\n displayName: 'Title',\n capabilities: { queryOperators: [], sortable: true },\n },\n {\n key: 'supplier',\n type: collections.Type.REFERENCE,\n systemField: false,\n encrypted: false,\n plugins: [],\n displayName: 'Supplier',\n capabilities: { queryOperators: [], sortable: false },\n typeMetadata: { reference: { referencedCollectionId: 'Camels' } },\n },\n ],\n});\n\ndescribe('useCmsSchemaSource', () => {\n beforeEach(() => {\n jest.clearAllMocks();\n getDataCollection.mockResolvedValue(collectionWithReference());\n fetchUserPermissionsMock.mockResolvedValue([]);\n fetchExternalDbConnectionsMock.mockResolvedValue([]);\n });\n\n it('declares the creatable types in display order, with CMS labels, subtitles and groups', () => {\n const source = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: 'Pokemon',\n httpClient,\n }),\n );\n\n const essentials = 'Essentials';\n const timeAndLocation = 'Time and location';\n expect(source.creatableFieldTypes).toEqual([\n {\n patternsType: 'SHORT_TEXT',\n label: 'Text',\n subtitle: 'Titles, paragraph',\n group: essentials,\n },\n {\n patternsType: 'NUMBER',\n label: 'Number',\n subtitle: 'ID, rating, order number',\n group: essentials,\n },\n {\n patternsType: 'BOOLEAN',\n label: 'Boolean',\n subtitle: 'Yes or no, true or false',\n group: essentials,\n },\n {\n patternsType: 'DATE',\n label: 'Date',\n subtitle: 'Date of event, date added',\n group: timeAndLocation,\n },\n ]);\n });\n\n it('builds an offset source keyed by the collectionId', () => {\n const source = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: 'Pokemon',\n httpClient,\n }),\n );\n\n expect(source.collectionId).toBe('Pokemon');\n expect(source.paginationMode).toBe('offset');\n });\n\n it('carries consumer-defined field types through to the source', () => {\n const rating = defineFieldType<number>({\n type: 'app.rating',\n display: {\n label: 'Rating',\n icons: { Small: () => null, Medium: () => null },\n },\n filter: { filterable: false },\n });\n const source = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: 'Pokemon',\n httpClient,\n fieldTypes: [rating],\n }),\n );\n\n expect(source.fieldTypes).toEqual([rating]);\n });\n\n it('auto-builds a reference source per reference field once the schema loads', async () => {\n const source = defineSchemaSource(\n cmsSchemaSourceInput({ collectionId: 'Products', httpClient }),\n );\n\n // Nothing is wired until the schema (and its reference fields) is known.\n expect(source.references).toEqual({});\n\n await source.loadSchema();\n\n expect(source.references.Camels).toBeDefined();\n expect(source.references.Camels.collectionId).toBe('Camels');\n });\n\n it('keeps a seeded reference source instead of auto-building it', async () => {\n const seeded = defineSchemaSource(\n cmsSchemaSourceInput({ collectionId: 'Camels', httpClient }),\n );\n const source = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: 'Products',\n httpClient,\n references: { Camels: seeded },\n }),\n );\n\n await source.loadSchema();\n\n expect(source.references.Camels).toBe(seeded);\n });\n});\n"],"mappings":";;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,2BAAA,GAAAL,OAAA;AAEA;AACA;AACAM,IAAI,CAACC,IAAI,CAAC,iBAAiB,EAAE,OAAO;EAClCC,YAAY,EAAE;IACZC,gBAAgB,EAAGC,EAAiB,IAAKA,EAAE,CAAC;EAC9C;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACAJ,IAAI,CAACC,IAAI,CAAC,WAAW,EAAE,MAAM;EAC3B,MAAMI,MAAM,GAAGL,IAAI,CAACM,aAAa,CAAC,WAAW,CAAC;EAC9C,OAAO;IACL,GAAGD,MAAM;IACTE,WAAW,EAAE;MACX,GAAGF,MAAM,CAACE,WAAW;MACrBC,iBAAiB,EAAER,IAAI,CAACI,EAAE,CAAC;IAC7B;EACF,CAAC;AACH,CAAC,CAAC;AACFJ,IAAI,CAACC,IAAI,CAAC,yBAAyB,EAAE,OAAO;EAC1CQ,oBAAoB,EAAET,IAAI,CAACI,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC;AACHJ,IAAI,CAACC,IAAI,CAAC,+BAA+B,EAAE,OAAO;EAChDS,0BAA0B,EAAEV,IAAI,CAACI,EAAE,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,MAAMI,iBAAiB,GAAGD,iBAAW,CAACC,iBAAyC;AAC/E,MAAMG,wBAAwB,GAAGF,0CAA4C;AAC7E,MAAMG,8BAA8B,GAClCF,sDAAkD;AAEpD,MAAMG,UAAU,GAAG,CAAC,CAEF;;AAElB;AACA,MAAMC,uBAAuB,GAAGA,CAAA,MAAmC;EACjEC,GAAG,EAAE,UAAU;EACfC,cAAc,EAAE,QAAQ;EACxBC,YAAY,EAAE,OAAO;EACrBC,YAAY,EAAE;IAAEC,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;EAAE,CAAC;EAC9DC,WAAW,EAAE;IACXC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE,aAAa;IACrBC,MAAM,EAAE,aAAa;IACrBC,MAAM,EAAE;EACV,CAAC;EACDC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE,CACN;IACEC,GAAG,EAAE,OAAO;IACZC,IAAI,EAAErB,iBAAW,CAACsB,IAAI,CAACC,IAAI;IAC3BC,WAAW,EAAE,KAAK;IAClBC,SAAS,EAAE,KAAK;IAChBP,OAAO,EAAE,EAAE;IACXQ,WAAW,EAAE,OAAO;IACpBf,YAAY,EAAE;MAAEgB,cAAc,EAAE,EAAE;MAAEC,QAAQ,EAAE;IAAK;EACrD,CAAC,EACD;IACER,GAAG,EAAE,UAAU;IACfC,IAAI,EAAErB,iBAAW,CAACsB,IAAI,CAACO,SAAS;IAChCL,WAAW,EAAE,KAAK;IAClBC,SAAS,EAAE,KAAK;IAChBP,OAAO,EAAE,EAAE;IACXQ,WAAW,EAAE,UAAU;IACvBf,YAAY,EAAE;MAAEgB,cAAc,EAAE,EAAE;MAAEC,QAAQ,EAAE;IAAM,CAAC;IACrDE,YAAY,EAAE;MAAEC,SAAS,EAAE;QAAEC,sBAAsB,EAAE;MAAS;IAAE;EAClE,CAAC;AAEL,CAAC,CAAC;AAEFC,QAAQ,CAAC,oBAAoB,EAAE,MAAM;EACnCC,UAAU,CAAC,MAAM;IACfzC,IAAI,CAAC0C,aAAa,CAAC,CAAC;IACpBlC,iBAAiB,CAACmC,iBAAiB,CAAC7B,uBAAuB,CAAC,CAAC,CAAC;IAC9DH,wBAAwB,CAACgC,iBAAiB,CAAC,EAAE,CAAC;IAC9C/B,8BAA8B,CAAC+B,iBAAiB,CAAC,EAAE,CAAC;EACtD,CAAC,CAAC;EAEFC,EAAE,CAAC,sFAAsF,EAAE,MAAM;IAC/F,MAAMC,MAAM,GAAG,IAAAC,0BAAkB,EAC/B,IAAAC,wCAAoB,EAAC;MACnBC,YAAY,EAAE,SAAS;MACvBnC;IACF,CAAC,CACH,CAAC;IAED,MAAMoC,UAAU,GAAG,YAAY;IAC/B,MAAMC,eAAe,GAAG,mBAAmB;IAC3CC,MAAM,CAACN,MAAM,CAACO,mBAAmB,CAAC,CAACC,OAAO,CAAC,CACzC;MACEC,YAAY,EAAE,YAAY;MAC1BC,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE,mBAAmB;MAC7BC,KAAK,EAAER;IACT,CAAC,EACD;MACEK,YAAY,EAAE,QAAQ;MACtBC,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE,0BAA0B;MACpCC,KAAK,EAAER;IACT,CAAC,EACD;MACEK,YAAY,EAAE,SAAS;MACvBC,KAAK,EAAE,SAAS;MAChBC,QAAQ,EAAE,0BAA0B;MACpCC,KAAK,EAAER;IACT,CAAC,EACD;MACEK,YAAY,EAAE,MAAM;MACpBC,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAE,2BAA2B;MACrCC,KAAK,EAAEP;IACT,CAAC,CACF,CAAC;EACJ,CAAC,CAAC;EAEFN,EAAE,CAAC,mDAAmD,EAAE,MAAM;IAC5D,MAAMC,MAAM,GAAG,IAAAC,0BAAkB,EAC/B,IAAAC,wCAAoB,EAAC;MACnBC,YAAY,EAAE,SAAS;MACvBnC;IACF,CAAC,CACH,CAAC;IAEDsC,MAAM,CAACN,MAAM,CAACG,YAAY,CAAC,CAACU,IAAI,CAAC,SAAS,CAAC;IAC3CP,MAAM,CAACN,MAAM,CAACc,cAAc,CAAC,CAACD,IAAI,CAAC,QAAQ,CAAC;EAC9C,CAAC,CAAC;EAEFd,EAAE,CAAC,4DAA4D,EAAE,MAAM;IACrE,MAAMgB,MAAM,GAAG,IAAAC,yBAAe,EAAS;MACrCjC,IAAI,EAAE,YAAY;MAClBkC,OAAO,EAAE;QACPP,KAAK,EAAE,QAAQ;QACfQ,KAAK,EAAE;UAAEC,KAAK,EAAEA,CAAA,KAAM,IAAI;UAAEC,MAAM,EAAEA,CAAA,KAAM;QAAK;MACjD,CAAC;MACDC,MAAM,EAAE;QAAEC,UAAU,EAAE;MAAM;IAC9B,CAAC,CAAC;IACF,MAAMtB,MAAM,GAAG,IAAAC,0BAAkB,EAC/B,IAAAC,wCAAoB,EAAC;MACnBC,YAAY,EAAE,SAAS;MACvBnC,UAAU;MACVuD,UAAU,EAAE,CAACR,MAAM;IACrB,CAAC,CACH,CAAC;IAEDT,MAAM,CAACN,MAAM,CAACuB,UAAU,CAAC,CAACf,OAAO,CAAC,CAACO,MAAM,CAAC,CAAC;EAC7C,CAAC,CAAC;EAEFhB,EAAE,CAAC,0EAA0E,EAAE,YAAY;IACzF,MAAMC,MAAM,GAAG,IAAAC,0BAAkB,EAC/B,IAAAC,wCAAoB,EAAC;MAAEC,YAAY,EAAE,UAAU;MAAEnC;IAAW,CAAC,CAC/D,CAAC;;IAED;IACAsC,MAAM,CAACN,MAAM,CAACwB,UAAU,CAAC,CAAChB,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC,MAAMR,MAAM,CAACyB,UAAU,CAAC,CAAC;IAEzBnB,MAAM,CAACN,MAAM,CAACwB,UAAU,CAACE,MAAM,CAAC,CAACC,WAAW,CAAC,CAAC;IAC9CrB,MAAM,CAACN,MAAM,CAACwB,UAAU,CAACE,MAAM,CAACvB,YAAY,CAAC,CAACU,IAAI,CAAC,QAAQ,CAAC;EAC9D,CAAC,CAAC;EAEFd,EAAE,CAAC,6DAA6D,EAAE,YAAY;IAC5E,MAAM6B,MAAM,GAAG,IAAA3B,0BAAkB,EAC/B,IAAAC,wCAAoB,EAAC;MAAEC,YAAY,EAAE,QAAQ;MAAEnC;IAAW,CAAC,CAC7D,CAAC;IACD,MAAMgC,MAAM,GAAG,IAAAC,0BAAkB,EAC/B,IAAAC,wCAAoB,EAAC;MACnBC,YAAY,EAAE,UAAU;MACxBnC,UAAU;MACVwD,UAAU,EAAE;QAAEE,MAAM,EAAEE;MAAO;IAC/B,CAAC,CACH,CAAC;IAED,MAAM5B,MAAM,CAACyB,UAAU,CAAC,CAAC;IAEzBnB,MAAM,CAACN,MAAM,CAACwB,UAAU,CAACE,MAAM,CAAC,CAACb,IAAI,CAACe,MAAM,CAAC;EAC/C,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_patterns","require","_schema","_data","_useCmsSchemaSource","_fetchUserPermissions","_fetchExternalDbConnections","jest","mock","errorHandler","withErrorHandler","fn","actual","requireActual","collections","getDataCollection","fetchUserPermissions","fetchExternalDbConnections","fetchUserPermissionsMock","fetchExternalDbConnectionsMock","httpClient","collectionWithReference","_id","collectionType","displayField","capabilities","dataOperations","permissions","read","insert","update","remove","plugins","fields","key","type","Type","TEXT","systemField","encrypted","displayName","queryOperators","sortable","REFERENCE","typeMetadata","reference","referencedCollectionId","describe","beforeEach","clearAllMocks","mockResolvedValue","it","source","defineSchemaSource","cmsSchemaSourceInput","collectionId","essentials","timeAndLocation","expect","creatableFieldTypes","toEqual","patternsType","label","subtitle","group","supportsPii","toBe","paginationMode","rating","defineFieldType","display","icons","Small","Medium","filter","filterable","fieldTypes","references","loadSchema","Camels","toBeDefined","seeded"],"sources":["../../../../src/adapter/__tests__/useCmsSchemaSource.spec.ts"],"sourcesContent":["import { defineFieldType } from '@wix/patterns';\nimport { defineSchemaSource } from '@wix/patterns/schema';\nimport { collections } from '@wix/data';\nimport { cmsSchemaSourceInput } from '../useCmsSchemaSource';\nimport { fetchUserPermissions } from '../fetchUserPermissions';\nimport { fetchExternalDbConnections } from '../fetchExternalDbConnections';\n\n// loadCmsSchema imports errorHandler at evaluation time; stub it so importing\n// the source builder is side-effect free.\njest.mock('@wix/essentials', () => ({\n errorHandler: {\n withErrorHandler: (fn: () => unknown) => fn(),\n },\n}));\n\n// Keep @wix/data real (cmsFieldTypeMap reads `collections.Type` at evaluation\n// time) and stub only the collection fetch, so loadSchema runs the real\n// loader + transform against a fixed collection.\njest.mock('@wix/data', () => {\n const actual = jest.requireActual('@wix/data');\n return {\n ...actual,\n collections: {\n ...actual.collections,\n getDataCollection: jest.fn(),\n },\n };\n});\njest.mock('../fetchUserPermissions', () => ({\n fetchUserPermissions: jest.fn(),\n}));\njest.mock('../fetchExternalDbConnections', () => ({\n fetchExternalDbConnections: jest.fn(),\n}));\n\nconst getDataCollection = collections.getDataCollection as unknown as jest.Mock;\nconst fetchUserPermissionsMock = fetchUserPermissions as unknown as jest.Mock;\nconst fetchExternalDbConnectionsMock =\n fetchExternalDbConnections as unknown as jest.Mock;\n\nconst httpClient = {} as unknown as Parameters<\n typeof cmsSchemaSourceInput\n>[0]['httpClient'];\n\n// A collection with one reference field pointing at \"Camels\".\nconst collectionWithReference = (): collections.DataCollection => ({\n _id: 'Products',\n collectionType: 'NATIVE',\n displayField: 'title',\n capabilities: { dataOperations: ['SAVE', 'UPDATE', 'REMOVE'] },\n permissions: {\n read: 'ANYONE',\n insert: 'SITE_MEMBER',\n update: 'SITE_MEMBER',\n remove: 'SITE_MEMBER',\n },\n plugins: [],\n fields: [\n {\n key: 'title',\n type: collections.Type.TEXT,\n systemField: false,\n encrypted: false,\n plugins: [],\n displayName: 'Title',\n capabilities: { queryOperators: [], sortable: true },\n },\n {\n key: 'supplier',\n type: collections.Type.REFERENCE,\n systemField: false,\n encrypted: false,\n plugins: [],\n displayName: 'Supplier',\n capabilities: { queryOperators: [], sortable: false },\n typeMetadata: { reference: { referencedCollectionId: 'Camels' } },\n },\n ],\n});\n\ndescribe('useCmsSchemaSource', () => {\n beforeEach(() => {\n jest.clearAllMocks();\n getDataCollection.mockResolvedValue(collectionWithReference());\n fetchUserPermissionsMock.mockResolvedValue([]);\n fetchExternalDbConnectionsMock.mockResolvedValue([]);\n });\n\n it('declares the creatable types in display order, with CMS labels, subtitles and groups', () => {\n const source = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: 'Pokemon',\n httpClient,\n }),\n );\n\n const essentials = 'Essentials';\n const timeAndLocation = 'Time and location';\n expect(source.creatableFieldTypes).toEqual([\n {\n patternsType: 'SHORT_TEXT',\n label: 'Text',\n subtitle: 'Titles, paragraph',\n group: essentials,\n },\n {\n patternsType: 'NUMBER',\n label: 'Number',\n subtitle: 'ID, rating, order number',\n group: essentials,\n supportsPii: false,\n },\n {\n patternsType: 'BOOLEAN',\n label: 'Boolean',\n subtitle: 'Yes or no, true or false',\n group: essentials,\n supportsPii: false,\n },\n {\n patternsType: 'DATE',\n label: 'Date',\n subtitle: 'Date of event, date added',\n group: timeAndLocation,\n supportsPii: false,\n },\n ]);\n });\n\n it('builds an offset source keyed by the collectionId', () => {\n const source = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: 'Pokemon',\n httpClient,\n }),\n );\n\n expect(source.collectionId).toBe('Pokemon');\n expect(source.paginationMode).toBe('offset');\n });\n\n it('carries consumer-defined field types through to the source', () => {\n const rating = defineFieldType<number>({\n type: 'app.rating',\n display: {\n label: 'Rating',\n icons: { Small: () => null, Medium: () => null },\n },\n filter: { filterable: false },\n });\n const source = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: 'Pokemon',\n httpClient,\n fieldTypes: [rating],\n }),\n );\n\n expect(source.fieldTypes).toEqual([rating]);\n });\n\n it('auto-builds a reference source per reference field once the schema loads', async () => {\n const source = defineSchemaSource(\n cmsSchemaSourceInput({ collectionId: 'Products', httpClient }),\n );\n\n // Nothing is wired until the schema (and its reference fields) is known.\n expect(source.references).toEqual({});\n\n await source.loadSchema();\n\n expect(source.references.Camels).toBeDefined();\n expect(source.references.Camels.collectionId).toBe('Camels');\n });\n\n it('keeps a seeded reference source instead of auto-building it', async () => {\n const seeded = defineSchemaSource(\n cmsSchemaSourceInput({ collectionId: 'Camels', httpClient }),\n );\n const source = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: 'Products',\n httpClient,\n references: { Camels: seeded },\n }),\n );\n\n await source.loadSchema();\n\n expect(source.references.Camels).toBe(seeded);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,7 @@ function createCmsSchemaLoader(deps) {
35
35
  return async collectionId => {
36
36
  const metasiteId = includeUserPermissions ? deps.metasiteId : undefined;
37
37
  const [rawCollection, userPermissions, externalDbConnections] = await Promise.all([fetchCmsCollection(collectionId), deps.userPermissions !== undefined ? Promise.resolve(deps.userPermissions) : includeUserPermissions && metasiteId ? (0, _fetchUserPermissions.fetchUserPermissions)(metasiteId).catch(() => []) : Promise.resolve([]), deps.externalDbConnections !== undefined ? Promise.resolve(deps.externalDbConnections) : (0, _fetchExternalDbConnections.fetchExternalDbConnections)(httpClient).catch(() => [])]);
38
+ deps.onCollectionLoaded == null || deps.onCollectionLoaded(rawCollection);
38
39
  const schema = (0, _transformCmsSchema.transformCmsSchema)(rawCollection, {
39
40
  userPermissions,
40
41
  externalDbConnections
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_essentials","_transformCmsSchema","_createCmsBackend","_createCmsFieldActions","_fetchExternalDbConnections","_fetchUserPermissions","fetchCmsCollection","collectionId","errorHandler","withErrorHandler","collections","getDataCollection","includeAllowedDataPermissions","createCmsSchemaLoader","deps","httpClient","includeUserPermissions","metasiteId","undefined","rawCollection","userPermissions","externalDbConnections","Promise","all","resolve","fetchUserPermissions","catch","fetchExternalDbConnections","schema","transformCmsSchema","backend","createCmsBackend","fields","fieldActions","createCmsFieldActions"],"sources":["../../../src/adapter/loadCmsSchema.ts"],"sourcesContent":["import { collections } from '@wix/data';\nimport { errorHandler } from '@wix/essentials';\nimport type { WixPatternsContainerParams } from '@wix/patterns';\nimport type { LoadedSchema, SchemaLoader } from '@wix/patterns/schema';\nimport { transformCmsSchema } from './transformCmsSchema';\nimport { createCmsBackend } from './createCmsBackend';\nimport { createCmsFieldActions } from './createCmsFieldActions';\nimport type { ExternalDbConnection } from './cmsPermissions';\nimport { fetchExternalDbConnections } from './fetchExternalDbConnections';\nimport { fetchUserPermissions } from './fetchUserPermissions';\n\ntype HttpClient = WixPatternsContainerParams['httpClient'];\n\nexport interface CreateCmsSchemaLoaderDeps {\n httpClient: HttpClient;\n /** Fetch the user's ABAC permissions for field-management gating. Default `false`. */\n includeUserPermissions?: boolean;\n /** Host-supplied metasite id; the ABAC permission fetch is skipped without it. */\n metasiteId?: string;\n /** Pre-resolved overrides (tests); skip the internal fetch when provided. */\n userPermissions?: string[];\n externalDbConnections?: ExternalDbConnection[];\n}\n\n/**\n * Fetches the raw `@wix/data` collection. `includeAllowedDataPermissions` asks the\n * server to evaluate the calling user against the collection's data-permission rules\n * (`allowedDataPermissions` on the response — read by cmsPermissions.ts). The option\n * is forwarded at runtime but stripped from the public typings, hence the cast.\n */\nexport async function fetchCmsCollection(\n collectionId: string,\n): Promise<collections.DataCollection> {\n return errorHandler.withErrorHandler<collections.DataCollection>(\n async () =>\n collections.getDataCollection(collectionId, {\n includeAllowedDataPermissions: true,\n } as collections.GetDataCollectionOptions),\n {},\n );\n}\n\n/**\n * Creates the CMS `SchemaLoader`: fetches the collection, ABAC permissions and\n * external-DB connections in parallel and returns them as `LoadedSchema`.\n * Failed permission/connection fetches degrade to `[]`.\n */\nexport function createCmsSchemaLoader<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(deps: CreateCmsSchemaLoaderDeps): SchemaLoader<T> {\n const { httpClient, includeUserPermissions = false } = deps;\n\n return async (collectionId: string): Promise<LoadedSchema<T>> => {\n const metasiteId = includeUserPermissions ? deps.metasiteId : undefined;\n\n const [rawCollection, userPermissions, externalDbConnections] =\n await Promise.all([\n fetchCmsCollection(collectionId),\n deps.userPermissions !== undefined\n ? Promise.resolve(deps.userPermissions)\n : includeUserPermissions && metasiteId\n ? fetchUserPermissions(metasiteId).catch(() => [] as string[])\n : Promise.resolve([] as string[]),\n deps.externalDbConnections !== undefined\n ? Promise.resolve(deps.externalDbConnections)\n : fetchExternalDbConnections(httpClient).catch(\n () => [] as ExternalDbConnection[],\n ),\n ]);\n\n const schema = transformCmsSchema(rawCollection, {\n userPermissions,\n externalDbConnections,\n });\n const backend = createCmsBackend<T>(collectionId, schema.fields);\n const fieldActions = createCmsFieldActions(\n collectionId,\n () => rawCollection,\n );\n\n return { schema, backend, fieldActions };\n };\n}\n"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AAEA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeO,kBAAkBA,CACtCC,YAAoB,EACiB;EACrC,OAAOC,wBAAY,CAACC,gBAAgB,CAClC,YACEC,iBAAW,CAACC,iBAAiB,CAACJ,YAAY,EAAE;IAC1CK,6BAA6B,EAAE;EACjC,CAAyC,CAAC,EAC5C,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAEnCC,IAA+B,EAAmB;EAClD,MAAM;IAAEC,UAAU;IAAEC,sBAAsB,GAAG;EAAM,CAAC,GAAGF,IAAI;EAE3D,OAAO,MAAOP,YAAoB,IAA+B;IAC/D,MAAMU,UAAU,GAAGD,sBAAsB,GAAGF,IAAI,CAACG,UAAU,GAAGC,SAAS;IAEvE,MAAM,CAACC,aAAa,EAAEC,eAAe,EAAEC,qBAAqB,CAAC,GAC3D,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChBjB,kBAAkB,CAACC,YAAY,CAAC,EAChCO,IAAI,CAACM,eAAe,KAAKF,SAAS,GAC9BI,OAAO,CAACE,OAAO,CAACV,IAAI,CAACM,eAAe,CAAC,GACrCJ,sBAAsB,IAAIC,UAAU,GACpC,IAAAQ,0CAAoB,EAACR,UAAU,CAAC,CAACS,KAAK,CAAC,MAAM,EAAc,CAAC,GAC5DJ,OAAO,CAACE,OAAO,CAAC,EAAc,CAAC,EACnCV,IAAI,CAACO,qBAAqB,KAAKH,SAAS,GACpCI,OAAO,CAACE,OAAO,CAACV,IAAI,CAACO,qBAAqB,CAAC,GAC3C,IAAAM,sDAA0B,EAACZ,UAAU,CAAC,CAACW,KAAK,CAC1C,MAAM,EACR,CAAC,CACN,CAAC;IAEJ,MAAME,MAAM,GAAG,IAAAC,sCAAkB,EAACV,aAAa,EAAE;MAC/CC,eAAe;MACfC;IACF,CAAC,CAAC;IACF,MAAMS,OAAO,GAAG,IAAAC,kCAAgB,EAAIxB,YAAY,EAAEqB,MAAM,CAACI,MAAM,CAAC;IAChE,MAAMC,YAAY,GAAG,IAAAC,4CAAqB,EACxC3B,YAAY,EACZ,MAAMY,aACR,CAAC;IAED,OAAO;MAAES,MAAM;MAAEE,OAAO;MAAEG;IAAa,CAAC;EAC1C,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_essentials","_transformCmsSchema","_createCmsBackend","_createCmsFieldActions","_fetchExternalDbConnections","_fetchUserPermissions","fetchCmsCollection","collectionId","errorHandler","withErrorHandler","collections","getDataCollection","includeAllowedDataPermissions","createCmsSchemaLoader","deps","httpClient","includeUserPermissions","metasiteId","undefined","rawCollection","userPermissions","externalDbConnections","Promise","all","resolve","fetchUserPermissions","catch","fetchExternalDbConnections","onCollectionLoaded","schema","transformCmsSchema","backend","createCmsBackend","fields","fieldActions","createCmsFieldActions"],"sources":["../../../src/adapter/loadCmsSchema.ts"],"sourcesContent":["import { collections } from '@wix/data';\nimport { errorHandler } from '@wix/essentials';\nimport type { WixPatternsContainerParams } from '@wix/patterns';\nimport type { LoadedSchema, SchemaLoader } from '@wix/patterns/schema';\nimport { transformCmsSchema } from './transformCmsSchema';\nimport { createCmsBackend } from './createCmsBackend';\nimport { createCmsFieldActions } from './createCmsFieldActions';\nimport type { ExternalDbConnection } from './cmsPermissions';\nimport { fetchExternalDbConnections } from './fetchExternalDbConnections';\nimport { fetchUserPermissions } from './fetchUserPermissions';\n\ntype HttpClient = WixPatternsContainerParams['httpClient'];\n\nexport interface CreateCmsSchemaLoaderDeps {\n httpClient: HttpClient;\n /** Fetch the user's ABAC permissions for field-management gating. Default `false`. */\n includeUserPermissions?: boolean;\n /** Host-supplied metasite id; the ABAC permission fetch is skipped without it. */\n metasiteId?: string;\n /** Pre-resolved overrides (tests); skip the internal fetch when provided. */\n userPermissions?: string[];\n externalDbConnections?: ExternalDbConnection[];\n /** Called with the raw collection on every load, for the parts of it that the\n * source-neutral schema doesn't carry (e.g. who can read the collection). */\n onCollectionLoaded?: (collection: collections.DataCollection) => void;\n}\n\n/**\n * Fetches the raw `@wix/data` collection. `includeAllowedDataPermissions` asks the\n * server to evaluate the calling user against the collection's data-permission rules\n * (`allowedDataPermissions` on the response — read by cmsPermissions.ts). The option\n * is forwarded at runtime but stripped from the public typings, hence the cast.\n */\nexport async function fetchCmsCollection(\n collectionId: string,\n): Promise<collections.DataCollection> {\n return errorHandler.withErrorHandler<collections.DataCollection>(\n async () =>\n collections.getDataCollection(collectionId, {\n includeAllowedDataPermissions: true,\n } as collections.GetDataCollectionOptions),\n {},\n );\n}\n\n/**\n * Creates the CMS `SchemaLoader`: fetches the collection, ABAC permissions and\n * external-DB connections in parallel and returns them as `LoadedSchema`.\n * Failed permission/connection fetches degrade to `[]`.\n */\nexport function createCmsSchemaLoader<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(deps: CreateCmsSchemaLoaderDeps): SchemaLoader<T> {\n const { httpClient, includeUserPermissions = false } = deps;\n\n return async (collectionId: string): Promise<LoadedSchema<T>> => {\n const metasiteId = includeUserPermissions ? deps.metasiteId : undefined;\n\n const [rawCollection, userPermissions, externalDbConnections] =\n await Promise.all([\n fetchCmsCollection(collectionId),\n deps.userPermissions !== undefined\n ? Promise.resolve(deps.userPermissions)\n : includeUserPermissions && metasiteId\n ? fetchUserPermissions(metasiteId).catch(() => [] as string[])\n : Promise.resolve([] as string[]),\n deps.externalDbConnections !== undefined\n ? Promise.resolve(deps.externalDbConnections)\n : fetchExternalDbConnections(httpClient).catch(\n () => [] as ExternalDbConnection[],\n ),\n ]);\n\n deps.onCollectionLoaded?.(rawCollection);\n\n const schema = transformCmsSchema(rawCollection, {\n userPermissions,\n externalDbConnections,\n });\n const backend = createCmsBackend<T>(collectionId, schema.fields);\n const fieldActions = createCmsFieldActions(\n collectionId,\n () => rawCollection,\n );\n\n return { schema, backend, fieldActions };\n };\n}\n"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AAEA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AAkBA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeO,kBAAkBA,CACtCC,YAAoB,EACiB;EACrC,OAAOC,wBAAY,CAACC,gBAAgB,CAClC,YACEC,iBAAW,CAACC,iBAAiB,CAACJ,YAAY,EAAE;IAC1CK,6BAA6B,EAAE;EACjC,CAAyC,CAAC,EAC5C,CAAC,CACH,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAEnCC,IAA+B,EAAmB;EAClD,MAAM;IAAEC,UAAU;IAAEC,sBAAsB,GAAG;EAAM,CAAC,GAAGF,IAAI;EAE3D,OAAO,MAAOP,YAAoB,IAA+B;IAC/D,MAAMU,UAAU,GAAGD,sBAAsB,GAAGF,IAAI,CAACG,UAAU,GAAGC,SAAS;IAEvE,MAAM,CAACC,aAAa,EAAEC,eAAe,EAAEC,qBAAqB,CAAC,GAC3D,MAAMC,OAAO,CAACC,GAAG,CAAC,CAChBjB,kBAAkB,CAACC,YAAY,CAAC,EAChCO,IAAI,CAACM,eAAe,KAAKF,SAAS,GAC9BI,OAAO,CAACE,OAAO,CAACV,IAAI,CAACM,eAAe,CAAC,GACrCJ,sBAAsB,IAAIC,UAAU,GACpC,IAAAQ,0CAAoB,EAACR,UAAU,CAAC,CAACS,KAAK,CAAC,MAAM,EAAc,CAAC,GAC5DJ,OAAO,CAACE,OAAO,CAAC,EAAc,CAAC,EACnCV,IAAI,CAACO,qBAAqB,KAAKH,SAAS,GACpCI,OAAO,CAACE,OAAO,CAACV,IAAI,CAACO,qBAAqB,CAAC,GAC3C,IAAAM,sDAA0B,EAACZ,UAAU,CAAC,CAACW,KAAK,CAC1C,MAAM,EACR,CAAC,CACN,CAAC;IAEJZ,IAAI,CAACc,kBAAkB,YAAvBd,IAAI,CAACc,kBAAkB,CAAGT,aAAa,CAAC;IAExC,MAAMU,MAAM,GAAG,IAAAC,sCAAkB,EAACX,aAAa,EAAE;MAC/CC,eAAe;MACfC;IACF,CAAC,CAAC;IACF,MAAMU,OAAO,GAAG,IAAAC,kCAAgB,EAAIzB,YAAY,EAAEsB,MAAM,CAACI,MAAM,CAAC;IAChE,MAAMC,YAAY,GAAG,IAAAC,4CAAqB,EACxC5B,YAAY,EACZ,MAAMY,aACR,CAAC;IAED,OAAO;MAAEU,MAAM;MAAEE,OAAO;MAAEG;IAAa,CAAC;EAC1C,CAAC;AACH","ignoreList":[]}
@@ -6,13 +6,15 @@ exports.useCmsSchemaSource = useCmsSchemaSource;
6
6
  var _patterns = require("@wix/patterns");
7
7
  var _schema = require("@wix/patterns/schema");
8
8
  var _loadCmsSchema = require("./loadCmsSchema");
9
- const ESSENTIALS = 'Essentials';
10
- const TIME_AND_LOCATION = 'Time and location';
11
-
12
9
  // The field types the add/edit modal offers, in display order. These are the
13
10
  // only types @wix/data can create (see PatternsFieldTypeToCmsFieldType). The
14
11
  // subtitles and group labels are plain strings until this package gets its own
15
12
  // translations.
13
+ //
14
+ // Only text-like types can be encrypted, so the rest turn the PII toggle off.
15
+
16
+ const ESSENTIALS = 'Essentials';
17
+ const TIME_AND_LOCATION = 'Time and location';
16
18
  const CMS_CREATABLE_TYPES = [{
17
19
  patternsType: 'SHORT_TEXT',
18
20
  label: 'Text',
@@ -22,26 +24,39 @@ const CMS_CREATABLE_TYPES = [{
22
24
  patternsType: 'NUMBER',
23
25
  label: 'Number',
24
26
  subtitle: 'ID, rating, order number',
25
- group: ESSENTIALS
27
+ group: ESSENTIALS,
28
+ supportsPii: false
26
29
  }, {
27
30
  patternsType: 'BOOLEAN',
28
31
  label: 'Boolean',
29
32
  subtitle: 'Yes or no, true or false',
30
- group: ESSENTIALS
33
+ group: ESSENTIALS,
34
+ supportsPii: false
31
35
  }, {
32
36
  patternsType: 'DATE',
33
37
  label: 'Date',
34
38
  subtitle: 'Date of event, date added',
35
- group: TIME_AND_LOCATION
39
+ group: TIME_AND_LOCATION,
40
+ supportsPii: false
36
41
  }];
37
42
  function cmsSchemaSourceInput(deps) {
38
43
  const {
39
44
  collectionId,
40
45
  references: seedReferences,
41
46
  fieldTypes,
47
+ onEditCollectionPermissions,
42
48
  ...loaderDeps
43
49
  } = deps;
44
- const loader = (0, _loadCmsSchema.createCmsSchemaLoader)(loaderDeps);
50
+
51
+ // Who can read the collection isn't part of the source-neutral schema, so the
52
+ // raw collection is kept for the PII warning below.
53
+ let collection;
54
+ const loader = (0, _loadCmsSchema.createCmsSchemaLoader)({
55
+ ...loaderDeps,
56
+ onCollectionLoaded: loaded => {
57
+ collection = loaded;
58
+ }
59
+ });
45
60
 
46
61
  // Reference fields are wired automatically: when the schema loads, each
47
62
  // REFERENCE / MULTI_REFERENCE field's referencedCollectionId gets a child CMS
@@ -73,11 +88,31 @@ function cmsSchemaSourceInput(deps) {
73
88
  creatableFieldTypes: CMS_CREATABLE_TYPES,
74
89
  references,
75
90
  fieldTypes,
91
+ // A CMS field marked PII is stored encrypted. Per-type opt-outs live in
92
+ // CMS_CREATABLE_TYPES.
93
+ supportsPii: true,
94
+ // `read: 'ANYONE'` means any site visitor can read the collection's items,
95
+ // so encrypting the field alone doesn't keep it private.
96
+ piiWarning: () => {
97
+ var _collection;
98
+ if (((_collection = collection) == null || (_collection = _collection.permissions) == null ? void 0 : _collection.read) !== 'ANYONE') {
99
+ return undefined;
100
+ }
101
+ const name = collection.displayName || collectionId;
102
+ return {
103
+ text: `"${name}" collection is viewable by everyone. Update permissions so this field isn't exposed.`,
104
+ action: onEditCollectionPermissions && {
105
+ label: 'Update collection permissions',
106
+ onClick: onEditCollectionPermissions
107
+ }
108
+ };
109
+ },
76
110
  // Plain strings until this package gets its own translations. CMS names it
77
111
  // "field" (not "custom field") and shows no subtitle.
78
112
  fieldModalText: {
79
113
  addTitle: 'Add a field',
80
- editTitle: 'Edit field'
114
+ editTitle: 'Edit field',
115
+ settingsLabel: 'Additional settings'
81
116
  }
82
117
  };
83
118
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_patterns","require","_schema","_loadCmsSchema","ESSENTIALS","TIME_AND_LOCATION","CMS_CREATABLE_TYPES","patternsType","label","subtitle","group","cmsSchemaSourceInput","deps","collectionId","references","seedReferences","fieldTypes","loaderDeps","loader","createCmsSchemaLoader","loadSchema","loaded","Object","values","schema","fields","forEach","field","type","referencedCollectionId","referenceMetadata","defineSchemaSource","creatableFieldTypes","fieldModalText","addTitle","editTitle","useCmsSchemaSource","container","useWixPatternsContainer","useSchemaSource","httpClient"],"sources":["../../../src/adapter/useCmsSchemaSource.ts"],"sourcesContent":["import { useWixPatternsContainer } from '@wix/patterns';\nimport type { FieldTypeDefinition } from '@wix/patterns';\nimport { defineSchemaSource, useSchemaSource } from '@wix/patterns/schema';\nimport type {\n CreatableFieldType,\n SchemaSource,\n SchemaSourceInput,\n} from '@wix/patterns/schema';\nimport {\n createCmsSchemaLoader,\n type CreateCmsSchemaLoaderDeps,\n} from './loadCmsSchema';\n\nconst ESSENTIALS = 'Essentials';\nconst TIME_AND_LOCATION = 'Time and location';\n\n// The field types the add/edit modal offers, in display order. These are the\n// only types @wix/data can create (see PatternsFieldTypeToCmsFieldType). The\n// subtitles and group labels are plain strings until this package gets its own\n// translations.\nconst CMS_CREATABLE_TYPES: CreatableFieldType[] = [\n {\n patternsType: 'SHORT_TEXT',\n label: 'Text',\n subtitle: 'Titles, paragraph',\n group: ESSENTIALS,\n },\n {\n patternsType: 'NUMBER',\n label: 'Number',\n subtitle: 'ID, rating, order number',\n group: ESSENTIALS,\n },\n {\n patternsType: 'BOOLEAN',\n label: 'Boolean',\n subtitle: 'Yes or no, true or false',\n group: ESSENTIALS,\n },\n {\n patternsType: 'DATE',\n label: 'Date',\n subtitle: 'Date of event, date added',\n group: TIME_AND_LOCATION,\n },\n];\n\nexport interface UseCmsSchemaSourceDeps\n extends Omit<CreateCmsSchemaLoaderDeps, 'httpClient'> {\n collectionId: string;\n /** Default: the patterns container's client. */\n httpClient?: CreateCmsSchemaLoaderDeps['httpClient'];\n /** Seed sources for referenced collections, keyed by referenced collection\n * id. Usually unnecessary — reference fields are resolved automatically from\n * the loaded schema. Provide an entry only to override the auto-built one. */\n references?: Record<string, SchemaSource<any>>;\n /** Consumer-defined field types, resolved by fields with `type: 'CUSTOM'`. */\n fieldTypes?: FieldTypeDefinition[];\n}\n\nexport function cmsSchemaSourceInput<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(\n deps: UseCmsSchemaSourceDeps & Pick<CreateCmsSchemaLoaderDeps, 'httpClient'>,\n): SchemaSourceInput<T> {\n const {\n collectionId,\n references: seedReferences,\n fieldTypes,\n ...loaderDeps\n } = deps;\n const loader = createCmsSchemaLoader<T>(loaderDeps);\n\n // Reference fields are wired automatically: when the schema loads, each\n // REFERENCE / MULTI_REFERENCE field's referencedCollectionId gets a child CMS\n // source (same loader deps) added to `references`, so entity-page reference\n // inputs can query the referenced collection with no manual wiring. The object\n // is shared with the resolved source; seeded entries win over auto-built ones.\n const references: Record<string, SchemaSource<any>> = { ...seedReferences };\n\n const loadSchema = async () => {\n const loaded = await loader(collectionId);\n Object.values(loaded.schema.fields).forEach((field) => {\n if (field?.type !== 'REFERENCE' && field?.type !== 'MULTI_REFERENCE') {\n return;\n }\n const referencedCollectionId =\n field.referenceMetadata.referencedCollectionId;\n if (referencedCollectionId && !references[referencedCollectionId]) {\n references[referencedCollectionId] = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: referencedCollectionId,\n ...loaderDeps,\n }),\n );\n }\n });\n return loaded;\n };\n\n return {\n collectionId,\n loadSchema,\n creatableFieldTypes: CMS_CREATABLE_TYPES,\n references,\n fieldTypes,\n // Plain strings until this package gets its own translations. CMS names it\n // \"field\" (not \"custom field\") and shows no subtitle.\n fieldModalText: {\n addTitle: 'Add a field',\n editTitle: 'Edit field',\n },\n };\n}\n\n/**\n * A ready-to-use `SchemaSource` for a CMS collection: wraps the CMS schema\n * loader and supplies the CMS field types. Pass it to a `@wix/patterns/schema`\n * collection hook.\n */\nexport function useCmsSchemaSource<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(deps: UseCmsSchemaSourceDeps): SchemaSource<T> {\n const container = useWixPatternsContainer();\n return useSchemaSource<T>(\n cmsSchemaSourceInput<T>({\n ...deps,\n httpClient: deps.httpClient ?? container.httpClient,\n }),\n );\n}\n"],"mappings":";;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAMA,IAAAE,cAAA,GAAAF,OAAA;AAKA,MAAMG,UAAU,GAAG,YAAY;AAC/B,MAAMC,iBAAiB,GAAG,mBAAmB;;AAE7C;AACA;AACA;AACA;AACA,MAAMC,mBAAyC,GAAG,CAChD;EACEC,YAAY,EAAE,YAAY;EAC1BC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,mBAAmB;EAC7BC,KAAK,EAAEN;AACT,CAAC,EACD;EACEG,YAAY,EAAE,QAAQ;EACtBC,KAAK,EAAE,QAAQ;EACfC,QAAQ,EAAE,0BAA0B;EACpCC,KAAK,EAAEN;AACT,CAAC,EACD;EACEG,YAAY,EAAE,SAAS;EACvBC,KAAK,EAAE,SAAS;EAChBC,QAAQ,EAAE,0BAA0B;EACpCC,KAAK,EAAEN;AACT,CAAC,EACD;EACEG,YAAY,EAAE,MAAM;EACpBC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,2BAA2B;EACrCC,KAAK,EAAEL;AACT,CAAC,CACF;AAeM,SAASM,oBAAoBA,CAGlCC,IAA4E,EACtD;EACtB,MAAM;IACJC,YAAY;IACZC,UAAU,EAAEC,cAAc;IAC1BC,UAAU;IACV,GAAGC;EACL,CAAC,GAAGL,IAAI;EACR,MAAMM,MAAM,GAAG,IAAAC,oCAAqB,EAAIF,UAAU,CAAC;;EAEnD;EACA;EACA;EACA;EACA;EACA,MAAMH,UAA6C,GAAG;IAAE,GAAGC;EAAe,CAAC;EAE3E,MAAMK,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC7B,MAAMC,MAAM,GAAG,MAAMH,MAAM,CAACL,YAAY,CAAC;IACzCS,MAAM,CAACC,MAAM,CAACF,MAAM,CAACG,MAAM,CAACC,MAAM,CAAC,CAACC,OAAO,CAAEC,KAAK,IAAK;MACrD,IAAI,CAAAA,KAAK,oBAALA,KAAK,CAAEC,IAAI,MAAK,WAAW,IAAI,CAAAD,KAAK,oBAALA,KAAK,CAAEC,IAAI,MAAK,iBAAiB,EAAE;QACpE;MACF;MACA,MAAMC,sBAAsB,GAC1BF,KAAK,CAACG,iBAAiB,CAACD,sBAAsB;MAChD,IAAIA,sBAAsB,IAAI,CAACf,UAAU,CAACe,sBAAsB,CAAC,EAAE;QACjEf,UAAU,CAACe,sBAAsB,CAAC,GAAG,IAAAE,0BAAkB,EACrDpB,oBAAoB,CAAC;UACnBE,YAAY,EAAEgB,sBAAsB;UACpC,GAAGZ;QACL,CAAC,CACH,CAAC;MACH;IACF,CAAC,CAAC;IACF,OAAOI,MAAM;EACf,CAAC;EAED,OAAO;IACLR,YAAY;IACZO,UAAU;IACVY,mBAAmB,EAAE1B,mBAAmB;IACxCQ,UAAU;IACVE,UAAU;IACV;IACA;IACAiB,cAAc,EAAE;MACdC,QAAQ,EAAE,aAAa;MACvBC,SAAS,EAAE;IACb;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAEhCxB,IAA4B,EAAmB;EAC/C,MAAMyB,SAAS,GAAG,IAAAC,iCAAuB,EAAC,CAAC;EAC3C,OAAO,IAAAC,uBAAe,EACpB5B,oBAAoB,CAAI;IACtB,GAAGC,IAAI;IACP4B,UAAU,EAAE5B,IAAI,CAAC4B,UAAU,IAAIH,SAAS,CAACG;EAC3C,CAAC,CACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_patterns","require","_schema","_loadCmsSchema","ESSENTIALS","TIME_AND_LOCATION","CMS_CREATABLE_TYPES","patternsType","label","subtitle","group","supportsPii","cmsSchemaSourceInput","deps","collectionId","references","seedReferences","fieldTypes","onEditCollectionPermissions","loaderDeps","collection","loader","createCmsSchemaLoader","onCollectionLoaded","loaded","loadSchema","Object","values","schema","fields","forEach","field","type","referencedCollectionId","referenceMetadata","defineSchemaSource","creatableFieldTypes","piiWarning","_collection","permissions","read","undefined","name","displayName","text","action","onClick","fieldModalText","addTitle","editTitle","settingsLabel","useCmsSchemaSource","container","useWixPatternsContainer","useSchemaSource","httpClient"],"sources":["../../../src/adapter/useCmsSchemaSource.ts"],"sourcesContent":["import type { collections } from '@wix/data';\nimport { useWixPatternsContainer } from '@wix/patterns';\nimport type { FieldTypeDefinition } from '@wix/patterns';\nimport { defineSchemaSource, useSchemaSource } from '@wix/patterns/schema';\nimport type {\n CreatableFieldType,\n SchemaSource,\n SchemaSourceInput,\n} from '@wix/patterns/schema';\nimport {\n createCmsSchemaLoader,\n type CreateCmsSchemaLoaderDeps,\n} from './loadCmsSchema';\n\n// The field types the add/edit modal offers, in display order. These are the\n// only types @wix/data can create (see PatternsFieldTypeToCmsFieldType). The\n// subtitles and group labels are plain strings until this package gets its own\n// translations.\n//\n// Only text-like types can be encrypted, so the rest turn the PII toggle off.\n\nconst ESSENTIALS = 'Essentials';\nconst TIME_AND_LOCATION = 'Time and location';\n\nconst CMS_CREATABLE_TYPES: CreatableFieldType[] = [\n {\n patternsType: 'SHORT_TEXT',\n label: 'Text',\n subtitle: 'Titles, paragraph',\n group: ESSENTIALS,\n },\n {\n patternsType: 'NUMBER',\n label: 'Number',\n subtitle: 'ID, rating, order number',\n group: ESSENTIALS,\n supportsPii: false,\n },\n {\n patternsType: 'BOOLEAN',\n label: 'Boolean',\n subtitle: 'Yes or no, true or false',\n group: ESSENTIALS,\n supportsPii: false,\n },\n {\n patternsType: 'DATE',\n label: 'Date',\n subtitle: 'Date of event, date added',\n group: TIME_AND_LOCATION,\n supportsPii: false,\n },\n];\n\nexport interface UseCmsSchemaSourceDeps\n extends Omit<CreateCmsSchemaLoaderDeps, 'httpClient' | 'onCollectionLoaded'> {\n collectionId: string;\n /** Default: the patterns container's client. */\n httpClient?: CreateCmsSchemaLoaderDeps['httpClient'];\n /** Seed sources for referenced collections, keyed by referenced collection\n * id. Usually unnecessary — reference fields are resolved automatically from\n * the loaded schema. Provide an entry only to override the auto-built one. */\n references?: Record<string, SchemaSource<any>>;\n /** Consumer-defined field types, resolved by fields with `type: 'CUSTOM'`. */\n fieldTypes?: FieldTypeDefinition[];\n /** Opens the host's collection-permissions UI. Without it the PII warning\n * shows its text but no action. */\n onEditCollectionPermissions?: () => void;\n}\n\nexport function cmsSchemaSourceInput<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(\n deps: UseCmsSchemaSourceDeps & Pick<CreateCmsSchemaLoaderDeps, 'httpClient'>,\n): SchemaSourceInput<T> {\n const {\n collectionId,\n references: seedReferences,\n fieldTypes,\n onEditCollectionPermissions,\n ...loaderDeps\n } = deps;\n\n // Who can read the collection isn't part of the source-neutral schema, so the\n // raw collection is kept for the PII warning below.\n let collection: collections.DataCollection | undefined;\n const loader = createCmsSchemaLoader<T>({\n ...loaderDeps,\n onCollectionLoaded: (loaded) => {\n collection = loaded;\n },\n });\n\n // Reference fields are wired automatically: when the schema loads, each\n // REFERENCE / MULTI_REFERENCE field's referencedCollectionId gets a child CMS\n // source (same loader deps) added to `references`, so entity-page reference\n // inputs can query the referenced collection with no manual wiring. The object\n // is shared with the resolved source; seeded entries win over auto-built ones.\n const references: Record<string, SchemaSource<any>> = { ...seedReferences };\n\n const loadSchema = async () => {\n const loaded = await loader(collectionId);\n Object.values(loaded.schema.fields).forEach((field) => {\n if (field?.type !== 'REFERENCE' && field?.type !== 'MULTI_REFERENCE') {\n return;\n }\n const referencedCollectionId =\n field.referenceMetadata.referencedCollectionId;\n if (referencedCollectionId && !references[referencedCollectionId]) {\n references[referencedCollectionId] = defineSchemaSource(\n cmsSchemaSourceInput({\n collectionId: referencedCollectionId,\n ...loaderDeps,\n }),\n );\n }\n });\n return loaded;\n };\n\n return {\n collectionId,\n loadSchema,\n creatableFieldTypes: CMS_CREATABLE_TYPES,\n references,\n fieldTypes,\n // A CMS field marked PII is stored encrypted. Per-type opt-outs live in\n // CMS_CREATABLE_TYPES.\n supportsPii: true,\n // `read: 'ANYONE'` means any site visitor can read the collection's items,\n // so encrypting the field alone doesn't keep it private.\n piiWarning: () => {\n if (collection?.permissions?.read !== 'ANYONE') {\n return undefined;\n }\n const name = collection.displayName || collectionId;\n return {\n text: `\"${name}\" collection is viewable by everyone. Update permissions so this field isn't exposed.`,\n action: onEditCollectionPermissions && {\n label: 'Update collection permissions',\n onClick: onEditCollectionPermissions,\n },\n };\n },\n // Plain strings until this package gets its own translations. CMS names it\n // \"field\" (not \"custom field\") and shows no subtitle.\n fieldModalText: {\n addTitle: 'Add a field',\n editTitle: 'Edit field',\n settingsLabel: 'Additional settings',\n },\n };\n}\n\n/**\n * A ready-to-use `SchemaSource` for a CMS collection: wraps the CMS schema\n * loader and supplies the CMS field types. Pass it to a `@wix/patterns/schema`\n * collection hook.\n */\nexport function useCmsSchemaSource<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(deps: UseCmsSchemaSourceDeps): SchemaSource<T> {\n const container = useWixPatternsContainer();\n return useSchemaSource<T>(\n cmsSchemaSourceInput<T>({\n ...deps,\n httpClient: deps.httpClient ?? container.httpClient,\n }),\n );\n}\n"],"mappings":";;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAMA,IAAAE,cAAA,GAAAF,OAAA;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMG,UAAU,GAAG,YAAY;AAC/B,MAAMC,iBAAiB,GAAG,mBAAmB;AAE7C,MAAMC,mBAAyC,GAAG,CAChD;EACEC,YAAY,EAAE,YAAY;EAC1BC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,mBAAmB;EAC7BC,KAAK,EAAEN;AACT,CAAC,EACD;EACEG,YAAY,EAAE,QAAQ;EACtBC,KAAK,EAAE,QAAQ;EACfC,QAAQ,EAAE,0BAA0B;EACpCC,KAAK,EAAEN,UAAU;EACjBO,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,YAAY,EAAE,SAAS;EACvBC,KAAK,EAAE,SAAS;EAChBC,QAAQ,EAAE,0BAA0B;EACpCC,KAAK,EAAEN,UAAU;EACjBO,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,YAAY,EAAE,MAAM;EACpBC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,2BAA2B;EACrCC,KAAK,EAAEL,iBAAiB;EACxBM,WAAW,EAAE;AACf,CAAC,CACF;AAkBM,SAASC,oBAAoBA,CAGlCC,IAA4E,EACtD;EACtB,MAAM;IACJC,YAAY;IACZC,UAAU,EAAEC,cAAc;IAC1BC,UAAU;IACVC,2BAA2B;IAC3B,GAAGC;EACL,CAAC,GAAGN,IAAI;;EAER;EACA;EACA,IAAIO,UAAkD;EACtD,MAAMC,MAAM,GAAG,IAAAC,oCAAqB,EAAI;IACtC,GAAGH,UAAU;IACbI,kBAAkB,EAAGC,MAAM,IAAK;MAC9BJ,UAAU,GAAGI,MAAM;IACrB;EACF,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA,MAAMT,UAA6C,GAAG;IAAE,GAAGC;EAAe,CAAC;EAE3E,MAAMS,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC7B,MAAMD,MAAM,GAAG,MAAMH,MAAM,CAACP,YAAY,CAAC;IACzCY,MAAM,CAACC,MAAM,CAACH,MAAM,CAACI,MAAM,CAACC,MAAM,CAAC,CAACC,OAAO,CAAEC,KAAK,IAAK;MACrD,IAAI,CAAAA,KAAK,oBAALA,KAAK,CAAEC,IAAI,MAAK,WAAW,IAAI,CAAAD,KAAK,oBAALA,KAAK,CAAEC,IAAI,MAAK,iBAAiB,EAAE;QACpE;MACF;MACA,MAAMC,sBAAsB,GAC1BF,KAAK,CAACG,iBAAiB,CAACD,sBAAsB;MAChD,IAAIA,sBAAsB,IAAI,CAAClB,UAAU,CAACkB,sBAAsB,CAAC,EAAE;QACjElB,UAAU,CAACkB,sBAAsB,CAAC,GAAG,IAAAE,0BAAkB,EACrDvB,oBAAoB,CAAC;UACnBE,YAAY,EAAEmB,sBAAsB;UACpC,GAAGd;QACL,CAAC,CACH,CAAC;MACH;IACF,CAAC,CAAC;IACF,OAAOK,MAAM;EACf,CAAC;EAED,OAAO;IACLV,YAAY;IACZW,UAAU;IACVW,mBAAmB,EAAE9B,mBAAmB;IACxCS,UAAU;IACVE,UAAU;IACV;IACA;IACAN,WAAW,EAAE,IAAI;IACjB;IACA;IACA0B,UAAU,EAAEA,CAAA,KAAM;MAAA,IAAAC,WAAA;MAChB,IAAI,EAAAA,WAAA,GAAAlB,UAAU,cAAAkB,WAAA,GAAVA,WAAA,CAAYC,WAAW,qBAAvBD,WAAA,CAAyBE,IAAI,MAAK,QAAQ,EAAE;QAC9C,OAAOC,SAAS;MAClB;MACA,MAAMC,IAAI,GAAGtB,UAAU,CAACuB,WAAW,IAAI7B,YAAY;MACnD,OAAO;QACL8B,IAAI,EAAE,IAAIF,IAAI,uFAAuF;QACrGG,MAAM,EAAE3B,2BAA2B,IAAI;UACrCV,KAAK,EAAE,+BAA+B;UACtCsC,OAAO,EAAE5B;QACX;MACF,CAAC;IACH,CAAC;IACD;IACA;IACA6B,cAAc,EAAE;MACdC,QAAQ,EAAE,aAAa;MACvBC,SAAS,EAAE,YAAY;MACvBC,aAAa,EAAE;IACjB;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAEhCtC,IAA4B,EAAmB;EAC/C,MAAMuC,SAAS,GAAG,IAAAC,iCAAuB,EAAC,CAAC;EAC3C,OAAO,IAAAC,uBAAe,EACpB1C,oBAAoB,CAAI;IACtB,GAAGC,IAAI;IACP0C,UAAU,EAAE1C,IAAI,CAAC0C,UAAU,IAAIH,SAAS,CAACG;EAC3C,CAAC,CACH,CAAC;AACH","ignoreList":[]}
@@ -95,18 +95,21 @@ describe('useCmsSchemaSource', () => {
95
95
  label: 'Number',
96
96
  subtitle: 'ID, rating, order number',
97
97
  group: essentials,
98
+ supportsPii: false,
98
99
  },
99
100
  {
100
101
  patternsType: 'BOOLEAN',
101
102
  label: 'Boolean',
102
103
  subtitle: 'Yes or no, true or false',
103
104
  group: essentials,
105
+ supportsPii: false,
104
106
  },
105
107
  {
106
108
  patternsType: 'DATE',
107
109
  label: 'Date',
108
110
  subtitle: 'Date of event, date added',
109
111
  group: timeAndLocation,
112
+ supportsPii: false,
110
113
  },
111
114
  ]);
112
115
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useCmsSchemaSource.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/useCmsSchemaSource.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCmsSchemaSource.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/useCmsSchemaSource.spec.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ export function createCmsSchemaLoader(deps) {
36
36
  ? Promise.resolve(deps.externalDbConnections)
37
37
  : fetchExternalDbConnections(httpClient).catch(() => []),
38
38
  ]);
39
+ deps.onCollectionLoaded?.(rawCollection);
39
40
  const schema = transformCmsSchema(rawCollection, {
40
41
  userPermissions,
41
42
  externalDbConnections,
@@ -1 +1 @@
1
- {"version":3,"file":"loadCmsSchema.js","sourceRoot":"","sources":["../../../src/adapter/loadCmsSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAe9D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAoB;IAEpB,OAAO,YAAY,CAAC,gBAAgB,CAClC,KAAK,IAAI,EAAE,CACT,WAAW,CAAC,iBAAiB,CAAC,YAAY,EAAE;QAC1C,6BAA6B,EAAE,IAAI;KACI,CAAC,EAC5C,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAEnC,IAA+B;IAC/B,MAAM,EAAE,UAAU,EAAE,sBAAsB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAE5D,OAAO,KAAK,EAAE,YAAoB,EAA4B,EAAE;QAC9D,MAAM,UAAU,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAExE,MAAM,CAAC,aAAa,EAAE,eAAe,EAAE,qBAAqB,CAAC,GAC3D,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,kBAAkB,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,eAAe,KAAK,SAAS;gBAChC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;gBACvC,CAAC,CAAC,sBAAsB,IAAI,UAAU;oBACtC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC;oBAC9D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAc,CAAC;YACnC,IAAI,CAAC,qBAAqB,KAAK,SAAS;gBACtC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAC7C,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,KAAK,CAC1C,GAAG,EAAE,CAAC,EAA4B,CACnC;SACN,CAAC,CAAC;QAEL,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,EAAE;YAC/C,eAAe;YACf,qBAAqB;SACtB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,gBAAgB,CAAI,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,qBAAqB,CACxC,YAAY,EACZ,GAAG,EAAE,CAAC,aAAa,CACpB,CAAC;QAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"loadCmsSchema.js","sourceRoot":"","sources":["../../../src/adapter/loadCmsSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAkB9D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAoB;IAEpB,OAAO,YAAY,CAAC,gBAAgB,CAClC,KAAK,IAAI,EAAE,CACT,WAAW,CAAC,iBAAiB,CAAC,YAAY,EAAE;QAC1C,6BAA6B,EAAE,IAAI;KACI,CAAC,EAC5C,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAEnC,IAA+B;IAC/B,MAAM,EAAE,UAAU,EAAE,sBAAsB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAE5D,OAAO,KAAK,EAAE,YAAoB,EAA4B,EAAE;QAC9D,MAAM,UAAU,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAExE,MAAM,CAAC,aAAa,EAAE,eAAe,EAAE,qBAAqB,CAAC,GAC3D,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,kBAAkB,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,eAAe,KAAK,SAAS;gBAChC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;gBACvC,CAAC,CAAC,sBAAsB,IAAI,UAAU;oBACtC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC;oBAC9D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAc,CAAC;YACnC,IAAI,CAAC,qBAAqB,KAAK,SAAS;gBACtC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAC7C,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,KAAK,CAC1C,GAAG,EAAE,CAAC,EAA4B,CACnC;SACN,CAAC,CAAC;QAEL,IAAI,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,EAAE;YAC/C,eAAe;YACf,qBAAqB;SACtB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,gBAAgB,CAAI,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,qBAAqB,CACxC,YAAY,EACZ,GAAG,EAAE,CAAC,aAAa,CACpB,CAAC;QAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC"}
@@ -1,12 +1,14 @@
1
1
  import { useWixPatternsContainer } from '@wix/patterns';
2
2
  import { defineSchemaSource, useSchemaSource } from '@wix/patterns/schema';
3
3
  import { createCmsSchemaLoader, } from './loadCmsSchema';
4
- const ESSENTIALS = 'Essentials';
5
- const TIME_AND_LOCATION = 'Time and location';
6
4
  // The field types the add/edit modal offers, in display order. These are the
7
5
  // only types @wix/data can create (see PatternsFieldTypeToCmsFieldType). The
8
6
  // subtitles and group labels are plain strings until this package gets its own
9
7
  // translations.
8
+ //
9
+ // Only text-like types can be encrypted, so the rest turn the PII toggle off.
10
+ const ESSENTIALS = 'Essentials';
11
+ const TIME_AND_LOCATION = 'Time and location';
10
12
  const CMS_CREATABLE_TYPES = [
11
13
  {
12
14
  patternsType: 'SHORT_TEXT',
@@ -19,23 +21,34 @@ const CMS_CREATABLE_TYPES = [
19
21
  label: 'Number',
20
22
  subtitle: 'ID, rating, order number',
21
23
  group: ESSENTIALS,
24
+ supportsPii: false,
22
25
  },
23
26
  {
24
27
  patternsType: 'BOOLEAN',
25
28
  label: 'Boolean',
26
29
  subtitle: 'Yes or no, true or false',
27
30
  group: ESSENTIALS,
31
+ supportsPii: false,
28
32
  },
29
33
  {
30
34
  patternsType: 'DATE',
31
35
  label: 'Date',
32
36
  subtitle: 'Date of event, date added',
33
37
  group: TIME_AND_LOCATION,
38
+ supportsPii: false,
34
39
  },
35
40
  ];
36
41
  export function cmsSchemaSourceInput(deps) {
37
- const { collectionId, references: seedReferences, fieldTypes, ...loaderDeps } = deps;
38
- const loader = createCmsSchemaLoader(loaderDeps);
42
+ const { collectionId, references: seedReferences, fieldTypes, onEditCollectionPermissions, ...loaderDeps } = deps;
43
+ // Who can read the collection isn't part of the source-neutral schema, so the
44
+ // raw collection is kept for the PII warning below.
45
+ let collection;
46
+ const loader = createCmsSchemaLoader({
47
+ ...loaderDeps,
48
+ onCollectionLoaded: (loaded) => {
49
+ collection = loaded;
50
+ },
51
+ });
39
52
  // Reference fields are wired automatically: when the schema loads, each
40
53
  // REFERENCE / MULTI_REFERENCE field's referencedCollectionId gets a child CMS
41
54
  // source (same loader deps) added to `references`, so entity-page reference
@@ -64,11 +77,30 @@ export function cmsSchemaSourceInput(deps) {
64
77
  creatableFieldTypes: CMS_CREATABLE_TYPES,
65
78
  references,
66
79
  fieldTypes,
80
+ // A CMS field marked PII is stored encrypted. Per-type opt-outs live in
81
+ // CMS_CREATABLE_TYPES.
82
+ supportsPii: true,
83
+ // `read: 'ANYONE'` means any site visitor can read the collection's items,
84
+ // so encrypting the field alone doesn't keep it private.
85
+ piiWarning: () => {
86
+ if (collection?.permissions?.read !== 'ANYONE') {
87
+ return undefined;
88
+ }
89
+ const name = collection.displayName || collectionId;
90
+ return {
91
+ text: `"${name}" collection is viewable by everyone. Update permissions so this field isn't exposed.`,
92
+ action: onEditCollectionPermissions && {
93
+ label: 'Update collection permissions',
94
+ onClick: onEditCollectionPermissions,
95
+ },
96
+ };
97
+ },
67
98
  // Plain strings until this package gets its own translations. CMS names it
68
99
  // "field" (not "custom field") and shows no subtitle.
69
100
  fieldModalText: {
70
101
  addTitle: 'Add a field',
71
102
  editTitle: 'Edit field',
103
+ settingsLabel: 'Additional settings',
72
104
  },
73
105
  };
74
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useCmsSchemaSource.js","sourceRoot":"","sources":["../../../src/adapter/useCmsSchemaSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM3E,OAAO,EACL,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,gBAAgB;AAChB,MAAM,mBAAmB,GAAyB;IAChD;QACE,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,mBAAmB;QAC7B,KAAK,EAAE,UAAU;KAClB;IACD;QACE,YAAY,EAAE,QAAQ;QACtB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,0BAA0B;QACpC,KAAK,EAAE,UAAU;KAClB;IACD;QACE,YAAY,EAAE,SAAS;QACvB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,0BAA0B;QACpC,KAAK,EAAE,UAAU;KAClB;IACD;QACE,YAAY,EAAE,MAAM;QACpB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,2BAA2B;QACrC,KAAK,EAAE,iBAAiB;KACzB;CACF,CAAC;AAeF,MAAM,UAAU,oBAAoB,CAGlC,IAA4E;IAE5E,MAAM,EACJ,YAAY,EACZ,UAAU,EAAE,cAAc,EAC1B,UAAU,EACV,GAAG,UAAU,EACd,GAAG,IAAI,CAAC;IACT,MAAM,MAAM,GAAG,qBAAqB,CAAI,UAAU,CAAC,CAAC;IAEpD,wEAAwE;IACxE,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,MAAM,UAAU,GAAsC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE5E,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACpD,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,EAAE,IAAI,KAAK,iBAAiB,EAAE;gBACpE,OAAO;aACR;YACD,MAAM,sBAAsB,GAC1B,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;YACjD,IAAI,sBAAsB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;gBACjE,UAAU,CAAC,sBAAsB,CAAC,GAAG,kBAAkB,CACrD,oBAAoB,CAAC;oBACnB,YAAY,EAAE,sBAAsB;oBACpC,GAAG,UAAU;iBACd,CAAC,CACH,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,UAAU;QACV,mBAAmB,EAAE,mBAAmB;QACxC,UAAU;QACV,UAAU;QACV,2EAA2E;QAC3E,sDAAsD;QACtD,cAAc,EAAE;YACd,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,YAAY;SACxB;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAEhC,IAA4B;IAC5B,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC5C,OAAO,eAAe,CACpB,oBAAoB,CAAI;QACtB,GAAG,IAAI;QACP,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU;KACpD,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useCmsSchemaSource.js","sourceRoot":"","sources":["../../../src/adapter/useCmsSchemaSource.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,9 @@ export interface CreateCmsSchemaLoaderDeps {
12
12
  /** Pre-resolved overrides (tests); skip the internal fetch when provided. */
13
13
  userPermissions?: string[];
14
14
  externalDbConnections?: ExternalDbConnection[];
15
+ /** Called with the raw collection on every load, for the parts of it that the
16
+ * source-neutral schema doesn't carry (e.g. who can read the collection). */
17
+ onCollectionLoaded?: (collection: collections.DataCollection) => void;
15
18
  }
16
19
  /**
17
20
  * Fetches the raw `@wix/data` collection. `includeAllowedDataPermissions` asks the
@@ -1 +1 @@
1
- {"version":3,"file":"loadCmsSchema.d.ts","sourceRoot":"","sources":["../../../src/adapter/loadCmsSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,KAAK,UAAU,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,sFAAsF;IACtF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAChD;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAQrC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,IAAI,EAAE,yBAAyB,GAAG,YAAY,CAAC,CAAC,CAAC,CAiClD"}
1
+ {"version":3,"file":"loadCmsSchema.d.ts","sourceRoot":"","sources":["../../../src/adapter/loadCmsSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,KAAK,UAAU,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;AAE3D,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,sFAAsF;IACtF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/C;kFAC8E;IAC9E,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,cAAc,KAAK,IAAI,CAAC;CACvE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAQrC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,IAAI,EAAE,yBAAyB,GAAG,YAAY,CAAC,CAAC,CAAC,CAmClD"}
@@ -1,7 +1,7 @@
1
1
  import type { FieldTypeDefinition } from '@wix/patterns';
2
2
  import type { SchemaSource, SchemaSourceInput } from '@wix/patterns/schema';
3
3
  import { type CreateCmsSchemaLoaderDeps } from './loadCmsSchema';
4
- export interface UseCmsSchemaSourceDeps extends Omit<CreateCmsSchemaLoaderDeps, 'httpClient'> {
4
+ export interface UseCmsSchemaSourceDeps extends Omit<CreateCmsSchemaLoaderDeps, 'httpClient' | 'onCollectionLoaded'> {
5
5
  collectionId: string;
6
6
  /** Default: the patterns container's client. */
7
7
  httpClient?: CreateCmsSchemaLoaderDeps['httpClient'];
@@ -11,6 +11,9 @@ export interface UseCmsSchemaSourceDeps extends Omit<CreateCmsSchemaLoaderDeps,
11
11
  references?: Record<string, SchemaSource<any>>;
12
12
  /** Consumer-defined field types, resolved by fields with `type: 'CUSTOM'`. */
13
13
  fieldTypes?: FieldTypeDefinition[];
14
+ /** Opens the host's collection-permissions UI. Without it the PII warning
15
+ * shows its text but no action. */
16
+ onEditCollectionPermissions?: () => void;
14
17
  }
15
18
  export declare function cmsSchemaSourceInput<T extends Record<string, unknown> = Record<string, unknown>>(deps: UseCmsSchemaSourceDeps & Pick<CreateCmsSchemaLoaderDeps, 'httpClient'>): SchemaSourceInput<T>;
16
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"useCmsSchemaSource.d.ts","sourceRoot":"","sources":["../../../src/adapter/useCmsSchemaSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAEV,YAAY,EACZ,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,iBAAiB,CAAC;AAoCzB,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,UAAU,CAAC,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACrD;;mFAE+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,8EAA8E;IAC9E,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE3D,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,GAC3E,iBAAiB,CAAC,CAAC,CAAC,CAiDtB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,IAAI,EAAE,sBAAsB,GAAG,YAAY,CAAC,CAAC,CAAC,CAQ/C"}
1
+ {"version":3,"file":"useCmsSchemaSource.d.ts","sourceRoot":"","sources":["../../../src/adapter/useCmsSchemaSource.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAEV,YAAY,EACZ,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,iBAAiB,CAAC;AA0CzB,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,yBAAyB,EAAE,YAAY,GAAG,oBAAoB,CAAC;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,UAAU,CAAC,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACrD;;mFAE+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,8EAA8E;IAC9E,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC;wCACoC;IACpC,2BAA2B,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1C;AAED,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE3D,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,GAC3E,iBAAiB,CAAC,CAAC,CAAC,CA8EtB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,IAAI,EAAE,sBAAsB,GAAG,YAAY,CAAC,CAAC,CAAC,CAQ/C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/patterns-cms",
3
- "version": "1.15.0",
3
+ "version": "1.16.0",
4
4
  "license": "UNLICENSED",
5
5
  "author": {
6
6
  "name": "Cairo",
@@ -28,9 +28,9 @@
28
28
  ],
29
29
  "dependencies": {
30
30
  "@babel/runtime": "^7.0.0",
31
- "@wix/bex-utils": "2.124.0",
31
+ "@wix/bex-utils": "2.125.0",
32
32
  "@wix/data": "^1.0.323",
33
- "@wix/patterns": "1.431.0",
33
+ "@wix/patterns": "1.432.0",
34
34
  "@wix/wix-data-items-sdk": "^1.0.504",
35
35
  "lodash": "^4.17.20",
36
36
  "tslib": "^2.0.0"
@@ -134,5 +134,5 @@
134
134
  "wallaby": {
135
135
  "autoDetect": true
136
136
  },
137
- "falconPackageHash": "9509b4d9014f69a2e5d09df5ade6c13fd4f28e872d0c1b3a6c5953ce"
137
+ "falconPackageHash": "c872bbfc74e89121cdbcdd306da0ab24ecf61fbab6cf63da549aab17"
138
138
  }