apostrophe 4.30.0-alpha.1 → 4.30.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/.claude/settings.local.json +15 -0
- package/CHANGELOG.md +30 -2
- package/eslint.config.js +1 -2
- package/lib/mongodb-connect.js +62 -0
- package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposAdminBar.vue +0 -1
- package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposAdminBarMenu.vue +25 -8
- package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposContextBreakpointPreviewMode.vue +9 -0
- package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposContextTitle.vue +20 -2
- package/modules/@apostrophecms/area/index.js +10 -5
- package/modules/@apostrophecms/area/ui/apos/components/AposAreaWidget.vue +2 -0
- package/modules/@apostrophecms/command-menu/ui/apos/components/TheAposCommandMenu.vue +11 -1
- package/modules/@apostrophecms/db/index.js +27 -68
- package/modules/@apostrophecms/http/index.js +1 -1
- package/modules/@apostrophecms/i18n/i18n/en.json +8 -0
- package/modules/@apostrophecms/i18n/index.js +1 -8
- package/modules/@apostrophecms/image-widget/index.js +29 -1
- package/modules/@apostrophecms/job/index.js +7 -9
- package/modules/@apostrophecms/layout-widget/index.js +124 -2
- package/modules/@apostrophecms/layout-widget/ui/apos/components/AposAreaLayoutEditor.vue +89 -6
- package/modules/@apostrophecms/layout-widget/ui/apos/components/AposGridLayout.vue +2 -2
- package/modules/@apostrophecms/layout-widget/ui/apos/components/AposGridManager.vue +2 -2
- package/modules/@apostrophecms/layout-widget/ui/apos/layout.css +8 -0
- package/modules/@apostrophecms/layout-widget/ui/src/layout.css +1 -1
- package/modules/@apostrophecms/layout-widget/views/widget.html +3 -3
- package/modules/@apostrophecms/login/index.js +13 -15
- package/modules/@apostrophecms/modal/ui/apos/components/AposModal.vue +2 -1
- package/modules/@apostrophecms/oembed/index.js +18 -13
- package/modules/@apostrophecms/recently-edited/ui/apos/components/AposRecentlyEditedIcon.vue +2 -0
- package/modules/@apostrophecms/rich-text-widget/index.js +36 -0
- package/modules/@apostrophecms/schema/ui/apos/logic/AposInputCheckboxes.js +1 -1
- package/modules/@apostrophecms/schema/ui/apos/logic/AposInputRadio.js +1 -1
- package/modules/@apostrophecms/styles/index.js +16 -0
- package/modules/@apostrophecms/styles/lib/handlers.js +6 -0
- package/modules/@apostrophecms/styles/lib/methods.js +93 -0
- package/modules/@apostrophecms/styles/lib/presets.js +17 -0
- package/modules/@apostrophecms/styles/ui/apos/universal/render.mjs +10 -1
- package/modules/@apostrophecms/submitted-draft/ui/apos/components/AposSubmittedDraftIcon.vue +1 -0
- package/modules/@apostrophecms/template/views/outerLayoutBase.html +1 -1
- package/modules/@apostrophecms/ui/ui/apos/components/AposButton.vue +14 -2
- package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenu.vue +29 -5
- package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenuDialog.vue +8 -0
- package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenuItem.vue +5 -2
- package/modules/@apostrophecms/ui/ui/apos/components/AposLocalePicker.vue +14 -1
- package/modules/@apostrophecms/ui/ui/apos/scss/global/_utilities.scss +13 -1
- package/modules/@apostrophecms/util/index.js +4 -0
- package/modules/@apostrophecms/widget-type/index.js +6 -0
- package/modules/@apostrophecms/widget-type/ui/apos/components/AposWidgetEditor.vue +32 -0
- package/package.json +13 -13
- package/test/add-missing-schema-fields-project/node_modules/.package-lock.json +131 -0
- package/test/add-missing-schema-fields-project/test.js +3 -11
- package/test/assets.js +67 -110
- package/test/db.js +15 -24
- package/test/job.js +1 -1
- package/test/layout-widget-gap.js +530 -0
- package/test/login.js +122 -1
- package/test/rich-text-widget.js +200 -0
- package/test/styles.js +50 -0
- package/test-lib/util.js +14 -50
- package/claude-tools/detect-handles.js +0 -46
- package/claude-tools/minimal-hang-test.js +0 -28
- package/claude-tools/mongo-close-test.js +0 -11
- package/claude-tools/stdin-ref-test.js +0 -14
- package/test/db-tools.js +0 -365
- package/test/default-adapter.js +0 -256
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apostrophe",
|
|
3
|
-
"version": "4.30.0
|
|
3
|
+
"version": "4.30.0",
|
|
4
4
|
"description": "The Apostrophe Content Management System.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -76,7 +76,6 @@
|
|
|
76
76
|
"is-wsl": "^2.2.0",
|
|
77
77
|
"jsdom": "^24.1.0",
|
|
78
78
|
"klona": "^2.0.4",
|
|
79
|
-
"launder": "^1.4.0",
|
|
80
79
|
"lodash": "^4.18.1",
|
|
81
80
|
"mini-css-extract-plugin": "^1.6.0",
|
|
82
81
|
"minimatch": "^3.1.4",
|
|
@@ -117,33 +116,34 @@
|
|
|
117
116
|
"webpack": "^5.106.1",
|
|
118
117
|
"webpack-merge": "^5.7.3",
|
|
119
118
|
"xregexp": "^2.0.0",
|
|
120
|
-
"@apostrophecms/
|
|
119
|
+
"@apostrophecms/emulate-mongo-3-driver": "^1.0.6",
|
|
121
120
|
"broadband": "^1.1.0",
|
|
122
|
-
"
|
|
123
|
-
"sanitize-html": "^2.17.3",
|
|
124
|
-
"oembetter": "^1.1.4",
|
|
125
|
-
"uploadfs": "^1.26.1",
|
|
121
|
+
"boring": "^1.1.1",
|
|
126
122
|
"express-cache-on-demand": "^1.0.4",
|
|
127
|
-
"
|
|
123
|
+
"launder": "^1.7.1",
|
|
124
|
+
"oembetter": "^1.1.4",
|
|
125
|
+
"postcss-viewport-to-container-toggle": "^2.3.0",
|
|
126
|
+
"sanitize-html": "^2.17.4",
|
|
127
|
+
"uploadfs": "^1.26.1"
|
|
128
128
|
},
|
|
129
129
|
"devDependencies": {
|
|
130
|
-
"chai": "^4.3.10",
|
|
131
130
|
"eslint": "^9.39.1",
|
|
132
131
|
"form-data": "^4.0.4",
|
|
133
132
|
"mocha": "^11.7.5",
|
|
134
133
|
"nyc": "^17.1.0",
|
|
135
134
|
"stylelint": "^16.5.0",
|
|
136
|
-
"
|
|
137
|
-
"
|
|
135
|
+
"stylelint-config-apostrophe": "^4.4.0",
|
|
136
|
+
"eslint-config-apostrophe": "^6.0.2"
|
|
138
137
|
},
|
|
139
138
|
"browserslist": [
|
|
140
139
|
"ie >= 10"
|
|
141
140
|
],
|
|
142
141
|
"scripts": {
|
|
143
142
|
"pretest": "npm run lint",
|
|
144
|
-
"test": "npm run test:base && npm run test:missing && npm run test:esm",
|
|
145
|
-
"test:base": "nyc mocha -t 10000",
|
|
143
|
+
"test": "npm run test:base && npm run test:missing && npm run test:assets && npm run test:esm",
|
|
144
|
+
"test:base": "nyc mocha -t 10000 --ignore=test/assets.js",
|
|
146
145
|
"test:missing": "nyc mocha -t 10000 test/add-missing-schema-fields-project/test.js",
|
|
146
|
+
"test:assets": "nyc mocha -t 10000 test/assets.js",
|
|
147
147
|
"test:esm": "mocha -t 1000 test/esm-project/esm.js",
|
|
148
148
|
"eslint": "eslint .",
|
|
149
149
|
"eslint-fix": "npm run eslint -- --fix",
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "add-missing-schema-fields-project",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"../..": {
|
|
8
|
+
"version": "4.28.0",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@apostrophecms/emulate-mongo-3-driver": "workspace:^",
|
|
12
|
+
"@apostrophecms/vue-material-design-icons": "^1.0.0",
|
|
13
|
+
"@ctrl/tinycolor": "^4.1.0",
|
|
14
|
+
"@floating-ui/dom": "^1.5.3",
|
|
15
|
+
"@opentelemetry/api": "^1.9.0",
|
|
16
|
+
"@opentelemetry/semantic-conventions": "^1.0.1",
|
|
17
|
+
"@paralleldrive/cuid2": "^2.2.2",
|
|
18
|
+
"@tiptap/extension-color": "^2.4.0",
|
|
19
|
+
"@tiptap/extension-floating-menu": "^2.0.3",
|
|
20
|
+
"@tiptap/extension-highlight": "^2.0.3",
|
|
21
|
+
"@tiptap/extension-link": "^2.0.3",
|
|
22
|
+
"@tiptap/extension-placeholder": "^2.0.3",
|
|
23
|
+
"@tiptap/extension-subscript": "^2.0.3",
|
|
24
|
+
"@tiptap/extension-superscript": "^2.0.3",
|
|
25
|
+
"@tiptap/extension-table": "^2.0.3",
|
|
26
|
+
"@tiptap/extension-table-cell": "^2.0.3",
|
|
27
|
+
"@tiptap/extension-table-header": "^2.0.3",
|
|
28
|
+
"@tiptap/extension-table-row": "^2.0.3",
|
|
29
|
+
"@tiptap/extension-text-align": "^2.0.3",
|
|
30
|
+
"@tiptap/extension-text-style": "^2.0.3",
|
|
31
|
+
"@tiptap/extension-underline": "^2.0.3",
|
|
32
|
+
"@tiptap/starter-kit": "^2.0.3",
|
|
33
|
+
"@tiptap/vue-3": "^2.0.3",
|
|
34
|
+
"@vue/compiler-sfc": "^3.3.8",
|
|
35
|
+
"autoprefixer": "^10.4.1",
|
|
36
|
+
"bluebird": "^3.7.2",
|
|
37
|
+
"body-parser": "^1.18.2",
|
|
38
|
+
"boring": "workspace:^",
|
|
39
|
+
"broadband": "workspace:^",
|
|
40
|
+
"cheerio": "^1.0.0-rc.10",
|
|
41
|
+
"chokidar": "^3.5.2",
|
|
42
|
+
"common-tags": "^1.8.0",
|
|
43
|
+
"concat-with-sourcemaps": "^1.1.0",
|
|
44
|
+
"connect-mongo": "^5.1.0",
|
|
45
|
+
"cookie-parser": "^1.4.5",
|
|
46
|
+
"cors": "^2.8.5",
|
|
47
|
+
"css-loader": "^5.2.4",
|
|
48
|
+
"cssnano": "^7.1.1",
|
|
49
|
+
"csv-parse": "^5.6.0",
|
|
50
|
+
"dayjs": "^1.9.8",
|
|
51
|
+
"dompurify": "^3.2.5",
|
|
52
|
+
"encodeurl": "^2.0.0",
|
|
53
|
+
"express": "^4.16.4",
|
|
54
|
+
"express-bearer-token": "^3.0.0",
|
|
55
|
+
"express-cache-on-demand": "workspace:^",
|
|
56
|
+
"express-session": "^1.18.2",
|
|
57
|
+
"fs-extra": "^7.0.1",
|
|
58
|
+
"glob": "^10.4.5",
|
|
59
|
+
"he": "^1.2.0",
|
|
60
|
+
"html-to-text": "^9.0.5",
|
|
61
|
+
"i18next": "^20.3.2",
|
|
62
|
+
"i18next-http-middleware": "^3.1.5",
|
|
63
|
+
"import-fresh": "^3.3.0",
|
|
64
|
+
"is-wsl": "^2.2.0",
|
|
65
|
+
"jsdom": "^24.1.0",
|
|
66
|
+
"klona": "^2.0.4",
|
|
67
|
+
"launder": "^1.4.0",
|
|
68
|
+
"lodash": "^4.17.21",
|
|
69
|
+
"mini-css-extract-plugin": "^1.6.0",
|
|
70
|
+
"minimatch": "^3.0.4",
|
|
71
|
+
"mkdirp": "^0.5.5",
|
|
72
|
+
"multer": "^2.0.2",
|
|
73
|
+
"node-fetch": "^2.6.1",
|
|
74
|
+
"nodemailer": "^7.0.10",
|
|
75
|
+
"nunjucks": "^3.2.1",
|
|
76
|
+
"oembetter": "^1.1.3",
|
|
77
|
+
"parseurl": "^1.3.3",
|
|
78
|
+
"passport": "^0.6.0",
|
|
79
|
+
"passport-local": "^1.0.0",
|
|
80
|
+
"path-to-regexp": "^1.8.0",
|
|
81
|
+
"performance-now": "^2.1.0",
|
|
82
|
+
"pinia": "^2.1.7",
|
|
83
|
+
"postcss": "^8.4.47",
|
|
84
|
+
"postcss-html": "^1.3.0",
|
|
85
|
+
"postcss-loader": "^8.1.1",
|
|
86
|
+
"postcss-scss": "^4.0.3",
|
|
87
|
+
"postcss-viewport-to-container-toggle": "workspace:^",
|
|
88
|
+
"prompts": "^2.4.1",
|
|
89
|
+
"qs": "^6.10.1",
|
|
90
|
+
"regexp-quote": "0.0.0",
|
|
91
|
+
"resolve": "^1.19.0",
|
|
92
|
+
"resolve-from": "^5.0.0",
|
|
93
|
+
"sanitize-html": "workspace:^",
|
|
94
|
+
"sass": "^1.80.3",
|
|
95
|
+
"sass-loader": "^16.0.0",
|
|
96
|
+
"server-destroy": "^1.0.1",
|
|
97
|
+
"sluggo": "^1.0.0",
|
|
98
|
+
"sortablejs": "^1.15.0",
|
|
99
|
+
"sortablejs-vue3": "^1.2.11",
|
|
100
|
+
"tiny-emitter": "^2.1.0",
|
|
101
|
+
"tough-cookie": "^4.0.0",
|
|
102
|
+
"underscore.string": "^3.3.4",
|
|
103
|
+
"uploadfs": "workspace:^",
|
|
104
|
+
"void-elements": "^3.1.0",
|
|
105
|
+
"vue": "^3.5.20",
|
|
106
|
+
"vue-advanced-cropper": "^2.8.8",
|
|
107
|
+
"vue-loader": "^17.1.0",
|
|
108
|
+
"vue-style-loader": "^4.1.3",
|
|
109
|
+
"webpack": "^5.72.0",
|
|
110
|
+
"webpack-merge": "^5.7.3",
|
|
111
|
+
"xregexp": "^2.0.0"
|
|
112
|
+
},
|
|
113
|
+
"devDependencies": {
|
|
114
|
+
"eslint": "^9.39.1",
|
|
115
|
+
"eslint-config-apostrophe": "workspace:^",
|
|
116
|
+
"form-data": "^4.0.4",
|
|
117
|
+
"mocha": "^11.7.1",
|
|
118
|
+
"nyc": "^17.1.0",
|
|
119
|
+
"stylelint": "^16.5.0",
|
|
120
|
+
"stylelint-config-apostrophe": "workspace:^"
|
|
121
|
+
},
|
|
122
|
+
"engines": {
|
|
123
|
+
"node": ">=16.0.0"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"node_modules/apostrophe": {
|
|
127
|
+
"resolved": "../..",
|
|
128
|
+
"link": true
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -11,18 +11,10 @@ describe('Apostrophe - add-missing-schema-fields task', function() {
|
|
|
11
11
|
|
|
12
12
|
let apos;
|
|
13
13
|
|
|
14
|
-
// When APOS_TEST_DB_PROTOCOL is set, child processes that run `node app.js`
|
|
15
|
-
// need the matching APOS_DB_URI so they use the same database as t.create()
|
|
16
|
-
const projectCwd = path.resolve(process.cwd(), 'test/add-missing-schema-fields-project/');
|
|
17
|
-
const testDbUri = t.getTestDbUri('add-missing-schema-fields-project');
|
|
18
|
-
const execEnv = testDbUri
|
|
19
|
-
? { env: { ...process.env, APOS_DB_URI: testDbUri } }
|
|
20
|
-
: {};
|
|
21
|
-
|
|
22
14
|
before(async function() {
|
|
23
15
|
await util.promisify(exec)(
|
|
24
16
|
'npm install',
|
|
25
|
-
{ cwd:
|
|
17
|
+
{ cwd: path.resolve(process.cwd(), 'test/add-missing-schema-fields-project/') }
|
|
26
18
|
);
|
|
27
19
|
});
|
|
28
20
|
|
|
@@ -33,7 +25,7 @@ describe('Apostrophe - add-missing-schema-fields task', function() {
|
|
|
33
25
|
it('should not run migrations when running the task', async function() {
|
|
34
26
|
await util.promisify(exec)(
|
|
35
27
|
'node app.js @apostrophecms/migration:add-missing-schema-fields',
|
|
36
|
-
{ cwd:
|
|
28
|
+
{ cwd: path.resolve(process.cwd(), 'test/add-missing-schema-fields-project/') }
|
|
37
29
|
);
|
|
38
30
|
|
|
39
31
|
apos = await t.create({
|
|
@@ -72,7 +64,7 @@ describe('Apostrophe - add-missing-schema-fields task', function() {
|
|
|
72
64
|
it('should run migrations when running @apostrophecms/migration:migrate task', async function() {
|
|
73
65
|
await util.promisify(exec)(
|
|
74
66
|
'node app.js @apostrophecms/migration:migrate',
|
|
75
|
-
{ cwd:
|
|
67
|
+
{ cwd: path.resolve(process.cwd(), 'test/add-missing-schema-fields-project/') }
|
|
76
68
|
);
|
|
77
69
|
|
|
78
70
|
apos = await t.create({
|