` with stricter attributes/relationships typing.
11 |
12 | No breaking API changes; improvements are internal typing and safety.
13 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.block_content.field_body.yml:
--------------------------------------------------------------------------------
1 | uuid: 8ec5aff3-1dac-4cc8-955c-cfadcf299fa9
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - block_content
7 | - text
8 | _core:
9 | default_config_hash: 1W3dSbMzHlVVecRcC7dH1EDUafL9pAQFPXtIX0490pY
10 | id: block_content.field_body
11 | field_name: field_body
12 | entity_type: block_content
13 | type: text_long
14 | settings: { }
15 | module: text
16 | locked: false
17 | cardinality: 1
18 | translatable: true
19 | indexes: { }
20 | persist_with_no_fields: true
21 | custom_storage: false
22 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/block.block.claro_primary_local_tasks.yml:
--------------------------------------------------------------------------------
1 | uuid: 799b6349-cf3a-4329-ad99-e11bd4b6ee72
2 | langcode: en
3 | status: true
4 | dependencies:
5 | theme:
6 | - claro
7 | _core:
8 | default_config_hash: ACjBZI5shAMiiUpsz-inLYVXDqNNXRnSzAWV3kV_8Hw
9 | id: claro_primary_local_tasks
10 | theme: claro
11 | region: header
12 | weight: 0
13 | provider: null
14 | plugin: local_tasks_block
15 | settings:
16 | id: local_tasks_block
17 | label: 'Primary tabs'
18 | label_display: '0'
19 | provider: core
20 | primary: true
21 | secondary: false
22 | visibility: { }
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.field_recipe_instruction.yml:
--------------------------------------------------------------------------------
1 | uuid: 38562329-e4a1-4103-befa-97e4c94b9da7
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - node
7 | - text
8 | _core:
9 | default_config_hash: seP7G-QnB7uXOxys45VuxM3NlWVgZf5Hrp8OpuFtkdU
10 | id: node.field_recipe_instruction
11 | field_name: field_recipe_instruction
12 | entity_type: node
13 | type: text_long
14 | settings: { }
15 | module: text
16 | locked: false
17 | cardinality: 1
18 | translatable: true
19 | indexes: { }
20 | persist_with_no_fields: false
21 | custom_storage: false
22 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.field_tags.yml:
--------------------------------------------------------------------------------
1 | uuid: a6b78fd7-fe01-477c-82b0-6294098fab8e
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - node
7 | - taxonomy
8 | _core:
9 | default_config_hash: WpOE_bs8Bs_HY2ns7n2r__de-xno0-Bxkqep5-MsHAs
10 | id: node.field_tags
11 | field_name: field_tags
12 | entity_type: node
13 | type: entity_reference
14 | settings:
15 | target_type: taxonomy_term
16 | module: core
17 | locked: false
18 | cardinality: -1
19 | translatable: true
20 | indexes: { }
21 | persist_with_no_fields: false
22 | custom_storage: false
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/language/es/views.view.recipe_collections.yml:
--------------------------------------------------------------------------------
1 | label: 'Recopilación de Recetas'
2 | display:
3 | default:
4 | display_title: 'Por defecto'
5 | display_options:
6 | title: 'Recopilación de recetas'
7 | fields:
8 | name:
9 | separator: ', '
10 | exposed_form:
11 | options:
12 | submit_button: Aplicar
13 | reset_button_label: Restablecer
14 | exposed_sorts_label: 'Ordenar por'
15 | sort_asc_label: Asc
16 | sort_desc_label: Desc
17 | block:
18 | display_title: Bloque
19 |
--------------------------------------------------------------------------------
/packages/auth/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/packages/core/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/packages/error/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/packages/menu/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/packages/role/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/packages/settings/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | status: draft
3 | ---
4 | # @drupal-js-sdk/settings
5 |
6 | ## Overview
7 |
8 | Experimental scaffold for application settings helpers. API may change; currently not providing stable methods.
9 |
10 | ## Usage
11 |
12 | ```js
13 | import { DrupalSettings } from "@drupal-js-sdk/settings";
14 | ```
15 |
16 | Public API
17 |
18 | - class DrupalSettings
19 | - constructor()
20 | - (methods are currently placeholders and throw; subject to future expansion)
21 |
22 | Notes
23 |
24 | - Package scaffold for settings-related utilities. Methods intentionally minimal.
25 |
--------------------------------------------------------------------------------
/packages/storage/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/packages/xhr/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.field_cooking_time.yml:
--------------------------------------------------------------------------------
1 | uuid: 4ba55415-4f91-4ced-aeda-13bf9357de66
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - node
7 | _core:
8 | default_config_hash: sSUIsKTm3XJhfRtHIW_-goM5fEnuJkmpnX1W8YsvL-k
9 | id: node.field_cooking_time
10 | field_name: field_cooking_time
11 | entity_type: node
12 | type: integer
13 | settings:
14 | unsigned: false
15 | size: normal
16 | module: core
17 | locked: false
18 | cardinality: 1
19 | translatable: true
20 | indexes: { }
21 | persist_with_no_fields: false
22 | custom_storage: false
23 |
--------------------------------------------------------------------------------
/codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | status:
3 | project:
4 | logsCode:
5 | target: auto
6 | flags:
7 | - logsCode
8 | serviceCode:
9 | target: auto
10 | flags:
11 | - serviceCode
12 | comment:
13 | layout: "reach, diff, flags, files"
14 | behavior: default
15 | require_changes: false
16 | require_base: true
17 | require_head: true
18 | branches: ["main"]
19 | flags:
20 | core:
21 | paths:
22 | - packages/core/
23 | carryforward: true
24 | sdk:
25 | paths:
26 | - packages/drupal-js-sdk/
27 | carryforward: true
28 |
--------------------------------------------------------------------------------
/packages/interfaces/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/packages/settings/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2015",
4 | "module": "commonjs",
5 | "strict": true,
6 | "esModuleInterop": true,
7 | "skipLibCheck": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "declaration": true,
10 | "outDir": "./dist",
11 | "baseUrl": "./",
12 | "allowJs": true,
13 | "paths": {
14 | "@drupal-js-sdk/entity": ["packages/entity/src/index.ts"],
15 | "@drupal-js-sdk/jsonapi": ["packages/jsonapi/src/index.ts"]
16 | }
17 | },
18 | "exclude": ["node_modules", "**/__tests__/*"],
19 | "include": ["./src"]
20 | }
21 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/block.block.claro_secondary_local_tasks.yml:
--------------------------------------------------------------------------------
1 | uuid: 002c4d20-e356-48c6-83d8-32cc085e8e13
2 | langcode: en
3 | status: true
4 | dependencies:
5 | theme:
6 | - claro
7 | _core:
8 | default_config_hash: 2L0geP-ixCbCkEpW6BVF6H7vDUZN4ea07_Y9CociQm4
9 | id: claro_secondary_local_tasks
10 | theme: claro
11 | region: pre_content
12 | weight: 0
13 | provider: null
14 | plugin: local_tasks_block
15 | settings:
16 | id: local_tasks_block
17 | label: 'Secondary tabs'
18 | label_display: '0'
19 | provider: core
20 | primary: false
21 | secondary: true
22 | visibility: { }
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.block_content.field_copyright.yml:
--------------------------------------------------------------------------------
1 | uuid: 16e49ee0-e515-4225-8cf7-bf6e176c42e3
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - block_content
7 | - text
8 | _core:
9 | default_config_hash: i5Xb6gz5HGbpayPD3Wf-JLpoFa0pxqKpHsCIqYYH63I
10 | id: block_content.field_copyright
11 | field_name: field_copyright
12 | entity_type: block_content
13 | type: text_long
14 | settings: { }
15 | module: text
16 | locked: false
17 | cardinality: 1
18 | translatable: true
19 | indexes: { }
20 | persist_with_no_fields: false
21 | custom_storage: false
22 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.field_media_image.yml:
--------------------------------------------------------------------------------
1 | uuid: fd4a1a96-713e-4587-8797-b9b6c2a039e8
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - media
7 | - node
8 | _core:
9 | default_config_hash: 0Js1u6vPgc9HfguDX8RT0LRwZh6-JU34vN8DsgMrDPQ
10 | id: node.field_media_image
11 | field_name: field_media_image
12 | entity_type: node
13 | type: entity_reference
14 | settings:
15 | target_type: media
16 | module: core
17 | locked: false
18 | cardinality: 1
19 | translatable: true
20 | indexes: { }
21 | persist_with_no_fields: false
22 | custom_storage: false
23 |
--------------------------------------------------------------------------------
/packages/drupal-js-sdk/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "plugins": [
5 | "@typescript-eslint",
6 | "no-loops"
7 | ],
8 | "parserOptions": {
9 | "project": "./tsconfig.eslint.json"
10 | },
11 | "extends": [
12 | "eslint:recommended",
13 | "plugin:@typescript-eslint/eslint-recommended",
14 | "plugin:@typescript-eslint/recommended"
15 | ],
16 | "rules": {
17 | "no-console": 2,
18 | "no-loops/no-loops": 2,
19 | "@typescript-eslint/no-explicit-any": "off"
20 | }
21 | }
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.block_content.field_content_link.yml:
--------------------------------------------------------------------------------
1 | uuid: fb868856-7e09-4998-925b-9c6d5b1da566
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - block_content
7 | - link
8 | _core:
9 | default_config_hash: x5FFqn9CI03jRgIQ3t0e6-X8X5glE6AyKwnScwMNTxk
10 | id: block_content.field_content_link
11 | field_name: field_content_link
12 | entity_type: block_content
13 | type: link
14 | settings: { }
15 | module: link
16 | locked: false
17 | cardinality: 1
18 | translatable: true
19 | indexes: { }
20 | persist_with_no_fields: false
21 | custom_storage: false
22 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.block_content.field_disclaimer.yml:
--------------------------------------------------------------------------------
1 | uuid: 93ca3205-15aa-4dbc-8171-f072c30ab637
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - block_content
7 | - text
8 | _core:
9 | default_config_hash: 9f01IQ8P7CSySVZJKdTjI31y-qpa8ObmZDLGsUSoNeY
10 | id: block_content.field_disclaimer
11 | field_name: field_disclaimer
12 | entity_type: block_content
13 | type: text_long
14 | settings: { }
15 | module: text
16 | locked: false
17 | cardinality: 1
18 | translatable: true
19 | indexes: { }
20 | persist_with_no_fields: false
21 | custom_storage: false
22 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.block_content.field_summary.yml:
--------------------------------------------------------------------------------
1 | uuid: 40a051d9-06ad-4f69-aa97-1c06d3de6f0d
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - block_content
7 | _core:
8 | default_config_hash: ovYZqtkQXD_nL-D5liqMQpocZ3xB7kwxBfnbCnErLHM
9 | id: block_content.field_summary
10 | field_name: field_summary
11 | entity_type: block_content
12 | type: string_long
13 | settings:
14 | case_sensitive: false
15 | module: core
16 | locked: false
17 | cardinality: 1
18 | translatable: true
19 | indexes: { }
20 | persist_with_no_fields: false
21 | custom_storage: false
22 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.field_preparation_time.yml:
--------------------------------------------------------------------------------
1 | uuid: a59dfdf7-cb7a-4963-9ff2-74e4aab0526b
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - node
7 | _core:
8 | default_config_hash: L4M_MmPr8qrKNnPYxf_1w6y--YsIH2IISGB0T4KUzDU
9 | id: node.field_preparation_time
10 | field_name: field_preparation_time
11 | entity_type: node
12 | type: integer
13 | settings:
14 | unsigned: false
15 | size: normal
16 | module: core
17 | locked: false
18 | cardinality: 1
19 | translatable: true
20 | indexes: { }
21 | persist_with_no_fields: false
22 | custom_storage: false
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/language.content_settings.block_content.banner_block.yml:
--------------------------------------------------------------------------------
1 | uuid: a04f5c01-97d3-4946-821a-6a52dbcddc3f
2 | langcode: en
3 | status: true
4 | dependencies:
5 | config:
6 | - block_content.type.banner_block
7 | module:
8 | - content_translation
9 | third_party_settings:
10 | content_translation:
11 | enabled: true
12 | _core:
13 | default_config_hash: G3u6fc7JZoDvaeSgwA-ik8RL5Z2B6-ItEtSuicDgobw
14 | id: block_content.banner_block
15 | target_entity_type_id: block_content
16 | target_bundle: banner_block
17 | default_langcode: site_default
18 | language_alterable: true
19 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.layout_builder__layout.yml:
--------------------------------------------------------------------------------
1 | uuid: 715e308c-8287-44e3-9b72-c2799a9901d2
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - layout_builder
7 | - node
8 | _core:
9 | default_config_hash: g7kepf2eck__olXZwnmcQdOVAdSZR0cr77Jm-uf6wfA
10 | id: node.layout_builder__layout
11 | field_name: layout_builder__layout
12 | entity_type: node
13 | type: layout_section
14 | settings: { }
15 | module: layout_builder
16 | locked: true
17 | cardinality: 1
18 | translatable: false
19 | indexes: { }
20 | persist_with_no_fields: false
21 | custom_storage: false
22 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/system.performance.yml:
--------------------------------------------------------------------------------
1 | _core:
2 | default_config_hash: jtno5biznHZbrIgKwzq-ze-7XaQxLCGe6PeUOR7bRiQ
3 | cache:
4 | page:
5 | max_age: 0
6 | css:
7 | preprocess: true
8 | gzip: true
9 | fast_404:
10 | enabled: true
11 | paths: '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i'
12 | exclude_paths: '/\/(?:styles|imagecache)\//'
13 | html: '404 Not FoundNot Found
The requested URL "@path" was not found on this server.
'
14 | js:
15 | preprocess: true
16 | gzip: true
17 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.field_number_of_servings.yml:
--------------------------------------------------------------------------------
1 | uuid: 24304de3-62a8-4dbb-b9d2-5fb0abb7d948
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - node
7 | _core:
8 | default_config_hash: '-4BR54E0zf3ql3z8EYjE6mJ-i8xKmSNQxdDhEpxincM'
9 | id: node.field_number_of_servings
10 | field_name: field_number_of_servings
11 | entity_type: node
12 | type: integer
13 | settings:
14 | unsigned: false
15 | size: normal
16 | module: core
17 | locked: false
18 | cardinality: 1
19 | translatable: true
20 | indexes: { }
21 | persist_with_no_fields: false
22 | custom_storage: false
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/locale.settings.yml:
--------------------------------------------------------------------------------
1 | _core:
2 | default_config_hash: cSdYeE-_AQETCNZnl8BMFS9-sVn5--VzAYILkpPBUbM
3 | cache_strings: true
4 | translate_english: false
5 | javascript:
6 | directory: languages
7 | translation:
8 | use_source: remote_and_local
9 | default_filename: '%project-%version.%language.po'
10 | default_server_pattern: 'https://ftp.drupal.org/files/translations/%core/%project/%project-%version.%language.po'
11 | overwrite_customized: false
12 | overwrite_not_customized: true
13 | update_interval_days: 0
14 | path: sites/default/files/translations
15 | import_enabled: true
16 |
--------------------------------------------------------------------------------
/packages/role/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | status: draft
3 | ---
4 | # @drupal-js-sdk/role
5 |
6 | ## Overview
7 |
8 | Experimental scaffold for role-related utilities. API may change; currently not providing stable methods.
9 |
10 | ## Usage
11 |
12 | ```js
13 | import { DrupalRole } from "@drupal-js-sdk/role";
14 | // Placeholder: API is experimental and may change.
15 | ```
16 |
17 | Public API
18 |
19 | - class DrupalRole
20 | - constructor()
21 | - (methods are currently placeholders and throw; subject to future expansion)
22 |
23 | Notes
24 |
25 | - Package scaffold for role-related utilities. Methods intentionally minimal.
26 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/block.block.umami_languageswitcher.yml:
--------------------------------------------------------------------------------
1 | uuid: 8c148b06-639a-442d-9930-ed23d99bcc89
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - language
7 | theme:
8 | - umami
9 | _core:
10 | default_config_hash: dhs54rZwlADLhS_wtViUXbtrVppO7Fv6NtlzOlK8iCE
11 | id: umami_languageswitcher
12 | theme: umami
13 | region: pre_header
14 | weight: 0
15 | provider: null
16 | plugin: 'language_block:language_interface'
17 | settings:
18 | id: 'language_block:language_interface'
19 | label: 'Language switcher'
20 | label_display: '0'
21 | provider: language
22 | visibility: { }
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.field_ingredients.yml:
--------------------------------------------------------------------------------
1 | uuid: a63793d0-5a80-4621-8613-dc41147941e3
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - node
7 | _core:
8 | default_config_hash: AQ1aW930W_9KZ73o6X1iqvDnAPefFOPaKluiXklRQtA
9 | id: node.field_ingredients
10 | field_name: field_ingredients
11 | entity_type: node
12 | type: string
13 | settings:
14 | max_length: 255
15 | case_sensitive: false
16 | is_ascii: false
17 | module: core
18 | locked: false
19 | cardinality: -1
20 | translatable: true
21 | indexes: { }
22 | persist_with_no_fields: false
23 | custom_storage: false
24 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/language.content_settings.block_content.disclaimer_block.yml:
--------------------------------------------------------------------------------
1 | uuid: 3f075dc1-7c9e-4fc8-adf3-3f8398c7cca1
2 | langcode: en
3 | status: true
4 | dependencies:
5 | config:
6 | - block_content.type.disclaimer_block
7 | module:
8 | - content_translation
9 | third_party_settings:
10 | content_translation:
11 | enabled: true
12 | _core:
13 | default_config_hash: pYV_j3OTOlWBweKkB0jY9dB9C3aTUJZ903T91ZahX4w
14 | id: block_content.disclaimer_block
15 | target_entity_type_id: block_content
16 | target_bundle: disclaimer_block
17 | default_langcode: site_default
18 | language_alterable: true
19 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/language.content_settings.taxonomy_term.recipe_category.yml:
--------------------------------------------------------------------------------
1 | uuid: 64621cc9-9d98-409f-86e3-a94cefcd2d29
2 | langcode: en
3 | status: true
4 | dependencies:
5 | config:
6 | - taxonomy.vocabulary.recipe_category
7 | module:
8 | - content_translation
9 | third_party_settings:
10 | content_translation:
11 | enabled: true
12 | _core:
13 | default_config_hash: rSI5WTsW2S6K9n3i6_Ul-auHIO5onTjPknfThX3ON-U
14 | id: taxonomy_term.recipe_category
15 | target_entity_type_id: taxonomy_term
16 | target_bundle: recipe_category
17 | default_langcode: site_default
18 | language_alterable: true
19 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.node.field_recipe_category.yml:
--------------------------------------------------------------------------------
1 | uuid: f8bdff39-96c1-4d75-a543-838e505cd501
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - node
7 | - taxonomy
8 | _core:
9 | default_config_hash: mXo5nqADfWBxy1sbPvHHDMErhoALJQhmNUByV3Sms98
10 | id: node.field_recipe_category
11 | field_name: field_recipe_category
12 | entity_type: node
13 | type: entity_reference
14 | settings:
15 | target_type: taxonomy_term
16 | module: core
17 | locked: false
18 | cardinality: -1
19 | translatable: true
20 | indexes: { }
21 | persist_with_no_fields: false
22 | custom_storage: false
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/language/es/core.entity_view_display.node.recipe.full.yml:
--------------------------------------------------------------------------------
1 | third_party_settings:
2 | layout_builder:
3 | sections:
4 | 1:
5 | components:
6 | cc87463d-bb75-4eca-a2d0-42f0b643f8a7:
7 | configuration:
8 | label: 'Imagen del contenido multimedia'
9 | 69d8bce1-28ae-4287-a05b-a2166679f867:
10 | configuration:
11 | label: 'Imagen del contenido multimedia'
12 | 4:
13 | components:
14 | 3164f99a-0a52-403e-a921-fad17cb6e8c7:
15 | configuration:
16 | label_display: visible
17 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/language.content_settings.block_content.footer_promo_block.yml:
--------------------------------------------------------------------------------
1 | uuid: 2313f128-d857-4cdb-97cb-872768846edd
2 | langcode: en
3 | status: true
4 | dependencies:
5 | config:
6 | - block_content.type.footer_promo_block
7 | module:
8 | - content_translation
9 | third_party_settings:
10 | content_translation:
11 | enabled: true
12 | _core:
13 | default_config_hash: cLKCdnfkCxbxWqNt00n8kLTo6S45WCeLyKXvAZH7Tes
14 | id: block_content.footer_promo_block
15 | target_entity_type_id: block_content
16 | target_bundle: footer_promo_block
17 | default_langcode: site_default
18 | language_alterable: true
19 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.block_content.field_media_image.yml:
--------------------------------------------------------------------------------
1 | uuid: 3a05726f-98b3-4437-a22c-6e256d6af2d3
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - block_content
7 | - media
8 | _core:
9 | default_config_hash: J09ouK26wFA1bbWkv_LwF_A_0wrhXYryFVurmToZj9k
10 | id: block_content.field_media_image
11 | field_name: field_media_image
12 | entity_type: block_content
13 | type: entity_reference
14 | settings:
15 | target_type: media
16 | module: core
17 | locked: false
18 | cardinality: 1
19 | translatable: true
20 | indexes: { }
21 | persist_with_no_fields: false
22 | custom_storage: false
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/user.role.anonymous.yml:
--------------------------------------------------------------------------------
1 | uuid: 3f8831d6-bee2-4f9b-9755-310229f28cb1
2 | langcode: en
3 | status: true
4 | dependencies:
5 | config:
6 | - filter.format.restricted_html
7 | module:
8 | - contact
9 | - filter
10 | - media
11 | - search
12 | - system
13 | _core:
14 | default_config_hash: Gl1lr_RJQ9pMz_DZhY6pNX94k874Gqh15Gm8Du1EepQ
15 | id: anonymous
16 | label: 'Anonymous user'
17 | weight: 0
18 | is_admin: false
19 | permissions:
20 | - 'access content'
21 | - 'access site-wide contact form'
22 | - 'search content'
23 | - 'use text format restricted_html'
24 | - 'view media'
25 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/core.base_field_override.node.page.promote.yml:
--------------------------------------------------------------------------------
1 | uuid: 4932c465-f0bc-4fa9-84c7-1afb23055100
2 | langcode: en
3 | status: true
4 | dependencies:
5 | config:
6 | - node.type.page
7 | _core:
8 | default_config_hash: fPUEnm4T5zfZRr3ttDUqq7yCDd2uW3clWD-pvos4tlQ
9 | id: node.page.promote
10 | field_name: promote
11 | entity_type: node
12 | bundle: page
13 | label: 'Promoted to front page'
14 | description: ''
15 | required: false
16 | translatable: false
17 | default_value:
18 | -
19 | value: 0
20 | default_value_callback: ''
21 | settings:
22 | on_label: 'On'
23 | off_label: 'Off'
24 | field_type: boolean
25 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.block_content.field_title.yml:
--------------------------------------------------------------------------------
1 | uuid: 9fdaa6aa-ccf2-41bf-9800-6d77f098cd72
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - block_content
7 | _core:
8 | default_config_hash: gLKURXFJkccqGfXGKsS6GKkQ8MwpUgEgdLoNvdcAmtw
9 | id: block_content.field_title
10 | field_name: field_title
11 | entity_type: block_content
12 | type: string
13 | settings:
14 | max_length: 255
15 | case_sensitive: false
16 | is_ascii: false
17 | module: core
18 | locked: false
19 | cardinality: 1
20 | translatable: true
21 | indexes: { }
22 | persist_with_no_fields: false
23 | custom_storage: false
24 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.storage.media.field_media_oembed_video.yml:
--------------------------------------------------------------------------------
1 | uuid: 63a7a2d3-5ffc-4cce-8863-0ba852c752fb
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - media
7 | _core:
8 | default_config_hash: cNf_852Dq-fNnSaMI4LxL-J6N7bLkHuDbD9EUqOn4_U
9 | id: media.field_media_oembed_video
10 | field_name: field_media_oembed_video
11 | entity_type: media
12 | type: string
13 | settings:
14 | max_length: 255
15 | case_sensitive: false
16 | is_ascii: false
17 | module: core
18 | locked: false
19 | cardinality: 1
20 | translatable: true
21 | indexes: { }
22 | persist_with_no_fields: false
23 | custom_storage: false
24 |
--------------------------------------------------------------------------------
/packages/xhr/src/__tests__/FetchClientResponseErrors.test.ts:
--------------------------------------------------------------------------------
1 | import { FetchClient } from "..";
2 |
3 | global.fetch = jest.fn(() =>
4 | Promise.resolve({
5 | data: JSON.stringify({}),
6 | ok: false,
7 | status: 200,
8 | statusText: "ok",
9 | json: () => {
10 | return { foo: "bar" };
11 | },
12 | })
13 | ) as jest.Mock;
14 |
15 | test("setclient", async () => {
16 | const config = {
17 | baseURL: "https://drupal-js-sdk-demo.d34dman.com",
18 | };
19 | const client = new FetchClient(config);
20 | expect.assertions(1);
21 | await expect(client.call("GET", "/system/menu/main/linkset")).rejects.toThrow();
22 | });
23 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/block.block.umami_branding.yml:
--------------------------------------------------------------------------------
1 | uuid: a9091c6c-82c7-464d-bf6b-377acab201f1
2 | langcode: en
3 | status: true
4 | dependencies:
5 | module:
6 | - system
7 | theme:
8 | - umami
9 | _core:
10 | default_config_hash: KpzA0z4GVAQdiudD8S4qJXkxUCkTDFtsMkS9ZAG9-Xo
11 | id: umami_branding
12 | theme: umami
13 | region: header
14 | weight: -7
15 | provider: null
16 | plugin: system_branding_block
17 | settings:
18 | id: system_branding_block
19 | label: 'Site branding'
20 | label_display: '0'
21 | provider: system
22 | use_site_logo: true
23 | use_site_name: false
24 | use_site_slogan: true
25 | visibility: { }
26 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.field.node.page.field_body.yml:
--------------------------------------------------------------------------------
1 | uuid: b820d093-ea15-4318-bf77-edc65ff8ae5b
2 | langcode: en
3 | status: true
4 | dependencies:
5 | config:
6 | - field.storage.node.field_body
7 | - node.type.page
8 | module:
9 | - text
10 | _core:
11 | default_config_hash: SzUL7jzxi0IqgQqcdEW2oIxG18thA8cm9cqFpZdpoQo
12 | id: node.page.field_body
13 | field_name: field_body
14 | entity_type: node
15 | bundle: page
16 | label: Body
17 | description: ''
18 | required: false
19 | translatable: true
20 | default_value: { }
21 | default_value_callback: ''
22 | settings:
23 | allowed_formats: { }
24 | field_type: text_long
25 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/.ddev/docker-compose.redis.yaml:
--------------------------------------------------------------------------------
1 | #ddev-generated
2 | services:
3 | redis:
4 | container_name: ddev-${DDEV_SITENAME}-redis
5 | image: ${REDIS_DOCKER_IMAGE:-redis:7}
6 | # These labels ensure this service is discoverable by ddev.
7 | labels:
8 | com.ddev.site-name: ${DDEV_SITENAME}
9 | com.ddev.approot: ${DDEV_APPROOT}
10 | restart: "no"
11 | expose:
12 | - 6379
13 | volumes:
14 | - ".:/mnt/ddev_config"
15 | - "ddev-global-cache:/mnt/ddev-global-cache"
16 | - "./redis:/etc/redis/conf"
17 | - "redis:/data"
18 | command: /etc/redis/conf/redis.conf
19 |
20 | volumes:
21 | redis:
22 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/field.field.node.article.field_body.yml:
--------------------------------------------------------------------------------
1 | uuid: b5d41db5-f274-46b7-973b-2902bf9e57a7
2 | langcode: en
3 | status: true
4 | dependencies:
5 | config:
6 | - field.storage.node.field_body
7 | - node.type.article
8 | module:
9 | - text
10 | _core:
11 | default_config_hash: La2QHAQckgQkWJSOnujAoHiQQoLrax5RWhuvriiGuoY
12 | id: node.article.field_body
13 | field_name: field_body
14 | entity_type: node
15 | bundle: article
16 | label: Body
17 | description: ''
18 | required: false
19 | translatable: true
20 | default_value: { }
21 | default_value_callback: ''
22 | settings:
23 | allowed_formats: { }
24 | field_type: text_long
25 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/config/sync/media.type.remote_video.yml:
--------------------------------------------------------------------------------
1 | uuid: b5dae132-3c51-455d-92d1-a982df0eb057
2 | langcode: en
3 | status: true
4 | dependencies: { }
5 | _core:
6 | default_config_hash: hIBTnDGgDKnCiP6HUZm1m7600DHUEpC6FN3LQ4sUgZ4
7 | id: remote_video
8 | label: 'Remote video'
9 | description: 'A remotely hosted video from YouTube or Vimeo.'
10 | source: 'oembed:video'
11 | queue_thumbnail_downloads: false
12 | new_revision: true
13 | source_configuration:
14 | source_field: field_media_oembed_video
15 | thumbnails_directory: 'public://oembed_thumbnails/[date:custom:Y-m]'
16 | providers:
17 | - YouTube
18 | - Vimeo
19 | field_map:
20 | title: name
21 |
--------------------------------------------------------------------------------
/apps/drupal-js-sdk-server/web/index.php:
--------------------------------------------------------------------------------
1 | handle($request);
20 | $response->send();
21 |
22 | $kernel->terminate($request, $response);
23 |
--------------------------------------------------------------------------------