@endora-commerce/mod-cms 0.0.0-stage → 0.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +65 -2
- package/dist/admin/api/cms-client.d.ts +77 -0
- package/dist/admin/api/cms-client.d.ts.map +1 -0
- package/dist/admin/api/cms-client.js +162 -0
- package/dist/admin/api/cms-client.js.map +1 -0
- package/dist/admin/components/AdminCatalogPreviewProvider.d.ts +6 -0
- package/dist/admin/components/AdminCatalogPreviewProvider.d.ts.map +1 -0
- package/dist/admin/components/AdminCatalogPreviewProvider.js +74 -0
- package/dist/admin/components/AdminCatalogPreviewProvider.js.map +1 -0
- package/dist/admin/components/AdminCmsAssetProvider.d.ts +9 -0
- package/dist/admin/components/AdminCmsAssetProvider.d.ts.map +1 -0
- package/dist/admin/components/AdminCmsAssetProvider.js +50 -0
- package/dist/admin/components/AdminCmsAssetProvider.js.map +1 -0
- package/dist/admin/components/BackgroundFields.d.ts +4 -0
- package/dist/admin/components/BackgroundFields.d.ts.map +1 -0
- package/dist/admin/components/BackgroundFields.js +40 -0
- package/dist/admin/components/BackgroundFields.js.map +1 -0
- package/dist/admin/components/ButtonLinkFields.d.ts +6 -0
- package/dist/admin/components/ButtonLinkFields.d.ts.map +1 -0
- package/dist/admin/components/ButtonLinkFields.js +127 -0
- package/dist/admin/components/ButtonLinkFields.js.map +1 -0
- package/dist/admin/components/CarouselPreviewNav.d.ts +12 -0
- package/dist/admin/components/CarouselPreviewNav.d.ts.map +1 -0
- package/dist/admin/components/CarouselPreviewNav.js +31 -0
- package/dist/admin/components/CarouselPreviewNav.js.map +1 -0
- package/dist/admin/components/CmsContentEditorLayout.d.ts +12 -0
- package/dist/admin/components/CmsContentEditorLayout.d.ts.map +1 -0
- package/dist/admin/components/CmsContentEditorLayout.js +9 -0
- package/dist/admin/components/CmsContentEditorLayout.js.map +1 -0
- package/dist/admin/components/ComponentDragHandle.d.ts +6 -0
- package/dist/admin/components/ComponentDragHandle.d.ts.map +1 -0
- package/dist/admin/components/ComponentDragHandle.js +119 -0
- package/dist/admin/components/ComponentDragHandle.js.map +1 -0
- package/dist/admin/components/ContentSliderActionBarExtras.d.ts +6 -0
- package/dist/admin/components/ContentSliderActionBarExtras.d.ts.map +1 -0
- package/dist/admin/components/ContentSliderActionBarExtras.js +109 -0
- package/dist/admin/components/ContentSliderActionBarExtras.js.map +1 -0
- package/dist/admin/components/HookBlockAttachmentsPanel.d.ts +9 -0
- package/dist/admin/components/HookBlockAttachmentsPanel.d.ts.map +1 -0
- package/dist/admin/components/HookBlockAttachmentsPanel.js +137 -0
- package/dist/admin/components/HookBlockAttachmentsPanel.js.map +1 -0
- package/dist/admin/components/PageBuilderActionBar.d.ts +10 -0
- package/dist/admin/components/PageBuilderActionBar.d.ts.map +1 -0
- package/dist/admin/components/PageBuilderActionBar.js +118 -0
- package/dist/admin/components/PageBuilderActionBar.js.map +1 -0
- package/dist/admin/components/PageBuilderDrawer.d.ts +16 -0
- package/dist/admin/components/PageBuilderDrawer.d.ts.map +1 -0
- package/dist/admin/components/PageBuilderDrawer.js +53 -0
- package/dist/admin/components/PageBuilderDrawer.js.map +1 -0
- package/dist/admin/components/PageBuilderEditor.d.ts +45 -0
- package/dist/admin/components/PageBuilderEditor.d.ts.map +1 -0
- package/dist/admin/components/PageBuilderEditor.js +632 -0
- package/dist/admin/components/PageBuilderEditor.js.map +1 -0
- package/dist/admin/components/PuckActionGuard.d.ts +12 -0
- package/dist/admin/components/PuckActionGuard.d.ts.map +1 -0
- package/dist/admin/components/PuckActionGuard.js +30 -0
- package/dist/admin/components/PuckActionGuard.js.map +1 -0
- package/dist/admin/components/RowLayoutPicker.d.ts +8 -0
- package/dist/admin/components/RowLayoutPicker.d.ts.map +1 -0
- package/dist/admin/components/RowLayoutPicker.js +17 -0
- package/dist/admin/components/RowLayoutPicker.js.map +1 -0
- package/dist/admin/components/SliderPreviewActionBarExtras.d.ts +6 -0
- package/dist/admin/components/SliderPreviewActionBarExtras.d.ts.map +1 -0
- package/dist/admin/components/SliderPreviewActionBarExtras.js +32 -0
- package/dist/admin/components/SliderPreviewActionBarExtras.js.map +1 -0
- package/dist/admin/components/admin-catalog-preview-map.d.ts +17 -0
- package/dist/admin/components/admin-catalog-preview-map.d.ts.map +1 -0
- package/dist/admin/components/admin-catalog-preview-map.js +18 -0
- package/dist/admin/components/admin-catalog-preview-map.js.map +1 -0
- package/dist/admin/components/build-viewports.d.ts +23 -0
- package/dist/admin/components/build-viewports.d.ts.map +1 -0
- package/dist/admin/components/build-viewports.js +23 -0
- package/dist/admin/components/build-viewports.js.map +1 -0
- package/dist/admin/components/cms-template-layout.d.ts +16 -0
- package/dist/admin/components/cms-template-layout.d.ts.map +1 -0
- package/dist/admin/components/cms-template-layout.js +53 -0
- package/dist/admin/components/cms-template-layout.js.map +1 -0
- package/dist/admin/components/page-builder-i18n.d.ts +27 -0
- package/dist/admin/components/page-builder-i18n.d.ts.map +1 -0
- package/dist/admin/components/page-builder-i18n.js +34 -0
- package/dist/admin/components/page-builder-i18n.js.map +1 -0
- package/dist/admin/components/puck-safe.d.ts +10 -0
- package/dist/admin/components/puck-safe.d.ts.map +1 -0
- package/dist/admin/components/puck-safe.js +22 -0
- package/dist/admin/components/puck-safe.js.map +1 -0
- package/dist/admin/components/scope-utils.d.ts +4 -0
- package/dist/admin/components/scope-utils.d.ts.map +1 -0
- package/dist/admin/components/scope-utils.js +7 -0
- package/dist/admin/components/scope-utils.js.map +1 -0
- package/dist/admin/editors/BlockEditor.d.ts +9 -0
- package/dist/admin/editors/BlockEditor.d.ts.map +1 -0
- package/dist/admin/editors/BlockEditor.js +217 -0
- package/dist/admin/editors/BlockEditor.js.map +1 -0
- package/dist/admin/editors/PageEditor.d.ts +9 -0
- package/dist/admin/editors/PageEditor.d.ts.map +1 -0
- package/dist/admin/editors/PageEditor.js +316 -0
- package/dist/admin/editors/PageEditor.js.map +1 -0
- package/dist/admin/editors/TemplateEditor.d.ts +9 -0
- package/dist/admin/editors/TemplateEditor.d.ts.map +1 -0
- package/dist/admin/editors/TemplateEditor.js +180 -0
- package/dist/admin/editors/TemplateEditor.js.map +1 -0
- package/dist/admin/index.d.ts +38 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +144 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/pages/BlocksListPage.d.ts +9 -0
- package/dist/admin/pages/BlocksListPage.d.ts.map +1 -0
- package/dist/admin/pages/BlocksListPage.js +47 -0
- package/dist/admin/pages/BlocksListPage.js.map +1 -0
- package/dist/admin/pages/HooksPage.d.ts +9 -0
- package/dist/admin/pages/HooksPage.d.ts.map +1 -0
- package/dist/admin/pages/HooksPage.js +41 -0
- package/dist/admin/pages/HooksPage.js.map +1 -0
- package/dist/admin/pages/PagesListPage.d.ts +9 -0
- package/dist/admin/pages/PagesListPage.d.ts.map +1 -0
- package/dist/admin/pages/PagesListPage.js +51 -0
- package/dist/admin/pages/PagesListPage.js.map +1 -0
- package/dist/admin/pages/TemplatesListPage.d.ts +9 -0
- package/dist/admin/pages/TemplatesListPage.d.ts.map +1 -0
- package/dist/admin/pages/TemplatesListPage.js +47 -0
- package/dist/admin/pages/TemplatesListPage.js.map +1 -0
- package/dist/admin-ui/index.d.ts +90 -0
- package/dist/admin-ui/index.d.ts.map +1 -0
- package/dist/admin-ui/index.js +89 -0
- package/dist/admin-ui/index.js.map +1 -0
- package/dist/backend/cli/block-names.d.ts +92 -0
- package/dist/backend/cli/block-names.d.ts.map +1 -0
- package/dist/backend/cli/block-names.js +132 -0
- package/dist/backend/cli/block-names.js.map +1 -0
- package/dist/backend/entities/cms-block.entity.d.ts +20 -0
- package/dist/backend/entities/cms-block.entity.d.ts.map +1 -0
- package/dist/backend/entities/cms-block.entity.js +77 -0
- package/dist/backend/entities/cms-block.entity.js.map +1 -0
- package/dist/backend/entities/cms-hook-block-attachment.entity.d.ts +15 -0
- package/dist/backend/entities/cms-hook-block-attachment.entity.d.ts.map +1 -0
- package/dist/backend/entities/cms-hook-block-attachment.entity.js +46 -0
- package/dist/backend/entities/cms-hook-block-attachment.entity.js.map +1 -0
- package/dist/backend/entities/cms-hook.entity.d.ts +20 -0
- package/dist/backend/entities/cms-hook.entity.d.ts.map +1 -0
- package/dist/backend/entities/cms-hook.entity.js +73 -0
- package/dist/backend/entities/cms-hook.entity.js.map +1 -0
- package/dist/backend/entities/cms-page.entity.d.ts +43 -0
- package/dist/backend/entities/cms-page.entity.d.ts.map +1 -0
- package/dist/backend/entities/cms-page.entity.js +140 -0
- package/dist/backend/entities/cms-page.entity.js.map +1 -0
- package/dist/backend/entities/cms-template.entity.d.ts +20 -0
- package/dist/backend/entities/cms-template.entity.d.ts.map +1 -0
- package/dist/backend/entities/cms-template.entity.js +73 -0
- package/dist/backend/entities/cms-template.entity.js.map +1 -0
- package/dist/backend/index.d.ts +157 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +317 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/plugin.d.ts +81 -0
- package/dist/backend/plugin.d.ts.map +1 -0
- package/dist/backend/plugin.js +81 -0
- package/dist/backend/plugin.js.map +1 -0
- package/dist/backend/routes.admin.d.ts +19 -0
- package/dist/backend/routes.admin.d.ts.map +1 -0
- package/dist/backend/routes.admin.js +164 -0
- package/dist/backend/routes.admin.js.map +1 -0
- package/dist/backend/routes.storefront.d.ts +6 -0
- package/dist/backend/routes.storefront.d.ts.map +1 -0
- package/dist/backend/routes.storefront.js +89 -0
- package/dist/backend/routes.storefront.js.map +1 -0
- package/dist/backend/services/asset-embed-resolver.d.ts +17 -0
- package/dist/backend/services/asset-embed-resolver.d.ts.map +1 -0
- package/dist/backend/services/asset-embed-resolver.js +40 -0
- package/dist/backend/services/asset-embed-resolver.js.map +1 -0
- package/dist/backend/services/asset-references.d.ts +4 -0
- package/dist/backend/services/asset-references.d.ts.map +1 -0
- package/dist/backend/services/asset-references.js +55 -0
- package/dist/backend/services/asset-references.js.map +1 -0
- package/dist/backend/services/cms-block-read-port.d.ts +27 -0
- package/dist/backend/services/cms-block-read-port.d.ts.map +1 -0
- package/dist/backend/services/cms-block-read-port.js +50 -0
- package/dist/backend/services/cms-block-read-port.js.map +1 -0
- package/dist/backend/services/cms-block-seed-port.d.ts +31 -0
- package/dist/backend/services/cms-block-seed-port.d.ts.map +1 -0
- package/dist/backend/services/cms-block-seed-port.js +68 -0
- package/dist/backend/services/cms-block-seed-port.js.map +1 -0
- package/dist/backend/services/cms-block-service.d.ts +38 -0
- package/dist/backend/services/cms-block-service.d.ts.map +1 -0
- package/dist/backend/services/cms-block-service.js +218 -0
- package/dist/backend/services/cms-block-service.js.map +1 -0
- package/dist/backend/services/cms-cache.d.ts +54 -0
- package/dist/backend/services/cms-cache.d.ts.map +1 -0
- package/dist/backend/services/cms-cache.js +113 -0
- package/dist/backend/services/cms-cache.js.map +1 -0
- package/dist/backend/services/cms-hook-service.d.ts +35 -0
- package/dist/backend/services/cms-hook-service.d.ts.map +1 -0
- package/dist/backend/services/cms-hook-service.js +216 -0
- package/dist/backend/services/cms-hook-service.js.map +1 -0
- package/dist/backend/services/cms-language-reference.d.ts +11 -0
- package/dist/backend/services/cms-language-reference.d.ts.map +1 -0
- package/dist/backend/services/cms-language-reference.js +26 -0
- package/dist/backend/services/cms-language-reference.js.map +1 -0
- package/dist/backend/services/cms-page-read-port.d.ts +23 -0
- package/dist/backend/services/cms-page-read-port.d.ts.map +1 -0
- package/dist/backend/services/cms-page-read-port.js +54 -0
- package/dist/backend/services/cms-page-read-port.js.map +1 -0
- package/dist/backend/services/cms-page-service.d.ts +104 -0
- package/dist/backend/services/cms-page-service.d.ts.map +1 -0
- package/dist/backend/services/cms-page-service.js +468 -0
- package/dist/backend/services/cms-page-service.js.map +1 -0
- package/dist/backend/services/cms-reference-registry.d.ts +30 -0
- package/dist/backend/services/cms-reference-registry.d.ts.map +1 -0
- package/dist/backend/services/cms-reference-registry.js +98 -0
- package/dist/backend/services/cms-reference-registry.js.map +1 -0
- package/dist/backend/services/cms-template-service.d.ts +37 -0
- package/dist/backend/services/cms-template-service.d.ts.map +1 -0
- package/dist/backend/services/cms-template-service.js +205 -0
- package/dist/backend/services/cms-template-service.js.map +1 -0
- package/dist/backend/services/content-tree-walker.d.ts +7 -0
- package/dist/backend/services/content-tree-walker.d.ts.map +1 -0
- package/dist/backend/services/content-tree-walker.js +89 -0
- package/dist/backend/services/content-tree-walker.js.map +1 -0
- package/dist/backend/services/page-builder-registry.d.ts +120 -0
- package/dist/backend/services/page-builder-registry.d.ts.map +1 -0
- package/dist/backend/services/page-builder-registry.js +220 -0
- package/dist/backend/services/page-builder-registry.js.map +1 -0
- package/dist/backend/services/seed-hooks.d.ts +22 -0
- package/dist/backend/services/seed-hooks.d.ts.map +1 -0
- package/dist/backend/services/seed-hooks.js +94 -0
- package/dist/backend/services/seed-hooks.js.map +1 -0
- package/dist/backend/services/storefront-resolver.d.ts +71 -0
- package/dist/backend/services/storefront-resolver.d.ts.map +1 -0
- package/dist/backend/services/storefront-resolver.js +329 -0
- package/dist/backend/services/storefront-resolver.js.map +1 -0
- package/dist/manifest.d.ts +225 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +695 -0
- package/dist/manifest.js.map +1 -0
- package/dist/migrations/20260425T162418_cms_pages_init.d.ts +10 -0
- package/dist/migrations/20260425T162418_cms_pages_init.d.ts.map +1 -0
- package/dist/migrations/20260425T162418_cms_pages_init.js +30 -0
- package/dist/migrations/20260425T162418_cms_pages_init.js.map +1 -0
- package/dist/migrations/20260505T130214_cms_init.d.ts +28 -0
- package/dist/migrations/20260505T130214_cms_init.d.ts.map +1 -0
- package/dist/migrations/20260505T130214_cms_init.js +332 -0
- package/dist/migrations/20260505T130214_cms_init.js.map +1 -0
- package/dist/migrations/20260903T101741_cms_namespace_block_names.d.ts +6 -0
- package/dist/migrations/20260903T101741_cms_namespace_block_names.d.ts.map +1 -0
- package/dist/migrations/20260903T101741_cms_namespace_block_names.js +60 -0
- package/dist/migrations/20260903T101741_cms_namespace_block_names.js.map +1 -0
- package/dist/migrations/20260912T094733_cms_sales_channel_cms_pages.d.ts +27 -0
- package/dist/migrations/20260912T094733_cms_sales_channel_cms_pages.d.ts.map +1 -0
- package/dist/migrations/20260912T094733_cms_sales_channel_cms_pages.js +44 -0
- package/dist/migrations/20260912T094733_cms_sales_channel_cms_pages.js.map +1 -0
- package/dist/migrations/20260912T125709_cms_page_body_asset_ref_index.d.ts +32 -0
- package/dist/migrations/20260912T125709_cms_page_body_asset_ref_index.d.ts.map +1 -0
- package/dist/migrations/20260912T125709_cms_page_body_asset_ref_index.js +36 -0
- package/dist/migrations/20260912T125709_cms_page_body_asset_ref_index.js.map +1 -0
- package/dist/migrations/index.d.ts +31 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +37 -0
- package/dist/migrations/index.js.map +1 -0
- package/docs/cms/extending-page-builder.md +256 -0
- package/docs/cms/index.md +233 -0
- package/i18n/en.json +231 -0
- package/i18n/pl.json +231 -0
- package/package.json +125 -3
- package/tailwind.css +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Migration } from '@mikro-orm/migrations';
|
|
2
|
+
/**
|
|
3
|
+
* CMS pages init (T234 / FR-100). One table; `path` is the natural unique
|
|
4
|
+
* key. Status enum drives the admin lifecycle.
|
|
5
|
+
*/
|
|
6
|
+
export declare class Migration20260425T162418CmsPagesInit extends Migration {
|
|
7
|
+
up(): Promise<void>;
|
|
8
|
+
down(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=20260425T162418_cms_pages_init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260425T162418_cms_pages_init.d.ts","sourceRoot":"","sources":["../../src/migrations/20260425T162418_cms_pages_init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;GAGG;AACH,qBAAa,oCAAqC,SAAQ,SAAS;IAClD,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Migration } from '@mikro-orm/migrations';
|
|
2
|
+
/**
|
|
3
|
+
* CMS pages init (T234 / FR-100). One table; `path` is the natural unique
|
|
4
|
+
* key. Status enum drives the admin lifecycle.
|
|
5
|
+
*/
|
|
6
|
+
export class Migration20260425T162418CmsPagesInit extends Migration {
|
|
7
|
+
async up() {
|
|
8
|
+
this.addSql(`
|
|
9
|
+
create table "cms_pages" (
|
|
10
|
+
"id" uuid not null,
|
|
11
|
+
"path" varchar(180) not null,
|
|
12
|
+
"status" varchar(16) not null default 'draft',
|
|
13
|
+
"title" jsonb not null default '{}'::jsonb,
|
|
14
|
+
"body" jsonb not null default '{}'::jsonb,
|
|
15
|
+
"published_at" timestamptz null,
|
|
16
|
+
"archived_at" timestamptz null,
|
|
17
|
+
"created_at" timestamptz not null,
|
|
18
|
+
"updated_at" timestamptz not null,
|
|
19
|
+
constraint "cms_pages_pkey" primary key ("id"),
|
|
20
|
+
constraint "cms_pages_path_unique" unique ("path")
|
|
21
|
+
);
|
|
22
|
+
`);
|
|
23
|
+
this.addSql('create index "cms_pages_path_index" on "cms_pages" ("path");');
|
|
24
|
+
this.addSql('create index "cms_pages_status_index" on "cms_pages" ("status");');
|
|
25
|
+
}
|
|
26
|
+
async down() {
|
|
27
|
+
this.addSql('drop table if exists "cms_pages" cascade;');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=20260425T162418_cms_pages_init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260425T162418_cms_pages_init.js","sourceRoot":"","sources":["../../src/migrations/20260425T162418_cms_pages_init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;GAGG;AACH,MAAM,OAAO,oCAAqC,SAAQ,SAAS;IACxD,KAAK,CAAC,EAAE;QACf,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;KAcX,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,8DAA8D,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,kEAAkE,CAAC,CAAC;IAClF,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Migration } from '@mikro-orm/migrations';
|
|
2
|
+
/**
|
|
3
|
+
* CMS module — feature 014 / data-model.md.
|
|
4
|
+
*
|
|
5
|
+
* Schema changes (one atomic migration):
|
|
6
|
+
* - extends `cms_pages` with the new column set (name, slug, active,
|
|
7
|
+
* description, meta_*, content, languages, version) while keeping the
|
|
8
|
+
* legacy `path`, `title`, `body` columns for one release.
|
|
9
|
+
* - adds four new tables: `cms_blocks`, `cms_templates`, `cms_hooks`,
|
|
10
|
+
* `cms_hook_block_attachments`.
|
|
11
|
+
* - adds four channel-join tables, each carrying the slug or code denorm
|
|
12
|
+
* so per-channel uniqueness is DB-enforceable.
|
|
13
|
+
* - GIN indexes on the three content JSONB columns so the asset-ref scan
|
|
14
|
+
* stays fast (research R12).
|
|
15
|
+
* - backfills migrated `cms_pages` rows: slug=path, name=best-effort
|
|
16
|
+
* from title, active=(status='published'), content envelope built
|
|
17
|
+
* from the legacy body strings.
|
|
18
|
+
* - binds every migrated page to the platform's default sales channel.
|
|
19
|
+
* - seeds the 23 base Hook codes with `is_system=true`.
|
|
20
|
+
*
|
|
21
|
+
* The migration is idempotent: re-running against a partially-applied
|
|
22
|
+
* state skips already-present rows.
|
|
23
|
+
*/
|
|
24
|
+
export declare class Migration20260505T130214CmsInit extends Migration {
|
|
25
|
+
up(): Promise<void>;
|
|
26
|
+
down(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=20260505T130214_cms_init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260505T130214_cms_init.d.ts","sourceRoot":"","sources":["../../src/migrations/20260505T130214_cms_init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,+BAAgC,SAAQ,SAAS;IAC7C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAmTnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CA0BrC"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { Migration } from '@mikro-orm/migrations';
|
|
2
|
+
/**
|
|
3
|
+
* CMS module — feature 014 / data-model.md.
|
|
4
|
+
*
|
|
5
|
+
* Schema changes (one atomic migration):
|
|
6
|
+
* - extends `cms_pages` with the new column set (name, slug, active,
|
|
7
|
+
* description, meta_*, content, languages, version) while keeping the
|
|
8
|
+
* legacy `path`, `title`, `body` columns for one release.
|
|
9
|
+
* - adds four new tables: `cms_blocks`, `cms_templates`, `cms_hooks`,
|
|
10
|
+
* `cms_hook_block_attachments`.
|
|
11
|
+
* - adds four channel-join tables, each carrying the slug or code denorm
|
|
12
|
+
* so per-channel uniqueness is DB-enforceable.
|
|
13
|
+
* - GIN indexes on the three content JSONB columns so the asset-ref scan
|
|
14
|
+
* stays fast (research R12).
|
|
15
|
+
* - backfills migrated `cms_pages` rows: slug=path, name=best-effort
|
|
16
|
+
* from title, active=(status='published'), content envelope built
|
|
17
|
+
* from the legacy body strings.
|
|
18
|
+
* - binds every migrated page to the platform's default sales channel.
|
|
19
|
+
* - seeds the 23 base Hook codes with `is_system=true`.
|
|
20
|
+
*
|
|
21
|
+
* The migration is idempotent: re-running against a partially-applied
|
|
22
|
+
* state skips already-present rows.
|
|
23
|
+
*/
|
|
24
|
+
export class Migration20260505T130214CmsInit extends Migration {
|
|
25
|
+
async up() {
|
|
26
|
+
// ────────────────────────────────────────────────────────────────────
|
|
27
|
+
// 1) cms_blocks
|
|
28
|
+
// ────────────────────────────────────────────────────────────────────
|
|
29
|
+
this.addSql(`
|
|
30
|
+
create table "cms_blocks" (
|
|
31
|
+
"id" uuid not null,
|
|
32
|
+
"name" varchar(200) not null,
|
|
33
|
+
"code" varchar(180) not null,
|
|
34
|
+
"active" boolean not null default true,
|
|
35
|
+
"description" text null,
|
|
36
|
+
"content" jsonb not null default '{"schema_version":1,"languages":{}}'::jsonb,
|
|
37
|
+
"languages" jsonb not null default '[]'::jsonb,
|
|
38
|
+
"version" int not null default 1,
|
|
39
|
+
"created_at" timestamptz not null,
|
|
40
|
+
"updated_at" timestamptz not null,
|
|
41
|
+
constraint "cms_blocks_pkey" primary key ("id")
|
|
42
|
+
);
|
|
43
|
+
`);
|
|
44
|
+
this.addSql('create index "cms_blocks_code_index" on "cms_blocks" ("code");');
|
|
45
|
+
this.addSql('create index "idx_cms_blocks_content_asset_refs" on "cms_blocks" using gin ("content" jsonb_path_ops);');
|
|
46
|
+
this.addSql('create index "cms_blocks_active_index" on "cms_blocks" ("active") where "active" = true;');
|
|
47
|
+
// ────────────────────────────────────────────────────────────────────
|
|
48
|
+
// 2) cms_templates
|
|
49
|
+
// ────────────────────────────────────────────────────────────────────
|
|
50
|
+
this.addSql(`
|
|
51
|
+
create table "cms_templates" (
|
|
52
|
+
"id" uuid not null,
|
|
53
|
+
"name" varchar(200) not null,
|
|
54
|
+
"code" varchar(180) not null,
|
|
55
|
+
"description" text null,
|
|
56
|
+
"content" jsonb not null default '{"schema_version":1,"languages":{}}'::jsonb,
|
|
57
|
+
"languages" jsonb not null default '[]'::jsonb,
|
|
58
|
+
"version" int not null default 1,
|
|
59
|
+
"created_at" timestamptz not null,
|
|
60
|
+
"updated_at" timestamptz not null,
|
|
61
|
+
constraint "cms_templates_pkey" primary key ("id")
|
|
62
|
+
);
|
|
63
|
+
`);
|
|
64
|
+
this.addSql('create index "cms_templates_code_index" on "cms_templates" ("code");');
|
|
65
|
+
this.addSql('create index "idx_cms_templates_content_asset_refs" on "cms_templates" using gin ("content" jsonb_path_ops);');
|
|
66
|
+
// ────────────────────────────────────────────────────────────────────
|
|
67
|
+
// 3) cms_hooks
|
|
68
|
+
// ────────────────────────────────────────────────────────────────────
|
|
69
|
+
this.addSql(`
|
|
70
|
+
create table "cms_hooks" (
|
|
71
|
+
"id" uuid not null,
|
|
72
|
+
"name" varchar(200) not null,
|
|
73
|
+
"code" varchar(180) not null,
|
|
74
|
+
"active" boolean not null default true,
|
|
75
|
+
"description" text null,
|
|
76
|
+
"is_system" boolean not null default false,
|
|
77
|
+
"version" int not null default 1,
|
|
78
|
+
"created_at" timestamptz not null,
|
|
79
|
+
"updated_at" timestamptz not null,
|
|
80
|
+
constraint "cms_hooks_pkey" primary key ("id"),
|
|
81
|
+
constraint "cms_hooks_code_unique" unique ("code")
|
|
82
|
+
);
|
|
83
|
+
`);
|
|
84
|
+
this.addSql('create index "cms_hooks_active_index" on "cms_hooks" ("active") where "active" = true;');
|
|
85
|
+
// ────────────────────────────────────────────────────────────────────
|
|
86
|
+
// 4) cms_hook_block_attachments
|
|
87
|
+
// ────────────────────────────────────────────────────────────────────
|
|
88
|
+
this.addSql(`
|
|
89
|
+
create table "cms_hook_block_attachments" (
|
|
90
|
+
"hook_id" uuid not null,
|
|
91
|
+
"block_id" uuid not null,
|
|
92
|
+
"position" int not null default 0,
|
|
93
|
+
"created_at" timestamptz not null,
|
|
94
|
+
constraint "cms_hook_block_attachments_pkey" primary key ("hook_id", "block_id"),
|
|
95
|
+
constraint "cms_hook_block_attachments_hook_fk" foreign key ("hook_id")
|
|
96
|
+
references "cms_hooks" ("id") on delete cascade,
|
|
97
|
+
constraint "cms_hook_block_attachments_block_fk" foreign key ("block_id")
|
|
98
|
+
references "cms_blocks" ("id") on delete restrict
|
|
99
|
+
);
|
|
100
|
+
`);
|
|
101
|
+
this.addSql('create index "idx_cms_hook_attachments_order" on "cms_hook_block_attachments" ("hook_id", "position", "block_id");');
|
|
102
|
+
// ────────────────────────────────────────────────────────────────────
|
|
103
|
+
// 5) channel-join tables (4)
|
|
104
|
+
// ────────────────────────────────────────────────────────────────────
|
|
105
|
+
this.addSql(`
|
|
106
|
+
create table "cms_page_sales_channels" (
|
|
107
|
+
"page_id" uuid not null,
|
|
108
|
+
"sales_channel_id" uuid not null,
|
|
109
|
+
"slug" varchar(180) not null,
|
|
110
|
+
constraint "cms_page_sales_channels_pkey" primary key ("page_id", "sales_channel_id"),
|
|
111
|
+
constraint "cms_page_sales_channels_slug_unique" unique ("sales_channel_id", "slug"),
|
|
112
|
+
constraint "cms_page_sales_channels_page_fk" foreign key ("page_id")
|
|
113
|
+
references "cms_pages" ("id") on delete cascade,
|
|
114
|
+
constraint "cms_page_sales_channels_channel_fk" foreign key ("sales_channel_id")
|
|
115
|
+
references "sales_channels" ("id") on delete cascade
|
|
116
|
+
);
|
|
117
|
+
`);
|
|
118
|
+
this.addSql(`
|
|
119
|
+
create table "cms_block_sales_channels" (
|
|
120
|
+
"block_id" uuid not null,
|
|
121
|
+
"sales_channel_id" uuid not null,
|
|
122
|
+
"code" varchar(180) not null,
|
|
123
|
+
constraint "cms_block_sales_channels_pkey" primary key ("block_id", "sales_channel_id"),
|
|
124
|
+
constraint "cms_block_sales_channels_code_unique" unique ("sales_channel_id", "code"),
|
|
125
|
+
constraint "cms_block_sales_channels_block_fk" foreign key ("block_id")
|
|
126
|
+
references "cms_blocks" ("id") on delete cascade,
|
|
127
|
+
constraint "cms_block_sales_channels_channel_fk" foreign key ("sales_channel_id")
|
|
128
|
+
references "sales_channels" ("id") on delete cascade
|
|
129
|
+
);
|
|
130
|
+
`);
|
|
131
|
+
this.addSql(`
|
|
132
|
+
create table "cms_template_sales_channels" (
|
|
133
|
+
"template_id" uuid not null,
|
|
134
|
+
"sales_channel_id" uuid not null,
|
|
135
|
+
"code" varchar(180) not null,
|
|
136
|
+
constraint "cms_template_sales_channels_pkey" primary key ("template_id", "sales_channel_id"),
|
|
137
|
+
constraint "cms_template_sales_channels_code_unique" unique ("sales_channel_id", "code"),
|
|
138
|
+
constraint "cms_template_sales_channels_template_fk" foreign key ("template_id")
|
|
139
|
+
references "cms_templates" ("id") on delete cascade,
|
|
140
|
+
constraint "cms_template_sales_channels_channel_fk" foreign key ("sales_channel_id")
|
|
141
|
+
references "sales_channels" ("id") on delete cascade
|
|
142
|
+
);
|
|
143
|
+
`);
|
|
144
|
+
this.addSql(`
|
|
145
|
+
create table "cms_hook_sales_channels" (
|
|
146
|
+
"hook_id" uuid not null,
|
|
147
|
+
"sales_channel_id" uuid not null,
|
|
148
|
+
constraint "cms_hook_sales_channels_pkey" primary key ("hook_id", "sales_channel_id"),
|
|
149
|
+
constraint "cms_hook_sales_channels_hook_fk" foreign key ("hook_id")
|
|
150
|
+
references "cms_hooks" ("id") on delete cascade,
|
|
151
|
+
constraint "cms_hook_sales_channels_channel_fk" foreign key ("sales_channel_id")
|
|
152
|
+
references "sales_channels" ("id") on delete cascade
|
|
153
|
+
);
|
|
154
|
+
`);
|
|
155
|
+
// ────────────────────────────────────────────────────────────────────
|
|
156
|
+
// 6) cms_pages — extension columns
|
|
157
|
+
// ────────────────────────────────────────────────────────────────────
|
|
158
|
+
this.addSql(`alter table "cms_pages"
|
|
159
|
+
add column "name" varchar(200) not null default '',
|
|
160
|
+
add column "slug" varchar(180) not null default '',
|
|
161
|
+
add column "active" boolean not null default true,
|
|
162
|
+
add column "description" text null,
|
|
163
|
+
add column "meta_title" jsonb null,
|
|
164
|
+
add column "meta_description" jsonb null,
|
|
165
|
+
add column "meta_keywords" jsonb null,
|
|
166
|
+
add column "content" jsonb not null default '{"schema_version":1,"languages":{}}'::jsonb,
|
|
167
|
+
add column "languages" jsonb not null default '[]'::jsonb,
|
|
168
|
+
add column "version" int not null default 1;
|
|
169
|
+
`);
|
|
170
|
+
this.addSql('create index "cms_pages_slug_index" on "cms_pages" ("slug");');
|
|
171
|
+
this.addSql('create index "idx_cms_pages_content_asset_refs" on "cms_pages" using gin ("content" jsonb_path_ops);');
|
|
172
|
+
this.addSql('create index "cms_pages_active_status_index" on "cms_pages" ("active", "status");');
|
|
173
|
+
// ────────────────────────────────────────────────────────────────────
|
|
174
|
+
// 7) Backfill cms_pages — best-effort
|
|
175
|
+
// ────────────────────────────────────────────────────────────────────
|
|
176
|
+
// slug = path
|
|
177
|
+
// name = title['en-US'] ?? first available value, falling back to path
|
|
178
|
+
// active = (status='published')
|
|
179
|
+
// content = { schema_version: 1, languages: { <lang>: { root: {}, content: [{ type: 'Text', props: { tiptapContent: <legacy html> } }] } } }
|
|
180
|
+
// languages = array of non-empty body keys
|
|
181
|
+
this.addSql(`
|
|
182
|
+
update "cms_pages"
|
|
183
|
+
set
|
|
184
|
+
"slug" = coalesce(nullif("slug", ''), "path"),
|
|
185
|
+
"name" = coalesce(
|
|
186
|
+
nullif("name", ''),
|
|
187
|
+
coalesce(("title" ->> 'en-US')::text, '')
|
|
188
|
+
),
|
|
189
|
+
"active" = case when "status" = 'published' then true else false end
|
|
190
|
+
where "slug" = '' or "name" = '';
|
|
191
|
+
`);
|
|
192
|
+
// 7b) Build content envelope from legacy body for every row whose
|
|
193
|
+
// content is still the empty default. Done in plain SQL via jsonb_object_agg
|
|
194
|
+
// over the body's per-language values.
|
|
195
|
+
this.addSql(`
|
|
196
|
+
update "cms_pages"
|
|
197
|
+
set "content" = jsonb_build_object(
|
|
198
|
+
'schema_version', 1,
|
|
199
|
+
'languages', coalesce(
|
|
200
|
+
(
|
|
201
|
+
select jsonb_object_agg(
|
|
202
|
+
k,
|
|
203
|
+
jsonb_build_object(
|
|
204
|
+
'root', '{}'::jsonb,
|
|
205
|
+
'content', jsonb_build_array(
|
|
206
|
+
jsonb_build_object(
|
|
207
|
+
'type', 'Text',
|
|
208
|
+
'props', jsonb_build_object(
|
|
209
|
+
'id', 'text-legacy-' || k,
|
|
210
|
+
'tiptapHtml', v
|
|
211
|
+
)
|
|
212
|
+
)
|
|
213
|
+
),
|
|
214
|
+
'zones', '{}'::jsonb
|
|
215
|
+
)
|
|
216
|
+
)
|
|
217
|
+
from jsonb_each_text("body") as t(k, v)
|
|
218
|
+
where v <> ''
|
|
219
|
+
),
|
|
220
|
+
'{}'::jsonb
|
|
221
|
+
)
|
|
222
|
+
)
|
|
223
|
+
where "content" = '{"schema_version":1,"languages":{}}'::jsonb
|
|
224
|
+
and "body" <> '{}'::jsonb;
|
|
225
|
+
`);
|
|
226
|
+
// 7c) languages array = non-empty body keys
|
|
227
|
+
this.addSql(`
|
|
228
|
+
update "cms_pages"
|
|
229
|
+
set "languages" = coalesce(
|
|
230
|
+
(
|
|
231
|
+
select jsonb_agg(k)
|
|
232
|
+
from jsonb_each_text("body") as t(k, v)
|
|
233
|
+
where v <> ''
|
|
234
|
+
),
|
|
235
|
+
'[]'::jsonb
|
|
236
|
+
)
|
|
237
|
+
where "languages" = '[]'::jsonb and "body" <> '{}'::jsonb;
|
|
238
|
+
`);
|
|
239
|
+
// ────────────────────────────────────────────────────────────────────
|
|
240
|
+
// 8) Bind every migrated cms_pages row to the default sales channel
|
|
241
|
+
// ────────────────────────────────────────────────────────────────────
|
|
242
|
+
// Pick the first sales channel by created_at as the "default"; in
|
|
243
|
+
// production this will be the system_default = true row but we don't
|
|
244
|
+
// require that here (foundation seed tests sometimes create only one
|
|
245
|
+
// channel without flagging it).
|
|
246
|
+
this.addSql(`
|
|
247
|
+
insert into "cms_page_sales_channels" ("page_id", "sales_channel_id", "slug")
|
|
248
|
+
select p."id", c."id", p."slug"
|
|
249
|
+
from "cms_pages" p
|
|
250
|
+
cross join lateral (
|
|
251
|
+
select "id" from "sales_channels" order by "created_at" asc limit 1
|
|
252
|
+
) c
|
|
253
|
+
where not exists (
|
|
254
|
+
select 1 from "cms_page_sales_channels" x where x."page_id" = p."id"
|
|
255
|
+
);
|
|
256
|
+
`);
|
|
257
|
+
// ────────────────────────────────────────────────────────────────────
|
|
258
|
+
// 9) Seed the 23 base Hook codes (research R8)
|
|
259
|
+
// ────────────────────────────────────────────────────────────────────
|
|
260
|
+
const seededHooks = [
|
|
261
|
+
['header.top', 'Header Top', 'Top-of-page strip — phone number, free-shipping notice, etc.'],
|
|
262
|
+
['homepage.top', 'Homepage Top', 'Above the homepage content.'],
|
|
263
|
+
['homepage.bottom', 'Homepage Bottom', 'Below the homepage content.'],
|
|
264
|
+
['footer.before', 'Footer Before', ''],
|
|
265
|
+
['footer.top', 'Footer Top', ''],
|
|
266
|
+
['footer.bottom', 'Footer Bottom', ''],
|
|
267
|
+
['footer.after', 'Footer After', ''],
|
|
268
|
+
['footer.copyright', 'Footer Copyright', ''],
|
|
269
|
+
['category.top', 'Category Page Top', ''],
|
|
270
|
+
['category.bottom', 'Category Page Bottom', ''],
|
|
271
|
+
['product.top', 'Product Page Top', ''],
|
|
272
|
+
['product.bottom', 'Product Page Bottom', ''],
|
|
273
|
+
['product.buttons.after', 'Product Page After Buttons Set', ''],
|
|
274
|
+
['search.top', 'Search Page Top', ''],
|
|
275
|
+
['search.bottom', 'Search Page Bottom', ''],
|
|
276
|
+
['page.top', 'Every Page Top', ''],
|
|
277
|
+
['page.bottom', 'Every Page Bottom', ''],
|
|
278
|
+
['cms.page.top', 'Every CMS Page Top', ''],
|
|
279
|
+
['cms.page.bottom', 'Every CMS Page Bottom', ''],
|
|
280
|
+
['login.top', 'Login Page Top', ''],
|
|
281
|
+
['login.bottom', 'Login Page Bottom', ''],
|
|
282
|
+
['register.top', 'Register Page Top', ''],
|
|
283
|
+
['register.bottom', 'Register Page Bottom', ''],
|
|
284
|
+
];
|
|
285
|
+
for (const [code, name, description] of seededHooks) {
|
|
286
|
+
const desc = description.length > 0 ? `'${description.replace(/'/g, "''")}'` : 'null';
|
|
287
|
+
this.addSql(`
|
|
288
|
+
insert into "cms_hooks" ("id", "name", "code", "active", "description", "is_system", "version", "created_at", "updated_at")
|
|
289
|
+
values (gen_random_uuid(), '${name.replace(/'/g, "''")}', '${code}', true, ${desc}, true, 1, now(), now())
|
|
290
|
+
on conflict ("code") do nothing;
|
|
291
|
+
`);
|
|
292
|
+
}
|
|
293
|
+
// 9b) Bind every seeded Hook to every existing sales channel.
|
|
294
|
+
this.addSql(`
|
|
295
|
+
insert into "cms_hook_sales_channels" ("hook_id", "sales_channel_id")
|
|
296
|
+
select h."id", c."id"
|
|
297
|
+
from "cms_hooks" h
|
|
298
|
+
cross join "sales_channels" c
|
|
299
|
+
where h."is_system" = true
|
|
300
|
+
and not exists (
|
|
301
|
+
select 1 from "cms_hook_sales_channels" x
|
|
302
|
+
where x."hook_id" = h."id" and x."sales_channel_id" = c."id"
|
|
303
|
+
);
|
|
304
|
+
`);
|
|
305
|
+
}
|
|
306
|
+
async down() {
|
|
307
|
+
this.addSql('drop table if exists "cms_hook_sales_channels" cascade;');
|
|
308
|
+
this.addSql('drop table if exists "cms_template_sales_channels" cascade;');
|
|
309
|
+
this.addSql('drop table if exists "cms_block_sales_channels" cascade;');
|
|
310
|
+
this.addSql('drop table if exists "cms_page_sales_channels" cascade;');
|
|
311
|
+
this.addSql('drop table if exists "cms_hook_block_attachments" cascade;');
|
|
312
|
+
this.addSql('drop table if exists "cms_hooks" cascade;');
|
|
313
|
+
this.addSql('drop table if exists "cms_templates" cascade;');
|
|
314
|
+
this.addSql('drop table if exists "cms_blocks" cascade;');
|
|
315
|
+
this.addSql('drop index if exists "cms_pages_active_status_index";');
|
|
316
|
+
this.addSql('drop index if exists "idx_cms_pages_content_asset_refs";');
|
|
317
|
+
this.addSql('drop index if exists "cms_pages_slug_index";');
|
|
318
|
+
this.addSql(`alter table "cms_pages"
|
|
319
|
+
drop column if exists "version",
|
|
320
|
+
drop column if exists "languages",
|
|
321
|
+
drop column if exists "content",
|
|
322
|
+
drop column if exists "meta_keywords",
|
|
323
|
+
drop column if exists "meta_description",
|
|
324
|
+
drop column if exists "meta_title",
|
|
325
|
+
drop column if exists "description",
|
|
326
|
+
drop column if exists "active",
|
|
327
|
+
drop column if exists "slug",
|
|
328
|
+
drop column if exists "name";
|
|
329
|
+
`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=20260505T130214_cms_init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260505T130214_cms_init.js","sourceRoot":"","sources":["../../src/migrations/20260505T130214_cms_init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260903T101741_cms_namespace_block_names.d.ts","sourceRoot":"","sources":["../../src/migrations/20260903T101741_cms_namespace_block_names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAmDlD,qBAAa,8CAA+C,SAAQ,SAAS;IAC5D,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAQnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAOrC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Migration } from '@mikro-orm/migrations';
|
|
2
|
+
import { FROZEN_BLOCK_RENAMES, FROZEN_BLOCK_RENAMES_INVERSE, applyRenameFunctionSql, createRenameFunctionSql, dropRenameFunctionSql, } from '@endora-commerce/page-builder-core/migration';
|
|
3
|
+
/**
|
|
4
|
+
* Namespace the Page Builder block names stored in `cms`'s 3 `jsonb` columns
|
|
5
|
+
* — feature 096, T404 (`contracts/block-name-migration.md`).
|
|
6
|
+
*
|
|
7
|
+
* **The rewrite is structural, never textual.** Twelve of the 74 renamed names
|
|
8
|
+
* are ordinary English words that occur throughout shop content — `Row`,
|
|
9
|
+
* `Text`, `Image`, `Map`, `Button` among them — so a text substitution over the
|
|
10
|
+
* column would corrupt a `RawHtml` block's markup and every `alt` attribute in
|
|
11
|
+
* the shop. `pg_temp.rename_block_names_cms` descends the document and replaces the value of a
|
|
12
|
+
* `type` property in a **node** position and nothing else; the walk is
|
|
13
|
+
* generated from `FROZEN_BLOCK_RENAMES` by
|
|
14
|
+
* `@endora-commerce/page-builder-core/migration`, so five migrations share one
|
|
15
|
+
* definition of what a node is.
|
|
16
|
+
*
|
|
17
|
+
* **This migration belongs to `cms` because `cms` owns these tables**,
|
|
18
|
+
* not because it owns the new names (`contracts/block-name-migration.md` §2).
|
|
19
|
+
* Some of the names it writes belong to other modules; that creates no
|
|
20
|
+
* obligation on them and **no new manifest `dependencies` edge**, because a
|
|
21
|
+
* block name is a string value inside a JSONB document — not a foreign key and
|
|
22
|
+
* not a table identifier.
|
|
23
|
+
*
|
|
24
|
+
* **It cannot fail on its input.** A name the map does not hold is left
|
|
25
|
+
* byte-identical: an already-namespaced one and an unrecognised one alike,
|
|
26
|
+
* because the map's domain is bare and its codomain is dotted, so the two sets
|
|
27
|
+
* are disjoint. That is also what makes a second run rewrite nothing — FR-013
|
|
28
|
+
* is a property of the map rather than an outcome a branch has to remember to
|
|
29
|
+
* produce, and no dot test appears in this SQL.
|
|
30
|
+
*
|
|
31
|
+
* `down()` applies the inverse over the identical walk and is **exact for the
|
|
32
|
+
* frozen set**. It is partial by construction: a name with no pre-migration
|
|
33
|
+
* form — a block authored after the upgrade, a third party's `acme.Banner` —
|
|
34
|
+
* has nothing to return to and is left alone. That is correct, and it is why
|
|
35
|
+
* the operator pre-flight (§6) is a backup rather than a `down()`.
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* Named per module: the five rename migrations may run on one pooled session,
|
|
39
|
+
* and a second `create function` over the same name fails. Each drops its own
|
|
40
|
+
* when it is done, and a rollback removes it with everything else — `pg_temp`
|
|
41
|
+
* DDL is transactional.
|
|
42
|
+
*/
|
|
43
|
+
const FN = 'rename_block_names_cms';
|
|
44
|
+
export class Migration20260903T101741CmsNamespaceBlockNames extends Migration {
|
|
45
|
+
async up() {
|
|
46
|
+
this.addSql(createRenameFunctionSql(FN, FROZEN_BLOCK_RENAMES));
|
|
47
|
+
this.addSql(applyRenameFunctionSql(FN, 'cms_pages', 'content'));
|
|
48
|
+
this.addSql(applyRenameFunctionSql(FN, 'cms_blocks', 'content'));
|
|
49
|
+
this.addSql(applyRenameFunctionSql(FN, 'cms_templates', 'content'));
|
|
50
|
+
this.addSql(dropRenameFunctionSql(FN));
|
|
51
|
+
}
|
|
52
|
+
async down() {
|
|
53
|
+
this.addSql(createRenameFunctionSql(FN, FROZEN_BLOCK_RENAMES_INVERSE));
|
|
54
|
+
this.addSql(applyRenameFunctionSql(FN, 'cms_pages', 'content'));
|
|
55
|
+
this.addSql(applyRenameFunctionSql(FN, 'cms_blocks', 'content'));
|
|
56
|
+
this.addSql(applyRenameFunctionSql(FN, 'cms_templates', 'content'));
|
|
57
|
+
this.addSql(dropRenameFunctionSql(FN));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=20260903T101741_cms_namespace_block_names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260903T101741_cms_namespace_block_names.js","sourceRoot":"","sources":["../../src/migrations/20260903T101741_cms_namespace_block_names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,8CAA8C,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH;;;;;GAKG;AACH,MAAM,EAAE,GAAG,wBAAwB,CAAC;AAEpC,MAAM,OAAO,8CAA+C,SAAQ,SAAS;IAClE,KAAK,CAAC,EAAE;QACf,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Migration } from '@mikro-orm/migrations';
|
|
2
|
+
/**
|
|
3
|
+
* The `sales_channel_cms_pages` sales-channel bridge — the CMS pages a channel serves.
|
|
4
|
+
*
|
|
5
|
+
* It was created by the platform's frozen `Migration20260430T170044CoreSalesChannelsPromote`
|
|
6
|
+
* until `specs/120-migration-closure-bridge-ownership/` Phase 2. Under D-226 a
|
|
7
|
+
* bridge between an always-present near side (`sales_channels`, a kernel table)
|
|
8
|
+
* and a switchable far side belongs to the far side, so this module creates it:
|
|
9
|
+
* an instance that does not install `cms` no longer has a migration corpus
|
|
10
|
+
* naming a table nothing builds.
|
|
11
|
+
*
|
|
12
|
+
* `if not exists`, because every database that has already applied the frozen
|
|
13
|
+
* migration has this table. The storage keys on the class name and holds no
|
|
14
|
+
* checksum, so nothing is re-offered there and this migration is the no-op it
|
|
15
|
+
* reads as; on a fresh database it is the creation.
|
|
16
|
+
*
|
|
17
|
+
* The statements are the frozen ones verbatim — same columns, same primary key,
|
|
18
|
+
* same two foreign keys, same index — so the two paths reach one schema. Its
|
|
19
|
+
* position needs nothing declared: `sales_channels` is the kernel's and
|
|
20
|
+
* `cms_pages` is created inside the frozen prefix, which every
|
|
21
|
+
* above-watermark migration runs after.
|
|
22
|
+
*/
|
|
23
|
+
export declare class Migration20260912T094733CmsSalesChannelCmsPages extends Migration {
|
|
24
|
+
up(): Promise<void>;
|
|
25
|
+
down(): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=20260912T094733_cms_sales_channel_cms_pages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260912T094733_cms_sales_channel_cms_pages.d.ts","sourceRoot":"","sources":["../../src/migrations/20260912T094733_cms_sales_channel_cms_pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,+CAAgD,SAAQ,SAAS;IAC7D,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Migration } from '@mikro-orm/migrations';
|
|
2
|
+
/**
|
|
3
|
+
* The `sales_channel_cms_pages` sales-channel bridge — the CMS pages a channel serves.
|
|
4
|
+
*
|
|
5
|
+
* It was created by the platform's frozen `Migration20260430T170044CoreSalesChannelsPromote`
|
|
6
|
+
* until `specs/120-migration-closure-bridge-ownership/` Phase 2. Under D-226 a
|
|
7
|
+
* bridge between an always-present near side (`sales_channels`, a kernel table)
|
|
8
|
+
* and a switchable far side belongs to the far side, so this module creates it:
|
|
9
|
+
* an instance that does not install `cms` no longer has a migration corpus
|
|
10
|
+
* naming a table nothing builds.
|
|
11
|
+
*
|
|
12
|
+
* `if not exists`, because every database that has already applied the frozen
|
|
13
|
+
* migration has this table. The storage keys on the class name and holds no
|
|
14
|
+
* checksum, so nothing is re-offered there and this migration is the no-op it
|
|
15
|
+
* reads as; on a fresh database it is the creation.
|
|
16
|
+
*
|
|
17
|
+
* The statements are the frozen ones verbatim — same columns, same primary key,
|
|
18
|
+
* same two foreign keys, same index — so the two paths reach one schema. Its
|
|
19
|
+
* position needs nothing declared: `sales_channels` is the kernel's and
|
|
20
|
+
* `cms_pages` is created inside the frozen prefix, which every
|
|
21
|
+
* above-watermark migration runs after.
|
|
22
|
+
*/
|
|
23
|
+
export class Migration20260912T094733CmsSalesChannelCmsPages extends Migration {
|
|
24
|
+
async up() {
|
|
25
|
+
this.addSql(`
|
|
26
|
+
create table if not exists "sales_channel_cms_pages" (
|
|
27
|
+
"sales_channel_id" uuid not null,
|
|
28
|
+
"cms_page_id" uuid not null,
|
|
29
|
+
constraint "sales_channel_cms_pages_pkey"
|
|
30
|
+
primary key ("sales_channel_id", "cms_page_id"),
|
|
31
|
+
constraint "sales_channel_cms_pages_channel_fk"
|
|
32
|
+
foreign key ("sales_channel_id") references "sales_channels" ("id") on delete cascade,
|
|
33
|
+
constraint "sales_channel_cms_pages_cms_page_fk"
|
|
34
|
+
foreign key ("cms_page_id") references "cms_pages" ("id") on delete cascade
|
|
35
|
+
);
|
|
36
|
+
`);
|
|
37
|
+
this.addSql('create index if not exists "sales_channel_cms_pages_cms_page_id_index" ' +
|
|
38
|
+
'on "sales_channel_cms_pages" ("cms_page_id");');
|
|
39
|
+
}
|
|
40
|
+
async down() {
|
|
41
|
+
this.addSql('drop table if exists "sales_channel_cms_pages" cascade;');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=20260912T094733_cms_sales_channel_cms_pages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20260912T094733_cms_sales_channel_cms_pages.js","sourceRoot":"","sources":["../../src/migrations/20260912T094733_cms_sales_channel_cms_pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,+CAAgD,SAAQ,SAAS;IACnE,KAAK,CAAC,EAAE;QACf,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;KAWX,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CACT,yEAAyE;YACvE,+CAA+C,CAClD,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,IAAI,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;CACF"}
|